我对 cron 和 crontab 很陌生。
我已经编辑了 crontab 文件,并且需要手动执行其中一个命令,以便我可以预先尝试并测试它。我怎么做?如果失败,是否有显示错误的模式?
- 编写一个可以测试的 shell 脚本。
- 从 crontab 执行该 shell 脚本。
- 请记住
cron
几乎不提供任何环境 - 所以你的脚本可能必须解决这个问题。特别是,您的个人资料将不会被使用。
- 不要迷恋 crontab 中的内容。
- 将调试模式构建到您的 shell 脚本中。
不,没有专门显示错误的模式。通常,如果 cron 作业发生,输出会通过电子邮件发送给您。也就是说,如果执行的命令将任何内容写入标准输出或标准错误,它会向您发送标准输出和标准错误信息。
在 MacOS X (10.6.7) 上,我得到的环境是(通过crontab
条目如12 37 17 5 * env >/tmp/cron.env
):
SHELL=/bin/sh
USER=jleffler
PATH=/usr/bin:/bin
PWD=/Users/jleffler
SHLVL=1
HOME=/Users/jleffler
LOGNAME=jleffler
_=/usr/bin/env
那些,PWD
, _
and SHLVL
由外壳处理。因此,要在类似 cron 的环境中可靠地测试脚本,请使用:
(cd $HOME
env -i \
SHELL=/bin/sh \
USER=$USER \
PATH=/usr/bin:/bin \
HOME=$HOME \
LOGNAME=$LOGNAME \
/path/to/script/you/execute ...
)
The -i
选项env
意味着“忽略所有继承的环境”;该脚本将准确地看到指定的五个值以及 shell 自动指定的任何值。没有任何争论,env
环境报告;通过参数,它可以调整环境并执行命令。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)