Linux’ta otomatikleştirilmiş görevler oluşturmak için crontab kullanılır. Sistem yöneticileri ve geliştiriciler, belirli zamanlarda çalıştırılması gereken yedekleme, sistem temizleme, güncelleme ve izleme işlemlerini crontab ile planlayabilirler.
Bu yazıda, crontab’in temel kullanımını, zaman formatlarını ve pratik örnekleri inceleyeceğim.
1. Crontab Nedir ve Neden Kullanılır?
Crontab (Cron Table), Linux sistemlerinde zamanlanmış görevleri yönetmek için kullanılan bir sistem aracıdır. Cron, belirli zaman dilimlerinde komutları veya scriptleri otomatik olarak çalıştırır.
Crontab Kullanım Alanları
✅ Yedekleme işlemlerini otomatikleştirmek
✅ Log dosyalarını temizlemek
✅ Veri senkronizasyonu yapmak
✅ Sistem güncellemelerini planlamak
✅ Otomatik raporlar oluşturmak
2. Crontab Komutları
Crontab görevlerini yönetmek için aşağıdaki komutları kullanabilirsiniz:
Komut | Açıklama |
---|---|
crontab -e |
Crontab dosyasını düzenler |
crontab -l |
Mevcut cron görevlerini listeler |
crontab -r |
Tüm cron görevlerini siler |
crontab -u kullanıcı |
Belirli bir kullanıcının crontab’ini yönetir |
3. Crontab Zaman Formatı
Crontab zamanlaması 5 zaman bileşeninden oluşur:
* * * * * komut
| | | | |
| | | | +---- Haftanın günü (0-7, Pazar = 0 veya 7)
| | | +------- Ay (1-12)
| | +--------- Gün (1-31)
| +----------- Saat (0-23)
+------------- Dakika (0-59)
Örnek Zaman Tanımlamaları
Zamanlama | Açıklama |
---|---|
0 2 * * * |
Her gün saat 02:00’de çalıştır |
30 18 * * 1-5 |
Haftaiçi her gün 18:30’da çalıştır |
0 */6 * * * |
Her 6 saatte bir çalıştır |
0 0 1 * * |
Her ayın 1’inde gece 12:00’de çalıştır |
*/10 * * * * |
Her 10 dakikada bir çalıştır |
4. Crontab ile Örnek Kullanımlar
1️⃣ Her Gece Yedekleme Yapma
📌 Belirli bir klasörü her gece 02:00’de yedekleyin:
0 2 * * * tar -czf /backup/home_$(date +\%F).tar.gz /home/kullanici/
✅ Bu komut, /home/kullanici/ dizinini her gece 02:00’de yedekler.
2️⃣ Haftalık Log Temizleme
📌 Her Pazar günü saat 03:00’te /var/log dizinindeki eski logları silin:
0 3 * * 0 find /var/log -name "*.log" -mtime +7 -exec rm -f {} \;
✅ 7 günden eski log dosyaları silinir.
3️⃣ Belirli Bir Saatte Script Çalıştırma
📌 Her gün saat 08:00’de özel bir scripti çalıştırın:
0 8 * * * /home/kullanici/script.sh
✅ Bu komut, belirtilen scripti her gün sabah 08:00’de çalıştırır.
4️⃣ 5 Dakikada Bir Web Sitesi Durumunu Kontrol Etme
📌 Belirli bir web sitesinin durumunu 5 dakikada bir kontrol edin:
*/5 * * * * curl -Is https://example.com | head -n 1 >> /var/log/site_durum.log
✅ Bu komut, siteye ping atarak durumunu kontrol eder ve log dosyasına kaydeder.
5. Crontab Loglarını İzleme ve Hata Tespiti
Çalışan cron görevlerinin sonuçlarını görmek için şu komutu kullanabilirsiniz:
tail -f /var/log/syslog | grep CRON
✅ Bu komut, cron ile ilgili log kayıtlarını gerçek zamanlı olarak görüntüler.
Crontab’in çalışıp çalışmadığını kontrol etmek için:
crontab -l
Cron servisinin aktif olup olmadığını kontrol etmek için:
sudo systemctl status cron
Eğer cron çalışmıyorsa başlatın:
sudo systemctl start cron
6. Özetle;
Crontab kullanırken dikkat edilmesi gerekenler:
✔ Crontab görevlerini belirli kullanıcı izinleriyle çalıştırın.
✔ Gereksiz root yetkisi vermeyin.
✔ Komut sonuna >/dev/null 2>&1
ekleyerek gereksiz e-posta bildirimlerini önleyin.
✔ Güvenlik nedeniyle cron dosyalarını /etc/cron.d/
yerine belirli kullanıcı seviyesinde oluşturun.
✔ Cron görevlerinin loglarını düzenli olarak kontrol edin.
Yorum gönder