ubuntu 1804中的crontab问题

ubuntu 1804中的crontab问题

我在让 crontab 在作为 amazon ec2 实例运行的 ubuntu 服务器 18.04 中工作时遇到问题。

我的文件中有以下行/etc/crontab

*/15 * * * *     root    /bin/bash /home/ubuntu/gzip/over_time_compile_ec2.sh

但它似乎不起作用,运行时sudo service cron status我得到以下信息:

Feb 14 22:20:01 ip-172-31-15-110 CRON[15880]: pam_unix(cron:session): session opened for user ubuntu by (uid=0)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15879]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15881]: pam_unix(cron:session): session opened for user root by (uid=0)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15882]: (root) CMD (/home/ubuntu/gzip/compile_script.sh)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15883]: (ubuntu) CMD (/home/ubuntu/gzip/compile_script.sh)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15884]: (root) CMD (/bin/bash /home/ubuntu/gzip/over_time_compile_ec2.sh)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15881]: (CRON) info (No MTA installed, discarding output)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15881]: pam_unix(cron:session): session closed for user root
Feb 14 22:20:01 ip-172-31-15-110 CRON[15880]: (CRON) info (No MTA installed, discarding output)
Feb 14 22:20:01 ip-172-31-15-110 CRON[15880]: pam_unix(cron:session): session closed for user ubuntu

我看到了这条线(CRON) info (No MTA installed, discarding output),但它不应该让我的 CRON 失败,对吗?

答案1

没有安装 MTA(如 postfix 或类似的)不会使您的 cron 作业失败,但它会阻止 cron 能够通过电子邮件向作业所有者发送作业的任何输出。

如果您的作业失败(出于任何原因)或产生输出,您将不会收到有关此情况的通知,并且该信息将被丢弃。

如果您不想安装 MTA,请使用将作业重定向到日志文件:

*/15 * * * * root /bin/bash /home/ubuntu/gzip/over_time_compile_ec2.sh >/tmp/job.out 2>/tmp/job.err

/tmp/job.out这会将标准输出消息以及作业生成的任何诊断消息放入/tmp/job.err.您还可以将两种类型的消息重定向到带有>/tmp/job.out 2>&1.

使用 时>,每次作业运行时这些文件都会被清空并重写。使用>>,文件将被附加到(但2>&1如果您重定向到同一文件,则保持原样;2>>&1将不起作用)。

答案2

在我的文件中,over_time_compile_ec2.sh有另一个脚本的路径,因为 cron 位于当前目录中,但事实并非如此。

所以我只是在其他脚本上添加了完整路径。

相关内容