WindowsのタスクスケジューラのUNIX版と言えばcron(atdとかもあった気がするけど、使ったことない)。
cronはcrontabコマンドでスケジュールの一覧を見たり、スケジュールの変更ができるんだけども、以下のコマンドを見て欲しい。
スケジュールの編集コマンド
$ crontab -e
スケジュールの全削除コマンド
$ crontab -r
このコマンドの違いは最後の「e」と「r」しか違わない。そしてお手元のキーボードを見てもらうとわかるように、この文字は
仲良く隣同士です。そう、スケジュールの編集をしようと思ってコマンドを打つ時に誤って隣の「r」なんて押して実行した日にはスケジュールが全部消えちゃいます。しかも容赦なくいきなり消えます。
まぁそんなブービートラップがcrontabに仕掛けられてるわけですよ。
つい先日、見事に引っかかったのですが。
ただ、直前に「crontab -l」やってるログが残ってたのですぐに復旧できました。けど、またやってしまうと怖いし、心臓に悪いのでなんとか間違って入力してもリカバリーできるようにしておきたい。
crontabには「-i」オプションをつけることで「-r」でスケジュールを全消去する際に「本当に消すけどいいですか?」って聞いてくるみたい。というかそういう機能あるなら、デフォルトonにしておけよ。。。
というわけでaliasを使ってcrontabを実行したときに自動で「crontab -i」になるように色々いじりました。
/etc/profile.d/crontab.shファイルを作成。
alias crontab='crontab -i'
/etc/profile.d/crontab.cshファイルを作成。
alias crontab 'crontab -i'
このファイルを作ってからログインしなおすとOK。これで間違えて「crontab -r」って入力しても、削除確認されるのでいきなりスケジュールがすっ飛ぶことはなくなる。
あとこれはbashでしか動作確認してないけどたぶんtcshとかでもOKだと思う。
どうでもいいが、俺は本来tcsh派です。スクリプトはsh(bash)だけど。
作成日:2008/08/18 03:02:54
※スパムコメントが届くようになったためコメント投稿を中止しました。