私のサーバーはコードを予約するためにDebian
使用します。問題は、次の行を追加するときです。crontab
python
6 9 * * * python /path/to/daily_task.py &> $HOME/out.txt
当然、出力にはpython
コマンドが見つからないと表示されます。
もちろん、たとえばcrontabエントリにフルパスを追加することもできますが、そのアイデアは混乱しているようです/opt/python/3.9.2/bin/python
。os.system("python task.py")
daily_task.py
私は次の行を追加しようとしました/etc/environment
。
export PATH="$PATH:/opt/python/3.9.2/bin/"
再起動後、実際にはpython
ターミナルウィンドウで使用できますが、crontab
それでも$PATH
。/usr/bin
crontabファイルを変更せず$PATH
にどこでも変更したい場合は、このコードをどこに配置する必要がありますか?crontab
答え1
内容を見ると、/bin
多くのプログラムがbinディレクトリに直接入らないため、多くのシンボリックリンクを見ることができます。次のようにすることもできます。
sudo ln -s /opt/python/3.9.2/bin/python /usr/bin
これを行うとcrontab
。
答え2
次のように、crontabファイル自体に環境変数を追加できます。
PATH=/usr/bin:/whatever/bin
HOME=/home/myuser
6 9 * * * python /path/to/daily_task.py &> $HOME/out.txt