编写可以访问用户数据的Cron作业

时间:2010-08-04 12:16:23

标签: bash shell ubuntu cron crontab

我正在尝试编写一个运行报告的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)

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行。这至少会为您提供正在运行的环境。