atコマンドによるスケジュールジョブ
毎時間や毎日コマンドを実行する cron がありますが特定の時間に1回きりのコマンド実行するなら at コマンドはとても便利です。 atコマンドを便利に使うために関係するコマンドを挙げておく。
- at ジョブを登録するコマンド
- atq atコマンドで登録したジョブの一覧を表示
- atrm atqで表示されているジョブを削除するコマンド
ジョブの登録方法
本日の16:00にコマンドを1回commandを実行します。16:00過ぎてから登録した場合には明日の16:00に実行されます。
$ at -f command 16:00 又は $ at 16:00 < command
2012年1月1日20時30分に1回commandを実行します
at -t 201201012030 -f command
登録ジョブの一覧
以下の例は sound_jihou.shのシェルスクリプトを次の16:35に実行するように登録しています。 その後atqコマンドで登録の確認をしています。
$ at -f sound_jihou.sh 16:35 Job 6 will be executed using /bin/sh [tooru@ns:~]$ sudo atq Date Owner Queue Job# 2012年 3月 3日 土曜日 17時00分00秒 JST root c 3 2012年 3月 3日 土曜日 16時35分00秒 JST root c 6
ジョブの取り消し
登録されているジョブを取り消すには atrm コマンドにジョブidを渡して実行します。
以下はid 6のジョブを取り消しています。
$ atrm 6
このatコマンドのデフォルト設定ではroot以外の一般ユーザが実行出来ないようになっています。 一般ユーザにatコマンドを実行を許可するには空の /var/at/at.deny ファイルを作成します。 又一部のユーザのみに許可したい場合は /var/at/at.allow ファイルを作成して許可するユーザ名を1行づつ書いておきます。
created: