開発運用

Cronタスク自動化の例

Cronは、Unix系オペレーティングシステムでタスクを定期的に実行するためのツールです。cronを使用することで、システムのメンテナンスやバックアップ、通知などの自動化を実現できます。Cronの設定は、特に定期的な作業が必要な場合に便利であり、指定された時間に自動的にコマンドを実行することが可能です。

以下は、Cronを使用してさまざまなタスクを定期的に実行するための10の例です。これらの例を理解し、実際の業務やシステム管理に活用することができます。

1. 毎日午前3時にシステムバックアップを実行する

システムのバックアップを毎日自動的に取得する設定です。以下のコマンドをCronタブに追加します。

bash
0 3 * * * /usr/bin/backup

この例では、毎日午前3時に「/usr/bin/backup」というコマンドを実行します。

2. 毎週月曜日の午前4時にサーバーログのクリーンアップを実行する

サーバーログを毎週月曜日に自動的にクリーンアップする設定です。

bash
0 4 * * 1 /usr/bin/cleanup_logs

この設定は、毎週月曜日の午前4時に「/usr/bin/cleanup_logs」というコマンドを実行します。

3. 毎月1日にシステムの状態をレポートとして送信する

月初めにシステムの状態を管理者にメールで送信するタスクです。

perl
0 0 1 * * /usr/bin/system_report | mail -s "Monthly System Report" [email protected]

この例では、毎月1日の午前0時にシステムレポートを生成し、その結果を管理者にメールで送信します。

4. 10分ごとに特定のディレクトリ内のファイルをバックアップする

指定されたディレクトリ内のファイルを10分ごとにバックアップする例です。

swift
*/10 * * * * /usr/bin/backup_files /home/user/data

この設定では、10分ごとに「/home/user/data」のバックアップを実行します。

5. 毎日午後6時にログインしたユーザーのリストを保存する

ログインしているユーザーのリストを毎日午後6時に保存するタスクです。

bash
0 18 * * * who > /home/user/logged_in_users.txt

この例では、毎日午後6時に「who」コマンドを実行して、ログインしているユーザーのリストを「logged_in_users.txt」として保存します。

6. 毎月1日の午前5時にディスク使用状況を監視する

ディスクの使用状況を毎月1日に監視するタスクの例です。

bash
0 5 1 * * df -h > /home/user/disk_usage_report.txt

この設定は、毎月1日の午前5時にディスクの使用状況を「df -h」コマンドでチェックし、その結果を「disk_usage_report.txt」として保存します。

7. 毎週水曜日の午前9時にシステムのアップデートを実行する

システムのアップデートを毎週水曜日に自動的に実行する例です。

sql
0 9 * * 3 sudo apt update && sudo apt upgrade -y

この設定は、毎週水曜日の午前9時にシステムのアップデートを実行します。

8. 毎日午前2時にウェブサイトのバックアップを取る

ウェブサイトのデータを毎日自動的にバックアップする設定です。

swift
0 2 * * * /usr/bin/web_backup /var/www/html

この例では、毎日午前2時に「/var/www/html」のバックアップを取ります。

9. 毎日午後11時にディレクトリ内の古いファイルを削除する

指定されたディレクトリ内の古いファイルを毎晩削除する例です。

bash
0 23 * * * find /home/user/tmp -type f -mtime +30 -exec rm {} \;

この設定は、毎日午後11時に「/home/user/tmp」ディレクトリ内の30日以上経過したファイルを削除します。

10. 毎時0分にサーバーのメモリ使用状況を記録する

サーバーのメモリ使用状況を毎時0分に記録するタスクです。

sql
0 * * * * free -h > /home/user/memory_usage.txt

この例では、毎時0分に「free -h」コマンドを実行し、メモリ使用状況を「memory_usage.txt」として保存します。

Cron設定の構文

Cronタブで使用される構文は以下の通りです:

分 時 日 月 曜日 コマンド

それぞれの項目は次のように設定します:

  • 分(0〜59)
  • 時(0〜23)
  • 日(1〜31)
  • 月(1〜12)
  • 曜日(0〜7、0と7は日曜日)

例えば、「0 2 * * *」は「毎日午前2時に」といった意味になります。

まとめ

Cronはシンプルで強力なタスクスケジューラです。これを使えば、システム管理やバックアップ、ログの管理などを自動化でき、運用効率を大幅に向上させることができます。上記の例を参考に、自分の環境に合わせた定期的なタスク実行を設定することで、作業を効率化できるでしょう。

Back to top button