LinuxでカスタムCronジョブを作成する
LinuxでカスタムCronジョブを作成する
定期的なタスクの自動化は、堅牢なシステム管理やウェブ開発のワークフローにおいて不可欠です。 Cronジョブは、Unix系オペレーティングシステムにおける強力な時間ベースのジョブスケジューラであり、スクリプトやコマンドを自動的にスケジュールされた間隔で実行することを可能にします。
Cronジョブとは何ですか?
Cronジョブは、システムのcrontab(cronテーブル)に定義されたスケジュールされたタスクで、指定された時間または間隔でコマンドやスクリプトを実行します。Cronは、以下の理由から広く使用されています:
軽量
高度にカスタマイズ可能
ほとんどのLinuxディストリビューションに組み込まれている
一般的な使用例
毎日または毎週のデータベースバックアップ
PHP/Pythonスクリプトの実行
ログローテーションと一時ファイルのクリーンアップ
スケジュールされたメールの送信
データキャッシュの更新やファイルの同期
ステップ1:Crontabにアクセスする
ユーザーのcrontabを編集するには(rootアクセスなし):
ステップ2:Cron構文の内訳
各Cronジョブは次のフォーマットを使用します:
例:毎日午前2時にスクリプトを実行する
ステップ3:カスタムスクリプトを作成する
カスタムPythonスクリプトを実行したいとしましょう。まず、ファイルを作成します:
サンプルスクリプト:
#!/usr/bin/env python3
import os
import datetime
log_dir = "/var/log/myapp"
threshold = 7 # days
now = datetime.datetime.now()
for filename in os.listdir(log_dir):
filepath = os.path.join(log_dir, filename)
if os.path.isfile(filepath):
file_age = now - datetime.datetime.fromtimestamp(os.path.getmtime(filepath))
if file_age.days > threshold:
os.remove(filepath)
スクリプトを実行可能にします:
ステップ4:Cronジョブを追加する
crontabを編集して、次を追加します:
これ:
毎日午前1時にスクリプトを実行します
出力を/var/log/cleanup.logに記録します
使用例
✅ 10分ごとに実行
✅ 月曜日の午前3時のみ実行
Cronジョブを無効にするまたは削除する
行を#でコメントアウトすることで、一時的に無効にします。
すべてのジョブを削除するには:
カスタムCronジョブは、自動化、メンテナンス、信頼性のための強力なツールです。個人のVPSを管理している場合でも、バックエンドスクリプトをデプロイしている場合でも、プロダクションワークロードを実行している場合でも、cronをマスターすることで、タスクがいつ、どのように実行されるかを簡単に制御できます。


