at nowを使えば安心して放置できますね

crondは知ってるのにatdはあまり知られていないだろうか。
crondといえば、決めた時間に毎日、毎時、毎分実行すると。
実はddo.jpの更新も今はcrondでやってるんです。おもしろいでしょ。

wget -O - 'http://free.ddo.jp/dnsupdate.php?dn=libserver&pw=*******' >/dev/null 2>&1

これを/etc/cron.hourly/にddo.shとして登録してある。
なので毎時これが実行される。
ただ我が家のグローバルIPは加入以来2度しか変わった気がしないんだけどね。
しかし一ヶ月に1回は更新しないと登録消されるしね。
一応急にIPアドレスが変わっても1時間以内には復帰するはずと。
ええ加減な計算ですがまぁそんなもんでいいと思います。


crondは自動実行のためのデーモンですが、atdも自動実行のためのデーモンです。
crondは一定の予定で実行するというために使われますが、
atdは一回切りの自動実行をします。
それが何の役に立つんだ、それは非常に重い処理をするときですよ。
今日は何度も利用した。


部のサーバーはなぜかX Serverを動かすのが流行ってる。
名前に騙されてはいけない。X Serverとは画面の方。動くプログラムがX Clientです。
なぜかサーバー機なのにデスクトップマシンのように遊んでいってくれる。
それ自体はいいことだと思いますけどね。こうやってLinuxを利用していただけるのだから。
Apache・Postfixなど動かすだけではもてあますほど高い性能ですからね。
その中でKDEを入れて欲しいという要望があったわけだ。
KDEのインストールをyumで行うと時間がかかりそう。
その間rootユーザーでログインして放置なんて怖すぎる。


まぁしかし何分かかるかあやしいから、ここでatdを利用すると。

# echo "yum -y install kdebase" | at now

実行するコマンドをパイプで投げて、今実行しろと。
こうすれば今すぐatdが実行してくれます。
これであとは放置すればOK。ログアウトしておいたと。
出力結果はメールで実行ユーザーに送られるんですけどね。
atの状況はatqで確認できる。

5       2009-02-05 22:44 = root
2 2009-02-06 22:44 a root

ここで=となってれば実行中、aとなってれば待機中ですかね。
まぁこんな風にすれば便利であると。


なんか時間がかかりそうだなと思ったらとりあえずat nowに投げれば安心ですね。
SSHでログインしてると、動作中に切断すると作業止まりますしね。
一応at nowに投げれば安心だと。
まぁ終わらないと結果が見えないとか、ちょっと問題に気付きにくくはなりますけど、
しかし放置しておけばOKっていうやつならこれはすごく便利。
結果はメールで届きますからね。
もちろんメールいらんのなら 2>&1 >/dev/null とすればいいんですけどね。
ぜひご利用ください。