atコマンドについて詳しくまとめました 【Linuxコマンド集】

  • このエントリーをはてなブックマークに追加
  • Pocket

atは時間を指定しコマンドやプログラムを実行するコマンドだ。

同じ時間指定しプログラムを実行するコマンドはcronコマンドがある。cronコマンドは繰り返し実行予約ができるが、atコマンドは一度きりの実行という違いがある。

atコマンドの基本

コマンドの基本動作

使い方は、次のとおりだ。

$ at 日時

2020年4月5日15:45に指定したプログラムを実行する場合は、次のコマンドだ。

$ at 15:45 05042020

atコマンド

すると、何を実行するか問い合わせがある。

ここで実行するコマンドやプログラムを登録する。今回はx1.txtというファイルをtouchコマンドで作成するコマンドを登録してみる。

> touch x1.txt

atコマンド

登録が終了したら、Ctrl+Dのショートカットキーを押し、設定を完了する。

atコマンド

2020年4月5日15:45にx1.txtというファイルをtouchコマンドで作成する動作をジョブ番号70番として登録した。

日付の形式は、2桁の分、半角コロン、2桁の時、半角空白、4桁の西暦、2桁の月、2桁の日のデータで登録するほか、「15:45 05042020」のように年月日を半角ピリオドで区切る書式でも可能なほか、次のような書式も可能だ。

  • 「23:55」:次に来る23:55
  • 「05042020」:2020年4月5日の設定を確定した時刻
  • 「now + 1 min」:現在から1分後
  • 「now +1 hour」:現在から1時間後
  • 「tomorrow」:翌日の設定を確定した時刻
  • 「today + 3 day」:3日後の設定を確定した時刻
  • 「00:00 today + 2 day」:2日後の午前0時
  • 「23:55 05042020 +2 day」:2020年4月7日の23:55

atコマンドのオプションたち

オプションの一覧

後から詳細をご紹介するが、まずは一覧で見てみよう。

オプション -f

予約するジョブのファイルを指定する

オプション -q

小文字アルファベット1文字のキュー番号を割り振りする

オプション -t

日付の形式を別の書式で入力する

オプション -m

出力がない場合でもメールする

オプション -l

予約しているジョブをリストする

オプション -d

予約しているジョブを削除する

オプション -b

システムに負荷をかけないようにジョブを実行する

オプション -v

ジョブの実行時間も詳細に表示する

オプション -c

予約したジョブの詳細を表示する

-fオプション:予約するジョブのファイルを指定する

予約するジョブのファイルを指定する書式は次のとおりだ。

$ at 日時 -f ファイル名

2020年4月5日15:45にシェルプログラムc1.shを実行する場合は、次のコマンドだ。

$ at 15:45 05042020 -f c1.sh

atコマンド

2020年4月5日15:45に指定したプログラムを実行する設定をジョブ番号71番として登録した。

実際には単純に1コマンドごと登録する使い方よりも、ある程度のコマンドをシェルプログラム化し-fオプションを使って登録することのほうが多いだろう。

-qオプション:小文字アルファベット1文字のキュー番号を割り振りする

小文字アルファベット1文字のキュー番号を割り振りする書式は次のとおりだ。

$ at -q キュー番号 日時

小文字アルファベット「c」のキュー番号を割り振りし2020年4月5日15:45に指定したコマンドを実行する場合は、次のコマンドだ。

$ at -q c 15:45 05042020

atコマンド

小文字アルファベット「c」のキュー番号を割り振りし2020年4月5日15:45に指定したコマンドを実行する設定をジョブ番号72番として登録した。

キュー番号はa~zまでの1文字を割り振ることができ、重複も可能だ。

キュー番号で予約した動作をグループで管理することができる。

-qオプションがない場合は、キュー番号は「a」となる。

-tオプション:日付の形式を別の書式で入力する

オプションなしでの日付の形式は、日、月、年という順番で入力するので認識しにくい。そこで、西暦4桁、月2桁、日2桁、時2桁、分2桁、(間に空白はいらない)という書式で入力する書式は次のとおりだ。

$ at -t 日時形式

西暦4桁、月2桁、日2桁、時2桁、分2桁の書式で入力し2020年4月5日15:45に指定したコマンドを実行する場合は、次のコマンドだ。

$ at -t 202005011545

atコマンド

西暦4桁、月2桁、日2桁、時2桁、分2桁の書式で入力し2020年4月5日15:45に指定したコマンドを実行する設定をジョブ番号73番として登録した。

-mオプション:出力がない場合でもメールする

