atコマンド 【at command】
概要
atコマンド(at command)とは、指定した日時に指定したコマンドを自動的に実行するコマンド。LinuxなどのUNIX系OSとWindowsの両方に同じ名前で存在するが機能や構文が異なる。UNIX系のat
UNIX系のatは指定した操作を将来のある特定に日時に一度だけ実行する。繰り返し実行したい場合はatではなくcronを利用する。
基本的な書式は「at オプション 時刻 日付」で、実行するとプロンプトが表示され操作待ちとなる。実行したいコマンドを入力して(複数行可)「Ctrl+D」で終了を指示すると、操作を記録して指定日時に自動的に実行する。
コマンドは対話的に指定する方法の他に、「-f ファイル名」オプションや「at 日時 < ファイル名」で指定したシェルスクリプトなどを実行するようにしたり、「echo "コマンド" | at 時刻」のようにパイプを用いて渡すこともできる。「-d」オプションで予約を取り消せる。
時刻は「23:55」のようにコロン区切りの記法と、「9am」(午前9時)「now +4hours」(現在から4時間後)「noon」(正午)などの記法が使用できる。日付は省略すると直近に実行される(午後1時に午後7時を指定すると当日、午前9時を指定すると翌日)が、「02/22/2022」のように年月日も指定できる。「月/日/年」の順番なので日本人は注意を要する。
Windowsのat
Windowsのatコマンドはタスクスケジューラに予約を追加できるコマンドで、一度だけ、あるいは繰り返し実行するタスクを予約できる。
基本的な書式は「at \\コンピュータ名 時刻 日付 "コマンド"」で、コマンドはバッチファイルを指定してもよい。時刻は「23:55」のように24時制のコロン区切りで指定する。日付は繰り返す場合は「/every:日付」、次回に一度だけなら「/next:日付」で指定する。日付は曜日の略号(M,T,W,Th,F,S,Su)か日(/next:15なら次の15日)で指定する。
「at 番号」で指定した予約番号のタスクの内容を確認でき、「at 番号 /delete」で当該番号の予約を削除する。「/interactive」オプションで実行時にログインしているユーザーのデスクトップ上で操作を行う(非指定時はバックグラウンド実行)。
atコマンドはWindows NTの時代に追加されたコマンドで、Windows 2000からはGUIのタスクスケジューラが標準となったため、あまり使われなくなった。Windows 10で削除され、以降は似た機能を提供するschtasksコマンドを使用する。