Crontab, Unix tabanlı işletim sistemlerinde zamanlanmış görevlerin (cron job) tanımlandığı bir dosyadır. Kullanıcıların belli bir zaman diliminde belirli komutları çalıştırmalarını sağlar. Her bir cron işinin bir zamanlama ifadesi ve bir komut içermesi gerekir. Crontab dosyasının temel yapısı beş zamanlama alanı ve ardından çalıştırılacak komutlardan oluşur.
Crontab Yapısı
Bir crontab satırı aşağıdaki formata sahiptir:
“`
komut
“`
Bu alanlar sırasıyla dakikayı, saati, günü, ayı ve haftanın gününü temsil eder. Her bir alan için kullanılabilecek değerler şunlardır:
1. Dakika: 0-59
2. Saat: 0-23
3. Gün: 1-31
4. Ay: 1-12
5. Haftanın Günü: 0-7 (0 ve 7 Pazar’ı temsil eder)
Bu alanlar arasında boşluk veya sekme ile ayrım yapılmalıdır. Her bir alanın belirli bir özelliği vardır. Örneğin, belirli bir değer, aralık (1-5), belirli bir değerin katları (/5 veya 0,5), ve virgüller ile ayrılmış birden fazla değer içerebilir.
Sık Kullanılan Crontab Örnekleri
1. Günlük Yedekleme
Her gün sabah 3’te bir yedekleme yapma işlemi için crontab girdisi şu şekilde yapılandırılabilir:
“`
0 3 /usr/bin/backup.sh
“`
Bu örnekte, yedekleme script’i her gün saat 3:00’te çalışacaktır.
2. Haftalık Sistem Güncellemesi
Her Pazar saat 2’de sistem güncellemeleri için bir görev oluşturulabilir:
“`
0 2 0 /usr/bin/apt-get update
“`
Bu durumda, her hafta Pazar günü saat 2:00’de sistem güncellemeleri kontrol edilecektir.
3. Aylık Raporlama
Her ayın ilk günü saat 5’te belirli bir raporun oluşturulması için:
“`
0 5 1 /usr/bin/generate_report.sh
“`
Bu satır, her ayın birinci günü saat 5:00’te rapor oluşturacak bir komut çalıştırır.
4. Belirli Günler İçin Görev
Her Cuma ve Cumartesi akşamı saat 6’da bir görev planlanabilir. Bunun için:
“`
0 18 5,6 /usr/bin/some_command
“`
Bu durumda belirtilen komut, haftanın 5. günü (Cuma) ve 6. günü (Cumartesi) saat 18:00’de çalıştırılacaktır.
5. Her 15 Dakikada Bir Çalışma
Her 15 dakikada bir belirli bir komutun çalıştırılması için crontab girdisi:
“`
/15 /usr/bin/check_status.sh
“`
Bu ifade, her 15 dakikada bir belirtilen script’in çalışmasını sağlar.
6. Her 5 Dakikada Bir İşlem
Her 5 dakikada bir belirli bir komutun çalıştırılması için gerekli crontab:
“`
/5 /usr/bin/monitor.sh
“`
Bu ifade, belirtilen script’in her 5 dakikada bir çalıştırılmasını sağlar.
Crontab’da Yıldız () Kullanımı
Yıldız işareti, bir alanda her değerin seçilmiş olduğunu gösterir. Örneğin:
“`
/usr/bin/every_minute_task
“`
Bu ifade, her dakika belirtilen komutun çalıştırılacağını belirtir.
Crontab Dosyasını Düzenleme
Crontab dosyasını düzenlemek için şu komut kullanılabilir:
“`bash
crontab -e
“`
Bu komut, kullanıcının mevcut crontab dosyasını düzenlemesine olanak tanır. Düzenleme işlemi tamamlandıktan sonra dosya otomatik olarak kaydedilir.
Cron Logları
Cron işleriyle ilgili loglar genellikle `/var/log/syslog` veya `/var/log/cron` dosyalarında tutulur. Hataların ve görevlerin takibi için bu log dosyaları incelenebilir. Örnek olarak, belirli bir cron işinin loglarını görmek için:
“`bash
grep CRON /var/log/syslog
“`
Crontab ve Çevresel Değişkenler
Cron işlerinizde çevresel değişkenlere dikkat edilmesi gerekir. Crontab içinde yalnızca belirli bir ortamda çalışan komutlar erişilebilir. Gerekirse, ilgili çevresel değişkenlerin ayarlanması için:
“`
MAILTO=”user@example.com”
“`
gibi ifadeler kullanılabilir. Bu, komut çalıştırıldığında herhangi bir hata oluştuğunda bildirim almayı sağlar.
Crontab Uygulamaları
Crontab, özellikle sistem yöneticileri için önemlidir. Günlük yedekleme, sistem güncellemeleri, e-posta gönderimi, raporlamalar ve otomatik bakım işlemleri gibi birçok alanda kullanılabilir. Sunucuların verimliliğini artırmak ve insan hatalarını azaltmak için vazgeçilmez bir araçtır. Çeşitli zamanlama türleri arasında esneklik sağlanması, sistem üzerinde yüksek bir kontrol yetkisi sunar.
Belirlenen zamanlama bilgileri ve komutlar doğrultusunda, crontab ile gerçekleştirilen görevlerin sürekliliği, içeriklerin düzenli bir şekilde işlenmesini ve sistemin sağlıklı bir biçimde çalışmasını kolaylaştırır.