我正在尝试编写一个运行报告的cron作业,并将结果通过电子邮件发送到我用户的〜/ .bashrc文件中定义的地址。我在Fedora上完美地工作了,但是当我切换到Ubuntu时,我的解决方案不再适用。我的cron作业当前运行的命令是:
. /home/myuser/.bashrc; /home/myuser/bin/runreport
如果我手动运行该命令,或通过Gnome-Schedule启动它,它可以正常工作,但它似乎永远不会运行。有什么特定的Ubuntu会阻止它运行吗?
crontab -l的输出:
0 8 * * * . /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1
输出grep -i cron / var / log / syslog:
Aug 4 08:00:00 localhost CRON[23234]: (myuser) CMD (. /home/myuser/.bashrc; /home/myuser/bin/runreport # JOB_ID_1)
答案 0 :(得分:3)
如果/home/myuser/bin/runreport
是脚本,请将以下两行添加到顶部:
env
set -x
并将crontab
行更改为:
. /home/myuser/.bashrc ; /home/myuser/bin/runreport >/tmp/qq 2>&1
然后,当它运行时,你应该在/tmp/qq
文件中拥有所有环境变量和运行的命令。
如果不是脚本,请创建一个调用它的脚本并向其添加env
行。这至少会为您提供正在运行的环境。