atコマンドは設定したユーザー宛に結果をメールする。オプションなしでは出力がない場合、メールはしない。-mオプションを設定すれば結果の出力がない場合でもメールする。

書式は次のとおりだ。

$ at -m 日時

2020年4月5日15:45に指定したコマンドを実行し、出力がない場合でもメールする場合は、次のコマンドだ。

$ at -m 15:45 05042020

atコマンド

2020年4月5日15:45に指定したコマンドを実行し、出力がない場合でもメールする設定をジョブ番号74番として登録した。

 -lオプション:予約しているジョブをリストする

予約しているジョブをリストする書式は次のとおりだ。

$ at -l

atコマンド

ジョブ番号、実行日時、キュー番号、設定したユーザーの順で一覧を表示した。

-qオプションを使えば、キュー番号で絞り込んで表示することができる。

$ at -l -q キュー番号

キュー番号cのみ絞り込んで表示するには次のコマンドだ。

$ at -l -q c

atコマンド

キュー番号cのみの一覧を表示した。

実行が終了した過去のコマンドはリストから自動で削除される。

atコマンドの-lオプションはatqコマンドと同じ動作をする。

-dオプション:予約しているジョブを削除する

予約しているジョブを削除する書式は次のとおりだ。

$ at -d ジョブ番号

ジョブ番号73の予約を削除する場合は、次のコマンドだ。

$ at -d 73

atコマンド

ジョブ番号34の予約を削除した。

atコマンドの-dオプションはatrmコマンドと同じ動作をする。

-bオプション:システムに負荷をかけないようにジョブを実行する

時間を指定する自動実行プログラムは時にシステムに負荷をかけるときがある。システムに負荷をかけないようにジョブを実行する書式は次のとおりだ。

$ at -b 日時

2020年4月5日15:45にシステムに負荷をかけないように指定したコマンドを実行する場合は、次のコマンドだ。

$ at -b 15:45 05042020

atコマンドの-bオプションはbatchコマンドと同じ動作をする。

-vオプション:ジョブの実行時間も詳細に表示する

ジョブの実行時間も詳細に表示する書式は次のとおりだ。

$ at -v 日時

2020年4月5日15:45に指定したコマンドを実行するようにジョブの実行時間も詳細に表示し設定する場合は、次のコマンドだ。

$ at -v 15:45 05042020

atコマンド

2020年4月5日15:45に指定したコマンドを実行するようにジョブ番号75番として登録した。atコマンド入力直後の行にジョブの実行時間も詳細に表示している。

-cオプション:予約したジョブの詳細を表示する

予約したジョブの詳細を表示する書式は次のとおりだ。

$ at -c ジョブ番号

ジョブ番号74の詳細を表示するには、次のコマンドだ。

$ at -c 74

atコマンド

ジョブ番号74の詳細を表示した。

at関連コマンド

最後にatコマンドに関連して、基本的な時間指定しコマンドを実行するコマンドも紹介しておく

atqコマンド

予約しているジョブをリストする。

atrmコマンド

予約しているジョブを削除する。

batchコマンド

システムに負荷をかけないようにジョブを実行する。

cronコマンド

定期的にジョブを実行する。

まとめ

atコマンドで別のコマンドを実行予約する場合は、ファイルを指定しないで設定すればとても簡単に設定できるが、コマンド名まですべて入力して1行で設定することもできる。

実行するのがシェルプログラムの場合は、簡易的な設定はできないので、-fオプションを使って指定しよう。

日付の入力間違いには最新の注意をしたい。登録後は-lオプション、またはatqコマンドできちんと登録されたか確認しよう。

また、atコマンドは、atq、atrmコマンドと同時に使うことになる。セットで覚えるようにしよう。

  • このエントリーをはてなブックマークに追加
  • Pocket

このページの続きや関連ページは下記から一覧で確認できる。

短期間でエンジニアになる方法

・「まったくの初心者だけどエンジニアになりたい!」

・「プログラマーとして転職をしたい!」

という方はリナックスアカデミーの資料を見てみてください。短期間で未経験からエンジニアになることができるスクールとして15年間選ばれ続けてきた理由やノウハウが載った資料です。

エンジニアの入り口に立つために必要な勉強技術の最新動向本当に使えるIT資格学習に役立つ国からの奨励金などの情報が詰まっています。

無料で2,3日中にお手元にお届けします。


資料を見てみる

SNSでもご購読できます。

コメント

コメントを残す

*

新入社員エンジニアへの配布用!
自走するエンジニアの心得 小冊子

エンジニア新入社員への教育用小冊子を期間限定配布中です

無料ダウンロードはこちらから ご自身の学習に役立てたい方はこちら