Mar*_*sen 46
当我想测试我的cron作业时,我通常将间隔设置得非常低,并密切监视日志.当我确信输入正确时,我将间隔设置回一个合理的值.
例如,每两分钟运行一次作业:
*/2 * * * *     echo "Hello World"
我运行tail -f我的日志文件(/var/log/syslog在debian上).
Jos*_*hua 29
这个问题也在serverfault上被提出并且已经获得了一些额外的答案
以下是Marco解决方案的解释版本:(不确定最佳ediquite是否仅提供链接答案或不复制别人的解决方案)
使用临时cron条目创建环境文件
* * * * *  /usr/bin/env > /home/username/cron-env
然后创建一个shell脚本run-as-cron,该脚本使用该环境执行命令.
#!/bin/sh
. "$1"
exec /usr/bin/env -i "$SHELL" -c ". $1; $2"
给它执行权限
chmod +x run-as-cron
然后它就像这样使用:
./run-as-cron <cron-environment> <command>
例如
./run-as-cron /home/username/cron-env 'echo $PATH'
约书亚的回答对我不起作用.两个问题:
cron-env文件中的变量不会导出(set -a需要).
脚本仍与当前tty(setsid必需)绑定.
脚本run-as-cron应该是
#!/bin/sh
. "$1"
exec setsid /usr/bin/env -i "$SHELL" -c "set -a; . $1; $2" </dev/null
没有足够的代表来修复他的答案或添加评论......