我在一台具有有限权限的 unix 机器上有一个个人用户名/密码。每当我需要执行某些命令时,我都必须使用苏命令,那么我就可以正常执行它。
现在,我需要添加一个使用此类特权命令的 cronjob,因此我将 cronjob 添加到了我所替代的用户的 crontab 上,以便能够访问这些命令。
奇怪的是,我发现这些命令由于某种原因无法作为 cronjob 运行,尽管当我直接从 shell 执行它们时(在 su 之后)它们可以无缝运行。
为什么会发生这种情况?为什么这些命令不能作为 cronjobs 的一部分运行?
答案1
他们可能希望以某种方式设置某些环境变量,但当以该用户身份直接运行命令时,情况并非如此。通常$PATH
。
答案2
我会向您的 cron 条目添加一个输出文件,以便您可以看到它执行失败的原因。即:
*/5 * * * * path_to_script.sh > /tmp/myscript.out 2>&1
5 分钟后,检查 /tmp/myscript.out 并查看其抱怨的内容。
当然,首先查明您是否有权创建 cron 会有所帮助。