job.sh
/home/user/scripts
次に、シンボリックリンクするスクリプトがあります/home/user/bin/job
。カスタムバイナリパスが含まれているため、.bashrc
cliでコマンドを実行するたびに、すべてが期待どおりに機能します。job param1 etc
そのコマンドはcronjobを介して実行する必要がありますが、そうではありません。一方、cronjobが(/home/user/bin/job
単純パスではなくjob
)フルパスを参照すると、すべてがうまく動作します。
この問題を解決する方法についてのアドバイスはありますか?
答え1
cron
意図的に制限された環境(標準シェルと他の制限されたパスを含む)で実行されます。
スクリプト(スクリプトのフルパスを含む)を実行してから、内部的にパス変数を設定するか、行crontab
自体でパスを設定する必要があります。
一例は、
12 0 * * * (export PATH=$PATH:/somedirectory; job)
実行中のすべてのエントリへのフルパスを含め、crontab
実行されたスクリプトでパスを正しく設定することは実際にはより安全ですcron
。