ルートとして、crontab -e
スクリプトを追加するために使用しました。ただし、スクリプトはバイナリを使用しており/usr/sbin/
、スクリプトが cron から実行されると、バイナリが存在しないというエラーが発生します。これを修正するにはどうすればよいですか?
答え1
バイナリのフルパスを使用する必要があります。
では、cron ジョブで使用したいとしますipconfig
。crontab に次のようなコマンドを記述する代わりに:
ipconfig
これを次のように変更します。
/usr/sbin/ipconfig
覚えておいてください: シェル パスは、コマンド ラインからバイナリ/実行可能ファイルを呼び出すときに、それらの場所をシステムに指示するだけで、コマンドの入力が簡単になります。バイナリ/実行可能ファイルの完全なパスを指定すると、スクリプトの使用時に 100% 同じように機能します。
答え2
おそらく最もクリーンなアプローチではないが、
crontabでPATH変数を設定するには、これをcrontabの最初の行に記述します。
# start of crontab file
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
# your cron entries below