我有一个 test.sh 脚本
#!/bin/sh
php /home/v/file.php
sh /root/x/some.sh
当我从命令行以 root 身份执行该文件时,它可以正常工作。
sh /home/v/test.sh
当我将其设置为 crontab -e (即 root cron)时,不起作用
* * * * * sh /home/v/test.sh
我做错了什么?谢谢
答案1
cron 运行的环境非常有限,请尝试始终使用二进制文件的完整路径。
#!/bin/sh
/usr/bin/php /home/v/file.php
/bin/sh /root/x/some.sh
这假设你的 php 二进制文件位于 /usr/bin/php 中,如果不是这样,请适当更改
另外,尝试在 cron 顶部添加 MAILTO 行,以便直接收到执行过程中可能发生的任何错误的邮件
[email protected]
* * * * * sh /home/v/test.sh
答案2
二进制文件可能php
不在默认的 cron PATH 中。您应该在脚本中输入 php 二进制文件的完整路径
/usr/bin/php /home/v/file.php
您还应该提供 sh 的路径
/bin/sh /root/x/some.sh