アメリエフの技術ブログ

Amelieff Staff Blog

あとはまかせた!

突然ですが、あなたはSEです。次のような時、どうしますか?

・A、Bというプログラムがある。
・Aは3時間、Bは6時間かかる。
・Bは、Aが完全に終わらないと開始できない。
・明日の昼までにBを終わらせる必要がある。
・Aは現在実行中で、あと2時間はかかる見込み。
そしてもう19時だ。

一回しかやらない処理のためにcronを設定するのも面倒くさいし、
21時まで残ってBを実行して帰るか...と思いながら、なんとなくネットで「コマンド 時間後に実行」を検索してみたところ、「at」という便利なコマンドがあることを知りました。

@IT「一定の時間後にプログラムを実行するには」

恥ずかしながら私は今日初めてこのコマンドの存在を知りました。

こんな風に使います。

$ at now + 1 minute
at> cd $HOME
at> echo "Hello, me in the future!" > msg
at> (Ctrl+Dで抜ける)

どきどきしながら1分間待つと、今いるディレクトリに「msg」というファイルができて、その中に
Hello, me in the future!
と怪しい英文が書かれています。

なんとなくタイムマシン気分が味わえますね。

調子に乗って
at now + 5 second
として、5秒以内に設定完了できるかスリルを味わおうと思ったのですが、指定できる単位はminuteからのようでした。残念。

時間指定は、現在からの相対時刻だけでなく、YYYYMMTT形式やat 1am tomorrow(明日の午前1時)、at midnight(真夜中)やat teatime(午後四時)という風にも指定できるようです。

あとはまかせた私は帰る」の「at」と覚えましょう。