从 cron 执行 sh 脚本

从 cron 执行 sh 脚本

我有一个 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

相关内容