すべてを

▼開く

閉じる▲

指定した日時に実行するジョブを予約する

○2004年7月14日21時10分のコマンド実行を予約する

atコマンドで時刻と日付を指定して、実行するコマンドを入力する
$ 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コマンドで日付だけを指定して、実行するコマンドを入力する
$ 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

翌日の指定時刻に実行するジョブを予約する

○翌日の午前1時にジョブの実行を予約する

atコマンドで時刻と日を指定して、実行するコマンドを入力する
$ 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時に指定されたコマンドが実行される。

指定した時刻に実行するジョブを予約する

○今日の14:50に実行するコマンドを設定する

dateコマンドを実行してシステムの時刻を確認する
$ date
2004年  7月  7日 水曜日 10:23:08 JST

atコマンドで時刻を指定して、実行するコマンドを入力する
$ 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コマンドでマシンの現在時刻を確認すること。

指定時間後に実行するジョブを予約する

○今から20分後にジョブの実行を予約する

atコマンドで今から20分後を指定して、実行するコマンドを入力する
$ 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分後に指定されたコマンドが実行される。

○今から1時間後にジョブの実行を予約する

atコマンドで今から1時間後を指定して、実行するコマンドを入力する
$ 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時間後に指定されたコマンドが実行される。