0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ひとりアドベントカレンダー WSLで学ぶLINUXコマンドAdvent Calendar 2024

Day 12

タスクのスケジューリング(連載第12回/25回)

Last updated at Posted at 2024-12-11

はじめに

Linuxでは、定期的なタスクや一度だけ実行するタスクをスケジューリングすることができます。ここでは、crontabat の基本的な使い方を紹介します。

コマンド説明

crontab - 定期的なタスクのスケジューリング

crontab コマンドは、ユーザーごとに定期的なタスクをスケジューリングするために使用されます。cron は、システム上の定期的なタスクを管理するデーモンです。

主な書式
分(0-59)
時(0-23)
日(1-31)
月(1-12)
曜日(0-7、0と7は日曜日)

# 例
crontab -e
# 毎日午前3時にバックアップを実行:
0 3 * * * /path/to/backup.sh
# 毎週月曜日の午前6時にレポートを生成:
0 6 * * 1 /path/to/report.sh

at - 一度だけ実行するタスクのスケジューリング

at コマンドは、指定した時間に一度だけ実行するタスクをスケジューリングします。at デーモンは、スケジュールされたタスクを適切な時間に実行します。

主なオプション
-f : コマンドを記述したファイルを指定
-m : タスクの完了後にメール通知を送信

# 例
at [オプション] 時間
# 1時間後にスクリプトを実行:
echo "/path/to/script.sh" | at now + 1 hour
# 特定の日時にコマンドを実行:
echo "ls -l /var/log" | at 10:00 AM 12/31/2023

応用例

# 毎月1日にシステムメンテナンスを実行
# この設定は、毎月1日の午前0時に maintenance.sh を実行します。
0 0 1 * * /path/to/maintenance.sh
# 特定のファイルを午後2時30分に一度だけ削除
echo "rm /path/to/file" | at 2:30 PM
# 毎日午前1時にログファイルをクリーンアップ
0 1 * * * /path/to/cleanup.sh
# 1週間後にリブートをスケジュール
echo "sudo reboot" | at now + 1 week

おわりに

これらのコマンドを使うことで、タスクのスケジューリングが効率的に行えます。
次の記事では、シェルスクリプトについて説明します。

一覧

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?