at
(アット)は、Unix系オペレーティングシステムのコマンドであり、任意のコマンドを任意の指定した時間に1回実行するようスケジュールする。
より正確に言えば、一連のコマンド行を標準入力から読み込み、後日実行される "at-job" としてそれらをまとめる。at-jobは現在の環境を継承するので、ワーキングディレクトリや環境変数をスケジュール設定時と同じにして実行される。
cron
は、これとは異なり、繰り返し実行する場合に使われる(一時間おきとか、毎週火曜日とか、毎年1月1日など)。cron
と同様、多くのUNIXシステムでat
コマンドのスーパーユーザー以外の使用を制限している[要出典]。
at
はスケジュールされた一連のジョブを実行したときにユーザーに電子メールを送信することができ、ジョブキューを複数使ったり、標準入力以外のファイルからジョブのリストを読み込んだりできる。例えば、C言語のプログラムを午前11:45にコンパイルするコマンドを実行し、結果(標準出力と標準エラー出力)をユーザーIDに対してメールで通知するには、以下のようにする。
echo "cc -o foo foo.c" | at 1145
at
がスケジュールしたジョブの実行のため、atd
というデーモンが定期的にジョブリストをチェックし、実行すべき時刻がきたジョブを起動する。
at
の代わりにbatch
コマンドを使うと、ロードアベレージがある値より低い場合のみ、スケジュールされたジョブを実行するようになる(高負荷の場合は実行しない)。
Windows NT / 2000 / XPにはcron
に類似したat
コマンドがあるが、タスクスケジューラの方が有名である。