Linux’ta Crontab ile Zamanlanmış Görevler Nasıl Kullanılır?

Linux’ta Crontab ile Zamanlanmış Görevler Nasıl Kullanılır?

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.