web-dev-qa-db-ja.com

ルートCrontabが実行されていませんPythonスクリプト

Debian 9を実行しています。rootとしてログインし、crontab -eを実行して、次の行を追加します。

0 */2 * * * python /home/Folder1/Script.py
1 */2 * * * python /home/Folder2/Script.py
2 */2 * * * python /home/Folder3/Script.py
3 */2 * * * python /home/Folder4/Script.py

スクリプトは実行されません。また、pythonの前にrootを追加して、スクリプトを実行しているユーザーを指定しようとしました。このcrontabは/var/spool/cron/crontabs/rootにあると思いますが、これが「メイン」の場所です。cronの実行に関連するエラーやメッセージは/var/log/syslogに報告されません。postfixローカルメールには何も報告されません。Pythonスクリプト。

このcronは、ユーザーのcrontabで実行すると機能しますが、rootでは機能しません。私はこれをパーソナルPC(AMD64 Debian 9)とVPS(VPS Dime AMD64 Debian 9)で試しました。

1
GShocked

Crontabを使用する場合は、最初にPythonのパスを追加する必要があります。

これが実際にスクリプトの正しい完全な場所であると仮定すると、次のものが必要です。

0 */2 * * * /usr/bin/python /home/Folder1/Script.py

また、スクリプト内の環境変数が絶対パスであることを確認する必要があります。これは、cronジョブではこれらの変数の表示が異なることに注意してください。

1
EDubman