コンピューターは自動化に長けていますが、自動化を機能させる方法を誰もが知っているわけではありません。ただし、特定の時間にコンピューターのタスクをスケジュールして、それを忘れることができるのは、本当に贅沢なことです。特定の時間にアップロードまたはダウンロードするファイルがある場合、またはまだ存在していないが特定の時間または監視が必要な設定までに存在することが保証されているファイルのバッチを処理する必要がある場合、または単に必要な場合があります仕事帰りにパンとバターを手に取るためのフレンドリーなリマインダー。
それがat
コマンドはです。
Linux atコマンドとは何ですか?
at
コマンドは、特定の日時に1回限りのジョブをスケジュールできるようにするLinux端末の方法です。ターミナルから簡単に自動化できます。
インストール
Linuxでは、at
コマンドはおそらくすでにインストールされています。 at -V
を使用してインストールされていることを確認できます 指図。バージョンが返される限り、at
があります インストール済み:
$ at -V
at version x.y.z
at
を使用しようとする必要があります コマンドが見つからない場合、最新のLinuxディストリビューションのほとんどは、不足しているat
をインストールすることを提案しています。 あなたのためのパッケージ。
atd
と呼ばれるatデーモンを起動する必要がある場合もあります。 。ほとんどのLinuxシステムでは、systemctlコマンドを使用してサービスを有効にし、今後自動的に開始するように設定します。
$ sudo systemctl enable --now atd
atとインタラクティブにジョブをスケジュールする
at
を使用する場合 コマンドを実行する時間とともに、インタラクティブなat
を開きます。 促す。指定した時間に実行したいコマンドを入力できます。
それが役立つ場合は、このプロセスを、おそらく携帯電話で使用するような予定表アプリと考えることができます。最初に、ある日のイベントを作成してから、何をしたいかを指定します。
たとえば、将来数分間タスクを作成して、自分自身にメモをスケジュールしてみてください。失敗の可能性を減らすために、タスクを単純にします。 at
を終了するには プロンプトが表示されたら、 Ctrl + Dを押します キーボードで。
$ at 11:20 AM
warning: commands will be executed using /bin/sh
at> echo "hello world" > ~/at-test.txt
at> <EOT>
job 3 at Mon Jul 26 11:20:00 2021
ご覧のとおり、at
直感的で自然な時間定義を使用します。 24時間制を知っている必要はなく、時刻をUTCまたは特定のISO形式に変換する必要もありません。通常、正午など、自然に思い浮かぶ表記を使用できます。 、午後1時30分 、 13:37 、など、タスクをいつ実行するかを説明します。
数分待ってから、cat
を実行して、タスクが実行されたことを確認します。 またはtac
作成したファイルに対するコマンド:
$ cat ~/at-test.txt
hello world
atでのジョブのスケジュール
at
でジョブをスケジュールするためにインタラクティブプロンプトを使用する必要はありません 。代わりに、echo
を使用してコマンドをパイプすることができます またはprintf
。この例では、 nowという表記を使用します。 そして今から何分後にタスクを遅らせたいですか:
$ echo "echo 'hello again' >> ~/at-test.txt" | at now +1 minute
1分後、新しいコマンドが実行されたことを確認します。
$ cat ~/at-test.txt
hello world
hello again
その他のLinuxリソース
- Linuxコマンドのチートシート
- 高度なLinuxコマンドのチートシート
- 無料のオンラインコース:RHELの技術概要
- Linuxネットワーキングのチートシート
- SELinuxチートシート
- Linuxの一般的なコマンドのチートシート
- Linuxコンテナとは何ですか?
- 最新のLinux記事
時間表現
at
時間を解釈するとき、コマンドはかなり寛容です。自分にとって最も便利な形式に応じて、多くの形式から選択できます。
-
YYMMDDhhmm
[.ss]
(年、月、日、時、分、およびオプションで秒の省略形) -
CCYYMMDDhhmm
[.ss]
(通年、月、日、時、分、およびオプションで秒) now
midnight
noon
teatime
(午後4時)-
AM
-
PM
時間と日付は絶対値にすることも、プラス記号を追加することもできます( + )現在を基準にしてそれらを作成する 。相対時間を指定するときは、おそらくすでに使用している単語を使用できます:
minutes
hours
days
weeks
months
years
時刻と日付の構文
at
コマンドは、日付から時刻を伝える際に寛容ではありません。時刻が最初に来て、次に日が来る必要がありますが、その日はデフォルトで現在の日になり、将来のある日のタスクをスケジュールするときにのみ必要になります。
これらは、いくつかの有効な式の例です:
$ echo "rsync -av /home/tux me@myserver:/home/tux/" | at 3:30 AM tomorrow
$ echo "/opt/batch.sh ~/Pictures" | at 3:30 AM 08/01/2022
$ echo "echo hello" | at now + 3 days
キューでの表示
at
を採用したら 机の周りにある紙切れにメモを書き留める代わりにタスクをスケジュールしている場合は、まだキューに仕事があるかどうかを確認することをお勧めします。
at
を表示するには キュー、atq
を使用 コマンド:
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
7 Tue Jul 27 00:00:00 2021 a tux
キューからタスクを削除するには、atrm
を使用します コマンドとジョブ番号。たとえば、ジョブ7を削除するには、次のようにします。
$ atrm 7
$ atq
10 Thu Jul 29 12:19:00 2021 a tux
9 Tue Jul 27 03:30:00 2021 a tux
スケジュールされたジョブに実際に何が含まれているかを確認するには、at
を確認する必要があります スプール。 rootユーザーのみがat
を表示できます スプールなので、sudo
を使用する必要があります スプールを表示するか、cat
あらゆる仕事の内容。
Linuxでのスケジュール
at
システムは、1日の後半にジョブを実行することを忘れたり、不在時にコンピューターにジョブを実行させたりすることを回避するための優れた方法です。 cron
とは異なり 、ジョブが今から永久に定期的に実行される必要があるという期待から解放され、その結果、その構文はcron
よりもはるかに単純になります。 構文。
次回、コンピュータに記憶させて管理させたい小さな仕事があるときは、at
を試してください。 コマンド。