Linux

2013-04-08, at

指定時間にコマンド起動

時間指定の起動というと、crontabが一般的かと思われます。しかし、crontabは設定ファイルにコマンドを登録するタイプなので、「明日一回だけ…」のような臨時のタスク予約には不向きな部分があります(処理後に設定を消し忘れると、また動いてしまいます)。

ということで、登場するのが「at」コマンド群です。atでタスクを登録して、atqで一覧、atrmで削除、といった具合にタスクをキューで管理します。

$ at "11:40" -f foo.sh
$ atq
1 2013-04-08 10:40 a username
2 2013-04-08 11:40 a username
$ atrm 2
$ atq
1 2013-04-08 10:40 a username

コマンドの指定は「-f」オプションでスクリプト(/bin/sh限定)を指定する他、以下のように標準入力から渡すことも可能です(こっちが本命?)。

$ echo "who" | at "10:50"

参考にしたサイトでは、処理後のレポートは「特に何も」と書かれていましたが、こちらの環境(RedHat5.9)では、以下のようなタイトルのメールで実行結果が配送されてきました。これなら実行確認も楽ですね。

Output from your job 3

参考URL

この記事は役に立ちましたか?