0

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

1 回答 1

3

如果/home/myuser/bin/runreport是脚本,则在顶部添加以下两行:

env
set -x

并将crontab行更改为:

. /home/myuser/.bashrc ; /home/myuser/bin/runreport >/tmp/qq 2>&1

然后,当它运行时,您应该在/tmp/qq文件中包含所有环境变量和运行的命令。

如果它不是脚本,请创建一个调用它的脚本并将该env行添加到其中。这至少会给你你正在运行的环境。

于 2010-08-04T12:41:03.630 回答