rootとして実行する必要があり、デフォルトのshシェルの代わりにbashを必要とするcronジョブがあります。
crontabには正常に実行される他のジョブがあり、ファイルの上部に指定してジョブが中断されるroot
危険を冒したくありません。SHELL=/bin/bash
crontab
他の既存のジョブで使用されるシェルを変更せずにbashを使用して自分のcronジョブを実行するように指定するにはどうすればよいですか?
私はこのような行がトリックを行うことができると思います0 * * * * SHELL=/bin/bash myjob
が、CentOSのcronドキュメントではこれに関する言及を見つけることができません。
また、私の作業(ファイルの最後の変数)の前にSHELL変数を設定するとうまくいくかもしれないと思いましたが、環境変数の配置の効果とドキュメントの順序で割り当てられているか、単に割り当てられたかについてのドキュメントが見つかりませんでした。場所にかかわらずグローバルと見なされます(またはすべての操作が前でないとエラーが発生する可能性があります)。
操作に応じてシェルを指定できますか?
ベストアンサー1
シェルを指定する最も直接的な方法は、シェルの実行可能ファイルを呼び出すことです。たとえば、myjob
usingというコマンドを実行するには、bash
次のコマンドラインのようなものを使用します。
/bin/bash -c 'myjob'
対応するcrontabエントリは次のとおりです。
0 * * * * /bin/bash -c 'myjob'
または、myjob
スクリプトの場合は、次のコマンドラインのようなものを使用できます。
/bin/bash '/path/to/myjob'
対応するcrontabエントリは次のとおりです。
0 * * * * /bin/bash '/path/to/myjob'