▼すべてを開く。
▲すべてを閉じる。
$ less jobfile wall This system will Reboot in 20 minutes. Please log out immediately.
$ at -f jobfile 14:50 job 22 at 2004-07-07 14:50
atコマンドで-fオプション、ジョブを記述したファイル「jobfile」に続いて時刻「14:50」を指定してリターンを押すと、今日の14:50にファイルに記述されたジョブが実行される。
予約したコマンドの実行結果$ Broadcast message from masa (Wed Jul 7 14:50:00 2004): This system will Reboot in 20 minutes. Please log out immediately.
$ date 2004年 7月 7日 水曜日 10:23:08 JST
$ at 14:50 at> wall This system will Reboot in 20 minutes. Please log out untill 15:10. at> <EOT> job 1 at 2004-07-07 14:50
atコマンドに続いて時刻「14:50」を指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。すると、ジョブ番号1が2004-07-07 14:50に予約されたことが返される。これで、今日の14時50分に指定されたコマンドが実行される。
定期的に実行するコマンドは、crontabに登録する。
指定した時刻がすでに過ぎてしまっていた場合、予約は次の日の設定となる。マシンの時刻と現実の時刻とが異なる場合があるので、近い時刻に実行する場合は、dateコマンドでマシンの現在時刻を確認すること。
$ at 21:10 071404 at> wall Switch ON the TV!! at> <EOT> job 18 at 2004-07-14 21:10
atコマンドに続いて時刻「21:10」日付「071404」を指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、2004年7月14日21時10分に指定されたコマンドが実行される。
日時の指定は、時刻 日 の順に行うこと。
予約したコマンドの実行結果$ Broadcast message from masa (Wed Jul 14 21:10:00 2004): Switch ON the TV!!
定期的に実行するコマンドは、crontabに登録する。
$ at 070704 at> wall hello at> <EOT> job 12 at 2004-07-07 16:43
時間指定をせずに日付の指定のみをした場合、設定される時刻はそのコマンドを設定している今と同じ時刻になる。
当日の日付を指定して時刻を指定しなかった場合は、コマンドは設定直後に実行されてしまう。直ちに実行されて困るコマンドの場合は、特に日時の指定方法を試してから実行すること。
過去の日時を設定しても、なんの警告も無くatコマンドは入力を受け付ける。しかし、このジョブはキューには入らないので、実行されることはない。
atコマンドで1999年7月8日を指定する$ at 070899 at> echo hello at> <EOT> job 16 at 1999-07-08 17:37
$ at now + 20 minutes at> wall Hi! at> <EOT> job 15 at 2004-07-07 16:51
atコマンドで、時刻を「now +20 minutes」と指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、今から20分後に指定されたコマンドが実行される。
$ at now +1 hours at> wall hello at> <EOT> job 2 at 2005-05-11 20:20
atコマンドで、時刻を「now +1 hours」と指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押してから[control]-[d]でatコマンドを終了させる。これで、今から1時間後に指定されたコマンドが実行される。
$ at now +2 days at> wall hello at> <EOT> job 3 at 2005-05-13 19:21
atコマンドで、時刻を「now +2 days」と指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、今から2日後の同時刻に指定されたコマンドが実行される。
$ at now 1am +3 days at> wall hello at> <EOT> job 4 at 2005-05-14 01:00
atコマンドで、時刻を「now 1am +3 days」と指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、今から3日後の午前1時に指定されたコマンドが実行される。
$ at now +1 week at> wall hello at> <EOT> job 5 at 2005-05-18 19:21
atコマンドで、時刻を「now +1 week」と指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、今から1週間後の同時刻に指定されたコマンドが実行される。
現在を基準に、何分後、何時間後、何日後、何週間後という予約の仕方ができる。
# at -m 18:35 at> wall hello at> <EOT> job 5 at 2005-05-12 18:35
atコマンドで-mオプション、時刻「18:35」を指定してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、2005年5月12日18時35分に指定されたコマンドが実行され、以下のような完了通知のメールが送られる。
atコマンド実行完了時に送られてくるメールFrom root@polotxp Thu May 12 18:36:02 2005 Date: Thu, 12 May 2005 18:36:01 +0900 From: root <root@polotxp> Subject: Output from your job 5 To: root@polotxp
$ at 1am tomorrow at> echo hello at> <EOT> job 8 at 2004-07-08 01:00
atコマンドで、時刻を「1am」、日を「tomorrow」で指示してリターンを押すと、atコマンドが実行するジョブの入力を促すプロンプト「at>」を表示する。ここにコマンドを入力し、入力が完了したら[return]を押す。「at>」が表示されるので、ここで[control]-dを押すと「<EOT>」(End of Terminal)が返され、atコマンドへの入力が終了する。これで、翌日の午前1時に指定されたコマンドが実行される。