公開:

atコマンドとは?意味をわかりやすく簡単に解説

text: XEXEQ編集部


atコマンドとは

atコマンドはUNIX系オペレーティングシステムで一度限りのタスクをスケジュールするためのコマンドです。atコマンドを使用すると、指定した時刻に自動的にコマンドやスクリプトを実行することができます。

atコマンドは一度だけ実行されるタスクのスケジューリングに適しています。定期的に実行するタスクにはcronコマンドが使用されます。atコマンドはシステム管理者やユーザーが特定の時間にタスクを実行したい場合に便利です。

atコマンドを使用するにはコマンドラインでatコマンドを入力し、実行したいコマンドや時刻を指定します。時刻は絶対時刻(例: 2023年5月1日午後3時)や相対時刻(例: 現在から2時間後)で指定できるようになっています。

atコマンドはバックグラウンドで実行されるため、コマンドの実行中もシェルを使用することができます。実行結果はユーザーのメールボックスに送信されるか、指定したファイルに出力されます。

atコマンドを使用するには適切な権限が必要です。多くのシステムではatコマンドの使用はスーパーユーザー(root)に制限されています。一般ユーザーがatコマンドを使用するにはシステム管理者による設定が必要となります。

atコマンドの基本的な使い方

atコマンドの基本的な使い方に関して、以下3つを簡単に解説していきます。

  • atコマンドの書式と時刻の指定方法
  • atコマンドでのコマンドやスクリプトの指定
  • atコマンドの実行結果の確認方法

atコマンドの書式と時刻の指定方法

atコマンドの基本的な書式はat [オプション] 時刻です。時刻は絶対時刻や相対時刻で指定します。絶対時刻はYYYY-MM-DD HH:MMの形式で指定し、相対時刻はnow + 1 hourのように指定します。

また、atコマンドには実行日時を指定するためのオプションがあります。よく使用されるオプションには-t(時刻を指定)、-d(日付を指定)、-m(メールで結果を通知)などがあります。

以下はatコマンドで時刻を指定する例です。

at 2023-05-01 15:00
at now + 2 hours
at -t 202305011500

atコマンドでのコマンドやスクリプトの指定

atコマンドでは実行したいコマンドやスクリプトを指定します。コマンドを直接入力するか、ファイルからコマンドを読み込むことができます。コマンドを直接入力する場合はatコマンドの後にコマンドを入力し、Ctrl+Dで入力を終了します。

ファイルからコマンドを読み込む場合はat -f ファイル名 時刻の形式で指定します。ファイルには実行したいコマンドやスクリプトを記述します。

以下はatコマンドでコマンドを指定する例です。

at 2023-05-01 15:00
echo "Task executed" > /tmp/at_output.txt
Ctrl+D

at -f /path/to/script.sh now + 2 hours

atコマンドの実行結果の確認方法

atコマンドの実行結果はデフォルトではユーザーのメールボックスに送信されます。メールにはコマンドの標準出力と標準エラー出力が含まれます。メールで結果を受け取るにはシステムにメールサーバーが設定されている必要があります。

また、atコマンドの-mオプションを使用すると、メールでの結果通知を無効にできます。この場合、コマンドの出力は指定したファイルに保存されます。

以下はatコマンドの実行結果を確認する例です。

at -m 2023-05-01 15:00 < /path/to/script.sh

at -f /path/to/script.sh -o /path/to/output.txt now + 2 hours

atコマンドのスケジュール管理

atコマンドのスケジュール管理に関して、以下3つを簡単に解説していきます。

  • atqコマンドによるスケジュールされたジョブの一覧表示
  • atrmコマンドによるスケジュールされたジョブの削除
  • atコマンドとcronコマンドの使い分け

atqコマンドによるスケジュールされたジョブの一覧表示

atqコマンドは現在スケジュールされているatジョブの一覧を表示するコマンドです。atqコマンドを実行すると、ジョブID、実行予定時刻、ジョブを投入したユーザー名が表示されます。

以下はatqコマンドの実行例です。

$ atq
1234    2023-05-01 15:00 a user
5678    2023-05-02 09:30 a user

atrmコマンドによるスケジュールされたジョブの削除

atrmコマンドはスケジュールされたatジョブを削除するコマンドです。atrmコマンドに、削除したいジョブのIDを指定して実行します。ジョブIDはatqコマンドで確認できます。

以下はatrmコマンドの実行例です。

$ atrm 1234

atコマンドとcronコマンドの使い分け

atコマンドは一度だけ実行するタスクのスケジューリングに適しています。一方、cronコマンドは定期的に実行するタスクのスケジューリングに使用されます。atコマンドは特定の時間に一度だけ実行したい場合に便利です。

cronコマンドはminutesフィールド、hoursフィールド、daysフィールド、monthsフィールド、daysofweekフィールドを使用して、タスクの実行スケジュールを細かく設定できます。一方、atコマンドは時刻を指定するだけでタスクをスケジュールできるため、よりシンプルです。

タスクの性質や要件に応じて、atコマンドとcronコマンドを適切に使い分けることが重要です。一度だけ実行するタスクにはatコマンドを、定期的に実行するタスクにはcronコマンドを使用するのが一般的でしょう。

atコマンドの応用的な使用方法

atコマンドの応用的な使用方法に関して、以下3つを簡単に解説していきます。

  • atコマンドでの環境変数の設定
  • atコマンドでの標準入力からのコマンド読み込み
  • atコマンドでのエラー処理とログ出力

atコマンドでの環境変数の設定

atコマンドでは環境変数を設定することができます。これにより、スケジュールされたコマンドやスクリプトが特定の環境で実行されるようになります。環境変数はexport 変数名=値の形式で指定します。

以下はatコマンドで環境変数を設定する例です。

at 2023-05-01 15:00 <

atコマンドでの標準入力からのコマンド読み込み

atコマンドでは標準入力からコマンドを読み込むことができます。これにより、コマンドやスクリプトをファイルに保存せずに、直接atコマンドに渡すことができます。標準入力からコマンドを読み込むにはat 時刻 <<EOFの形式を使用します。

以下はatコマンドで標準入力からコマンドを読み込む例です。

at now + 1 hour < /tmp/at_output.txt
ls -l /tmp >> /tmp/at_output.txt
EOF

atコマンドでのエラー処理とログ出力

atコマンドではエラー処理とログ出力を適切に行うことが重要です。コマンドやスクリプトにエラーが発生した場合、エラーメッセージをログファイルに出力したり、メールで通知したりすることができます。また、コマンドの実行結果をログファイルに出力することで、後からタスクの実行状況を確認できます。

以下はatコマンドでエラー処理とログ出力を行う例です。

at 2023-05-01 15:00 <&1 | tee /path/to/log.txt
EOF

at -m -f /path/to/script.sh -o /path/to/log.txt now + 2 hours

※上記コンテンツはAIで確認しておりますが、間違い等ある場合はコメントよりご連絡いただけますと幸いです。

「コンピュータ」に関するコラム一覧「コンピュータ」に関するニュース一覧
ブログに戻る

コメントを残す

コメントは公開前に承認される必要があることにご注意ください。