$ PATHをグローバルに変更する方法

$ PATHをグローバルに変更する方法

私のサーバーはコードを予約するためにDebian使用します。問題は、次の行を追加するときです。crontabpython

6 9 * * * python /path/to/daily_task.py &> $HOME/out.txt

当然、出力にはpythonコマンドが見つからないと表示されます。

もちろん、たとえばcrontabエントリにフルパスを追加することもできますが、そのアイデアは混乱しているようです/opt/python/3.9.2/bin/pythonos.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

関連情報