Linux’te Özel Cron Görevi Oluşturma

Rutin görevleri otomatikleştirmek, herhangi bir sağlam sistem yönetimi veya web geliştirme iş akışında esastır. Cron görevleri, Unix benzeri işletim sistemlerinde güçlü, zaman tabanlı bir görev zamanlayıcısı sağlar ve belirlenen aralıklarla otomatik olarak komutları veya betikleri çalıştırmanıza olanak tanır.

Cron Görevi Nedir?

Bir cron görevi, sistemin crontab (cron tablosu) dosyasında tanımlanan, belirli zamanlarda veya aralıklarda komutları veya betikleri çalıştıran planlı bir görevdir. Cron, şu nedenlerle yaygın olarak kullanılır:

  • Hafif

  • Son derece özelleştirilebilir

  • Çoğu Linux dağıtımında yerleşik olarak bulunur

Yaygın Kullanım Senaryoları

  • Günlük veya haftalık veritabanı yedeklemeleri

  • Çalıştırma PHP/Python betikleri

  • Log döngüsü ve geçici dosyaların temizlenmesi

  • Planlı e-postaların gönderilmesi

  • Veri önbelleklerini güncelleme veya dosyaları senkronize etme

Adım 1: Crontab’a Erişim

Kullanıcınızın crontab’ını düzenlemek için (root erişimi olmadan):

crontab -e
Root crontab’ını düzenlemek için (sudo gerektirir):
sudo crontab -e

Adım 2: Cron Söz Dizimi Analizi

Her cron görevi aşağıdaki formatı kullanır:

* * * * * command_to_execute
│ │ │ │ │
│ │ │ │ └──── Day of the week (0-7, Sunday = 0 or 7)
│ │ │ └────── Month (1–12)
│ │ └──────── Day of the month (1–31)
│ └────────── Hour (0–23)
└──────────── Minute (0–59)

Örnek: Her gün sabah 2’de bir betik çalıştırma

0 2 * * * /home/user/scripts/backup.sh

Adım 3: Özel Bir Betik Oluşturma

Diyelim ki özel bir Python betiği çalıştırmak istiyorsunuz. Öncelikle dosyayı oluşturun:

nano /home/user/scripts/cleanup.py

Örnek betik:

#!/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)

Betiği çalıştırılabilir hale getirin:

chmod +x /home/user/scripts/cleanup.py

Adım 4: Cron Görevini Ekle

Crontab’ınızı düzenleyin ve ekleyin:

0 1 * * * /home/user/scripts/cleanup.py >> /var/log/cleanup.log 2>&1

Bu:

  • Betiği her gün sabah 1:00’de çalıştırır

  • Çıktıyı /var/log/cleanup.log dosyasına kaydeder

Örnek Kullanım Senaryoları

✅ Her 10 dakikada bir çalıştır

*/10 * * * * /home/user/check_status.sh

✅ Sadece Pazartesi günleri sabah 3’te çalıştır

0 3 * * 1 /home/user/scripts/weekly_report.sh

Bir Cron Görevini Devre Dışı Bırakma veya Kaldırma

Bir satırı geçici olarak devre dışı bırakmak için başına # koyarak yorumlayın.

Tüm görevleri kaldırmak için:

crontab -r

Özel cron görevleri, otomasyon, bakım ve güvenilirlik için güçlü bir araçtır. İster kişisel bir VPS yönetiyor olun, ister arka uç betikleri dağıtıyor olun, ister üretim iş yükleri çalıştırıyor olun, cron’u ustaca kullanmak, görevlerin ne zaman ve nasıl çalıştığını kontrol etmenizi sağlar — zahmetsizce.