crontab 并测试要执行的命令
我对 cron 和 crontab 很陌生。
我已经编辑了 crontab 文件,并且需要手动执行其中一个命令,以便我可以预先尝试并测试它。我该怎么做?如果失败,是否有显示错误的模式?
I'm quite new to cron and crontab.
I've edited the crontab file and I need to execute manually one of commands so I can try it and test it beforehand. How do I do that? If it fails, is there a mode that shows the errors?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
cron
几乎不提供任何环境 - 因此您的脚本可能必须修复该问题。特别是,您的个人资料将不会被使用。不,没有专门显示错误的模式。通常,如果 cron 作业发生,输出会通过电子邮件发送给您。也就是说,如果执行的命令将任何内容写入标准输出或标准错误,它会向您发送标准输出和标准错误信息。
在 MacOS X (10.6.7) 上,我获得的环境是(通过
crontab
条目,例如12 37 17 5 * env >/tmp/cron.env
):其中,
PWD
、_
和SLVL
由 shell 处理。因此,要在类似 cron 的环境中可靠地测试脚本,请使用:env
的-i
选项表示“忽略所有继承的环境”;该脚本将准确地看到指定的五个值以及 shell 自动指定的任何值。如果没有参数,env
会报告环境;通过参数,它可以调整环境并执行命令。cron
provides barely any environment - so your script may have to fix that. In particular, your profile will not be used.No, there isn't specifically a mode that shows errors. Usually, if the cron job witters, the output is emailed to you. That is, it sends standard output and standard error information to you if the executed command writes anything to either standard output or standard error.
On MacOS X (10.6.7), the environment I got was (via a
crontab
entry like12 37 17 5 * env >/tmp/cron.env
):Of those,
PWD
,_
andSHLVL
are handled by the shell. So, to test your script reliably in a cron-like environment, use:The
-i
option toenv
means 'ignore all inherited enviroment'; the script will see exactly the five values specified plus anything the shell specifies automatically. With no arguments,env
reports on the environment; with arguments, it adjusts the environment and executes a command.要“手动”执行脚本,您首先必须通过执行以下操作使其可执行:
然后,
如果您从其路径或
从任何地方执行它,则执行以下操作。
To execute a script "manually" you first have to make it executable by doing:
Then do either
if you execute it from its path or
from anywhere.