単一クローン操作のシェルの指定

単一クローン操作のシェルの指定

rootとして実行する必要があり、デフォルトのshシェルの代わりにbashを必要とするcronジョブがあります。

crontabには正常に実行される他のジョブがあり、ファイルの上部に指定してジョブが中断されるroot危険を冒したくありません。SHELL=/bin/bashcrontab

他の既存のジョブで使用されるシェルを変更せずに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'

おすすめ記事