Cronjob 使用邮件功能

Cronjob 使用邮件功能

当我从终端运行此邮件命令时,没有任何问题:

mail -s "Test Mail" [email protected] < home/user/example.txt

当我将它添加到主要执行此操作的 bash 脚本中时,没有任何问题:

tmpString=$(ssh user@server `perl -s` < /home/user/perlscript.pl 2> errorfile.txt)
mail -s "Test Mail" [email protected] < home/user/example.txt

但是,当我创建一个 crontab 来运行 bash 脚本时,邮件永远不会被发送:

10 14 * * * /home/user/mybashscript 

但是,我确实收到了来自 cronjob 的有关输出的电子邮件。主题为“测试邮件”的电子邮件从未到达。

有人遇到过这个问题吗?

踪迹:

好的,我只需要更改一些与个人相关的命名。邮件应该在最后一次回显之前发送,但它没有显示在跟踪中?

+ . /home/user/.bashrc
++ PS1=`\u@\h \w$`
++ TERM=vt100
++PATH=/usr/sbin:/usr/bin:/bin
++ ssh user@example `perl -s`
+ scriptString=`$VAR` = ``\``Build was OK`\``;`
+echo `$VAR1`= ``\``Build was OK`\``;`
$VAR1 = `Build was OK`;
+ [[ $VAR1 = `Build was OK`; == *\B\u\i\l\d\ \f\a\i\l\e\d* ]]
+ echo

谢谢!

答案1

crontab没有和你相同的环境,所以在脚本的顶部,在舍邦, 放 :

. ~/.bashrc || . /etc/profile

这将为子进程设置 PATH。

此外,修改shebang#!/bin/bash -x调试开启,并这样crontab做:

* * * * * /path/to/script >/tmp/trace 2>&1

并再次进行调试跟踪。

相关内容