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:
| Alan | Açıklama |
|---|---|
| Zaman ifadesi | 5 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:
| İfade | Anlamı |
|---|---|
*/5 * * * * | her 5 dakikada bir |
0 * * * * | her saat başı |
0 3 * * * | her gece 03.00 |
0 3 * * 1 | her Pazartesi 03.00 |
0 3 1 * * | her ayın 1'i 03.00 |
0 3 * * 0 | her 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.