at コマンドを利用して指定した時刻でコマンド実行する

2020-09-08

atコマンドとは?

Linuxにおいてのatコマンドは、指定した時刻で指定したコマンド(ジョブ)を実行するコマンドです。同じように指定した時刻にコマンド(ジョブ)を実行できるcronもありますが、cronは繰り返し実行されますが、atコマンドは一度だけ実行されます。

私は、夜間や深夜に時間がかかるような特定のコマンドを実行したいときなどに利用することが多いです。よくあるパターンは深夜帯にWEBコンテンツをtarで固めとくとかに実行しています

at コマンドの書式

atコマンドの書式は以下のような書式です

書式:at (オプション) 時刻

at コマンドのオプション

atコマンドの主なオプションは以下のオプションがあります。

-d (job) 指定したジョブ(job)を削除します
-f (file) 実行するジョブを指定したファイルから読み込みます
-l (job) 指定したジョブ(job)を表示します。ジョブ(job)を指定しない場合は、実行待ちのジョブ一覧を表示します。
-m  ジョブ完了時にユーザーにメールを送信します

atコマンドの使用例

  • 時刻(14:00)を指定にして、指定したコマンドを実行します。

コマンドを実行するとプロンプトが「at」に変わります。実行するコマンドを入力してから、「Ctrl + D」で終了します。

$ at 14:00
at> ls -l /var/tmp
at> <EOT>
# [Ctrl]+[D]キーを押してジョブが決定され、「at>」を抜けます
job 1 at Thu Feb 16 14:00:00 2017
  • ジョブ一覧を表示します

ジョブNoを指定していないので、ジョブ一覧が表示されます

$ at -l
3	Thu Feb 16 19:20:00 2017 a testuser
2	Thu Feb 16 15:10:00 2017 a testuser
1	Thu Feb 16 14:00:00 2017 a testuser
  • 20:10に、指定したファイルに記述したコマンドを実行する
$ at -f /home/testuser/attest.sh 20:10
# 20:10に/home/testuser/attest.shの記載されているコマンドが実行されます
job 4 at Thu Feb 16 20:10:00 2017
  • 指定したジョブを削除する
#ジョブNo.4 を削除します
$ at -d 4 

#ジョブ一覧で、ジョブNo.4 が削除されているか確認します
$ at -l 
5	Thu Feb 16 22:00:00 2017 a testuser
  • 指定した日付(2017/02/20)・時間(9時)で指定したコマンドを実行します。
$ at 9:00 2017-02-20
at> sh /home/testuser/test.sh
job 7 at Mon Feb 20 09:00:00 2017

 

LinuxCentOS 5,CentOS 6,CentOS 7

Posted by admin