根cronjob无法正确运行,用户cronjob可以正常运行

时间:2019-06-06 10:08:20

标签: cron ubuntu-14.04

我正在尝试运行root cronjob来执行脚本。

这是我放入sudo crontab -e的cronjob:

*/1 * * * * ~/temperature_log/logtemp.sh >> ~/temperature_log/templog.log>&1

该脚本需要hddtemp的root权限。 不幸的是,templog.log文件从未出现。系统日志显示:

Jun  6 13:09:01 user CRON[32433]: (root) CMD (~/temperature_log/logtemp.sh >> ~/temperature_log/templog.log>&1)
Jun  6 13:09:01 user CRON[32426]: (CRON) info (No MTA installed, discarding output)

显然,脚本正在运行,但是那里出了点问题。

甚至陌生人:如果我仅通过crontab -e运行用户cron,该脚本将执行(尽管没有root权限,所以对我没有用)并确实写入了日志文件。

如何确保我的根crontab正常工作?

我以没有root权限的用户身份通过​​ssh连接到这台计算机,但是我确实具有root passwort。

编辑

我现在更改了程序,我希望它通过logger登录到syslog。同样,手动运行脚本可以正常工作并且可以正确记录日志,但是从crontab运行脚本仅显示以下内容:

Jun 6 14:27:01 user CRON[1657]: (root) CMD (Jun 6 15:06:01 insystems CRON[25328]: (root) CMD (/bin/sh ~/temperature_log/logtemp.sh)

未记录任何信息。我添加了/ dev / null部分来摆脱电子邮件警告。我不打算安装电子邮件服务。

2 个答案:

答案 0 :(得分:0)

您是否编写了发送电子邮件警报的脚本?如果未安装邮件服务,则会出现警告“(未安装MTA,正在丢弃输出)”。

大多数Linux发行版都安装了邮件服务(包括MTA)。 Ubuntu却没有。

您可以安装邮件服务(例如postfix)来解决此问题。

sudo apt-get install postfix

此外,尝试提供文件的完整路径(绝对路径): 〜/ temperature_log / logtemp.sh和〜/ temperature_log / templog.log

确保logtemp.sh具有执行权限。如果否,则发出命令

chmod +x logtemp.sh

答案 1 :(得分:0)

我的解决方案是将cronjob添加到crontab -e中,而不是添加到/etc/crontab中。从那里开始,它没有问题。

我可能在另一个crontab文件中犯了一个错误,但是这种解决方案对我来说还可以。