cronはカスタムパスにシンボリックリンクを持つコマンドを使用できません。

cronはカスタムパスにシンボリックリンクを持つコマンドを使用できません。

job.sh/home/user/scripts次に、シンボリックリンクするスクリプトがあります/home/user/bin/job。カスタムバイナリパスが含まれているため、.bashrccliでコマンドを実行するたびに、すべてが期待どおりに機能します。job param1 etc

そのコマンドはcronjobを介して実行する必要がありますが、そうではありません。一方、cronjobが(/home/user/bin/job単純パスではなくjob)フルパスを参照すると、すべてがうまく動作します。

この問題を解決する方法についてのアドバイスはありますか?

答え1

cron意図的に制限された環境(標準シェルと他の制限されたパスを含む)で実行されます。

スクリプト(スクリプトのフルパスを含む)を実行してから、内部的にパス変数を設定するか、行crontab自体でパスを設定する必要があります。

一例は、

12 0 * * * (export PATH=$PATH:/somedirectory; job)

実行中のすべてのエントリへのフルパスを含め、crontab実行されたスクリプトでパスを正しく設定することは実際にはより安全ですcron

関連情報