トップ «前の日記(2007-01-18) 最新 次の日記(2007-01-20)» 編集

2007-01-19 [長年日記]

_ crontab コマンドでの設定内容を自動バックアップ

作ってみた。ヘボいモノなのに shell スクリプトがロクに書けないので Ruby になってしまっていますごめんなさい。

ほんとは保存ファイル名もオプションで渡したかったんだけど、「あるオプションだけ取り除いて残りを crontab に丸投げする」という処理をどう書いたものやら、考えるのが面倒くさくなったので決め打ちになってます。

一応機能としては

  • すべて crontab コマンドに丸投げする
  • -e オプションが与えられた場合は、設定完了後自動的に -e を -l に置き換えて crontab -l > ~USER/.crontab を実行、内容を保存する

ということをやってます。

自分はこれを alias にセットして安心しております。

wtnabe's crontabwrap at master - GitHub

[2010-10-09 追記]

ベタにここに貼るのをやめて github に上げて gem 化しました。

gem install crontabwrap

でインストールできます。

コメントにあった

sudo などで現在実行中のユーザーが変わった場合、~/.crontab が別のユーザーの内容で上書きされてしまう問題

を修正したつもりです。

本日のツッコミ(全2件) [ツッコミを入れる]
_ ほげ (2010-10-01 13:13)

こんなの欲しかったのでありがたいです。 <br>ruby これ.rb -u user1 -e で定義後 <br>ruby これ.rb -u root -e で作業すると、user1 の .crontab に root の作業分が上書きされるのが気になりました。 <br>ruby 1.8.7 (2010-08-16 patchlevel 302)

_ wtnabe (2010-10-09 10:49)

feedback ありがとうございます。 <br> <br>1) crontabwrap -e, 2) sudo crontabwrap -e の結果、自分の .crontab が root のもので上書きされるのは確認できました。 <br> <br>そもそも普通は他人の crontab にアクセする権限はないこと、root の crontab はシステム全体の crontab に書く方が自然かなと思い、root 周りは考えていませんでした。 <br> <br>root のユーザー用の crontab って、使います? やっぱり ~USERNAME/.crontab にすべきですかねぇ。 <br>