【Linux】指定時刻に一度だけスクリプトを実行する:at

Linux

どーも!marusukeです!

指定した時刻に一度だけコマンドやスクリプトを実行するコマンドatについてです!

at コマンドでできること

at [時刻] [オプション]

at コマンドは、指定した時刻に一度だけコマンドやスクリプトを実行するためのコマンドです
cron が定期実行向けなのに対し、at は単発のスケジュール実行に適しています
ジョブのスケジュールには atd(at デーモン)が必要であり、サービスが起動していることを確認する必要があります

at コマンドの使用例

10分後にスクリプトを実行

echo "echo 'Hello, World!'" | at now + 10 minutes

10分後に echo 'Hello, World!' が実行されます。

特定の時刻にスクリプトを実行

echo "/home/user/script.sh" | at 14:30

当日の14時30分に /home/user/script.sh を実行します。

翌日の指定時刻にスクリプトを実行

echo "/home/user/script.sh" | at 08:00 tomorrow

翌日の午前8時にスクリプトを実行します。

スケジュールされたジョブの一覧を確認

at -l
# または以下のatqコマンドも同じようにジョブ一覧を表示させることができます
atq

ジョブの一覧が表示され、各ジョブの番号と実行予定時刻が確認できます

スケジュールされたジョブを削除

at -d 3
# または以下のatrmコマンドも同じようにジョブを削除できます
atrm 3

ジョブID 3 のジョブを削除します

at コマンドのオプション

オプション説明
-lスケジュールされたジョブの一覧を表示(atq と同じ)
-d指定したジョブを削除(atrm と同じ)
-f ファイル指定したファイルの内容をジョブとして登録
-vジョブの詳細情報を表示

at の時刻指定の書き方

指定方法説明
HH:MM当日の指定時刻
HH:MM YYYY-MM-DD指定した日付・時刻
noon正午(12:00)
midnight午前0時(00:00)
tomorrow翌日の同じ時刻
now + X minutes現在からX分後
now + X hours現在からX時間後
now + X days現在からX日後

at コマンドは、単発のスケジュール実行に便利です

以上です!

ここまで読んでいただきありがとうございました!

コメント

タイトルとURLをコピーしました