2011-03-17

"at" command for scheduled shutdown (among other things)

たとえば、2011年3月18日の6時20分から停電が予定されていて、
その前にはシャットダウンしなければならないとする(てか実は今がそうなんだが)。

その場合、at コマンドを使う。

まず事前に時刻が合っているか確認する。
(yumが壊れてたら)

時刻を合わせたら、
# echo "shutdown -h now" |at 06:10 03/18/2011
でおk

仕込んだタイマーの確認は、
# atq
でおk

何台もの計算機に同じコマンド打ち込むのは大変だし、なにより打ち間違いが怖いので、計算機の台数が多い場合は -f オプションと設定ファイルを利用したほうが良さそう。


なお当然、shutdown 以外のコマンドにも使える。

また、日付指定をせず「何分後」とか「今日の何時」でよければ shutdown コマンド自体のオプションでもできる模様


----
ここで、
# echo コマンド1 | コマンド2
というのの意味をメモっておく(今回この方法をはじめて知った)。

まずパイプ( | ←これのこと)の左側は「『コマンド1』 という文字列を出力をせよ」という意味。
パイプと、パイプの右側は、「パイプの左側で得られた出力を、パイプの右側のコマンドの引数として渡せ」という意味。

よって、
# echo コマンド1 | コマンド2
は、
# コマンド2 (ただし引数として「コマンド1」という文字列をとる)
の意味になる。

したがって、

# echo "shutdown -h now" |at 06:10 03/18/2011
は、
# at "shutdown -h now" 06:10 03/18/2011
と同じこと(というか、たぶんこれでもできるんじゃないかな?)。


References:

http://itpro.nikkeibp.co.jp/article/COLUMN/20060227/230711/
http://sonic64.com/2004-08-31.html

No comments: