0

ファイル削除コマンドを含む sh ファイルがあります。

次のようにphpから実行します。

shell_exec("sudo -n ./truncatefiles.sh  2>&1");

ブラウザから PHP ファイルを開くと問題なく動作しますが、スケジュールされた cron タブからは動作しません。

PHP ユーザー:www-data

whoiamicron から実行すると、同じものが返されます: www-data

これをvisudoに追加しました:

www-data ALL=(ALL) NOPASSWD: /www/sites/..../importscript/truncatefiles.sh

この sh ファイルのシェル exec は (cron から) を返します。

sudo: 申し訳ありませんが、sudo を実行するにはパスワードが必要です

cron で異なる方法で動作するのはなぜですか?

機能させるにはどうすればよいですか?

4

1 に答える 1

0

次のことを試してください. crotab からの出力をファイルに記録してみてください. * * myscript.php >> /var/log/myjob.log 2>&1 この方法でスクリプトをデバッグできます. 1. シェル スクリプト、php ファイルのユーザーと権限も確認します。2. sudo crotab -e で試す

于 2016-11-29T09:22:02.763 に答える