Debian cron ジョブが正しく動作しない

Debian cron ジョブが正しく動作しない

私は Debian 12 を実行しており、crontabArtifactory リポジトリから定期的にいくつかのファイルを取得する Python スクリプトを実行しようとしています。

私は、このジョブを別のユーザーアカウントで実行していますwww。crontabを次のように編集しました。crontab -e

コマンドは次のとおりです。

# Cron
0 * * * *  /path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource

# Command
/path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource

sudo journalctl -u cronジョブに基づいて、実行されているように見えました。0 * * * * date >> ~/clock.txtテストとして別のジョブも作成しました。両方とも実行されているように見えました。ただし、ファイルを取得するはずの Python スクリプトは、設定したディレクトリに何も新しいものを書き込みませんでした (日付と時刻は変更されませんでした)。

コマンドをコピーして貼り付けて直接実行してみましたが、問題なく動作し、新しいファイルが書き込まれました。スクリプトを正しく実行するために、cron で何か特別なことが必要ですか?

答え1

標準的な推奨事項は、スクリプトにコマンドを追加し、ホーム環境のセットを追加することです。

#!/usr/bin/bash

source /path/to/your/home/directory/.bashrc
/path/to/py/venv/python3 /path/to/py/script.py && chown -R user:group /path/to/resource

次のようにcronを作成します:

0 * * * *  /path/to/above/script

別のシェルを使用する場合はファイル名(bash関連)を変更してください

関連情報