crontabにChefからコマンド足したいぜ!

はじめに

  • /etc/crontabを使う
  • /etc/crontabの既存の行に影響を与えない
  • 複数回Chefを実行した場合に、複数行追加されたりしない
  • run-parts使ってDirectoryをまとめようと思ったが、

その場合、run-parts全てが、同じ時間に実行されてしまうのであきらめた。

  • 例だが /usr/local/java/bin/java のコマンドを実行するものとする
  • crontabの書式がCentOS6.2とCentOS5.4で違うので

crontab.6.2とcrontab.5.4を用意して試してみる

grep使って、コマンドで引っかけて書き直す

grep -v "/usr/local/java/bin/java" crontab.5.4 > crontab.5.4.tmp
mv -f crontab.5.4.tmp crontab.5.4
echo "0 * * * * rx7fc /usr/local/java/bin/java" >> crontab.5.4

もうこれでいいか。

6.2の方も試したけど問題なさそう

grep -v "/usr/local/java/bin/java" crontab.6.2 > crontab.6.2.tmp
mv -f crontab.6.2.tmp crontab.6.2
echo "0 * * * * rx7fc /usr/local/java/bin/java" >> crontab.6.2

当たり前だけど

"/usr/local/java/bin/java"の行が複数あると終わるので注意