Unix Crontab和测试要执行的命令
我对cron和crontab还很陌生 我已经编辑了crontab文件,我需要手动执行其中一个命令,这样我就可以尝试并预先测试它。我该怎么做?如果失败,是否有显示错误的模式 要“手动”执行脚本,首先必须执行以下操作使其可执行:Unix Crontab和测试要执行的命令,unix,cron,crontab,Unix,Cron,Crontab,我对cron和crontab还很陌生 我已经编辑了crontab文件,我需要手动执行其中一个命令,这样我就可以尝试并预先测试它。我该怎么做?如果失败,是否有显示错误的模式 要“手动”执行脚本,首先必须执行以下操作使其可执行: $ chmod +x yourScriptName 那就任其一吧 $ ./yourScriptName 如果您从其路径或 $ /full/path/to/yourScriptName 从任何地方来 编写一个可以测试的shell脚本 从crontab执行该shell脚本
$ chmod +x yourScriptName
那就任其一吧
$ ./yourScriptName
如果您从其路径或
$ /full/path/to/yourScriptName
从任何地方来
cron
几乎不提供任何环境,因此您的脚本可能需要修复这一点。特别是,您的个人资料将不会被使用crontab
条目,如1237175*env>/tmp/cron.env
):
其中,PWD
、
和SHLVL
由shell处理。因此,要在类似cron的环境中可靠地测试脚本,请使用:
(cd $HOME
env -i \
SHELL=/bin/sh \
USER=$USER \
PATH=/usr/bin:/bin \
HOME=$HOME \
LOGNAME=$LOGNAME \
/path/to/script/you/execute ...
)
env
的-i
选项意味着“忽略所有继承的环境”;脚本将看到指定的五个值加上shell自动指定的任何值。没有参数,env
报告环境;通过参数,它可以调整环境并执行命令
(cd $HOME
env -i \
SHELL=/bin/sh \
USER=$USER \
PATH=/usr/bin:/bin \
HOME=$HOME \
LOGNAME=$LOGNAME \
/path/to/script/you/execute ...
)