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:

Back to top