Belgeler

Hızlı başlangıç + her bölüm ve her cihaz için işlev açıklamaları (sürekli güncelleniyor)

Zamanlanmış görevler (Cron)

Bu belge, hedef sunucudaki zamanlanmış görevlerin nasıl yönetileceğini açıklar.

Önce şunu bilin: Cron nedir

Cron, Linux ile birlikte gelen "zamanlanmış çalıştırma" aracıdır. Şunları yapabilirsiniz: "her gece 03.00'te veritabanını otomatik yedekle", "saat başı günlükleri temizle", "her Pazartesi bir servisi yeniden başlat" — zamanı gelince otomatik çalışır, kimsenin başında beklemesi gerekmez.

İşlev özeti

Hedef sunucudaki Cron zamanlanmış görevlerini görüntüleme, ekleme, silme.

Uygun senaryolar

  • Veritabanını zamanlı yedekleme, günlükleri temizleme
  • İzleme betiklerini zamanlı çalıştırma
  • Servisleri zamanlı yeniden başlatma, sertifikaları güncelleme

Kullanım

Bir sunucunun "Sistem yönetimi paneli → Zamanlanmış görevler" bölümüne girin; o sunucudaki mevcut tüm Cron görevlerini görürsünüz.

Görev ekleme

Cron ifadesini ve çalıştırılacak komutu doldurun:

AlanAçıklama
Zaman ifadesi5 parçalı, örn. 0 3 * * * (her gece 03.00)
KomutÇalıştırılacak shell komutu

Cron ifadesi biçimi (dakika saat gün ay hafta):

* * * * *  komut
│ │ │ │ │
│ │ │ │ └── haftanın günü (0-7, 0/7=Pazar)
│ │ │ └──── ay (1-12)
│ │ └────── gün (1-31)
│ └──────── saat (0-23)
└────────── dakika (0-59)

Sık kullanılan örnekler:

İfadeAnlamı
*/5 * * * *her 5 dakikada bir
0 * * * *her saat başı
0 3 * * *her gece 03.00
0 3 * * 1her Pazartesi 03.00
0 3 1 * *her ayın 1'i 03.00
0 3 * * 0her Pazar 03.00
30 2 * * *her gece 02.30

Pratik komut örnekleri:

# Her gece 03.00'te veritabanını yedekle (örnek)
0 3 * * * docker exec sshe-mysql mariadb-dump -uroot -p'<password>' dbname > /opt/backup/db-$(date +\%F).sql

# Her 6 saatte bir geçici dosyaları temizle
0 */6 * * * find /tmp -type f -mtime +7 -delete

# Her Pazartesi 04.00'te bir servisi yeniden başlat
0 4 * * 1 systemctl restart my-app

Dikkat edilecekler

1. Cron görevleri hedef sunucunun mevcut kullanıcısı kimliğiyle çalışır; o kullanıcının komutu çalıştırma yetkisi olduğundan emin olun.

2. Komutlarda mutlak yol yazmanız önerilir (Cron ortam değişkenleri azdır, göreli yollar programı bulamayabilir).

3. Komutta % kullanılıyorsa \% olarak kaçış karakteriyle yazılmalıdır (Cron % işaretini özel karakter sayar).

4. Cron görevini sildikten sonra değişiklik hemen geçerli olur.

5. Sistem düzeyindeki Cron'u (/etc/crontab) değiştirmek panel dışında işlem gerektirebilir; panel varsayılan olarak mevcut kullanıcının crontab -l çıktısını yönetir.