从 cron 执行 sh 脚本

Elz*_*ugi 2 debian shell cron sh

我有一个 test.sh 脚本

#!/bin/sh
php /home/v/file.php
sh /root/x/some.sh
Run Code Online (Sandbox Code Playgroud)

当我从命令行以 root 身份执行文件时,它可以工作。

sh /home/v/test.sh 
Run Code Online (Sandbox Code Playgroud)

当我将它设置为 crontab -e(是根 cron)时,它不起作用

 * * * * * sh /home/v/test.sh
Run Code Online (Sandbox Code Playgroud)

我做错了什么?谢谢

lyn*_*man 6

cron 运行的环境非常有限,尝试始终使用二进制文件的完整路径。

#!/bin/sh
/usr/bin/php /home/v/file.php
/bin/sh /root/x/some.sh
Run Code Online (Sandbox Code Playgroud)

这认为您的 php 二进制文件在 /usr/bin/php 中,如果不是这种情况,请适当更改

还尝试在您的 cron 顶部添加 MAILTO 行,以便收到包含执行期间可能发生的任何错误的直接邮件

MAILTO=youraddress@yourmail.com
* * * * * sh /home/v/test.sh
Run Code Online (Sandbox Code Playgroud)