Crontab Nedir?
Crontab, Unix ve Unix-benzeri işletim sistemlerinde zamanlayıcı bir yazılımdır. Belirli zaman dilimlerinde otomatik olarak komutlar veya betikler çalıştırmak amacıyla kullanılır. Crontab, kullanıcıların belirli zaman dilimlerinde görevleri belirlemesine ve otomatikleştirmesine olanak tanır. Her kullanıcının kendi crontab dosyası vardır ve sistem yöneticileri, sistem genelinde görevler tanımlamak için root kullanıcısını kullanabilir.
Crontab Dosyasının Yapısı
Crontab dosyası, her satırda bir komut veya betik belirtir. Bir crontab satırı aşağıdaki yapıya sahiptir:
“`
komut veya betik
“`
Bu formattaki her bir yıldız, zamanlanacak olan görevin hangi zaman diliminde çalıştırılacağını belirtir. Bu yıldızların sırasıyla anlamları:
1. Dakika (0 – 59)
2. Saat (0 – 23)
3. Ayın Günü (1 – 31)
4. Ay (1 – 12)
5. Haftanın Günü (0 – 7), burada 0 ve 7 Pazar’ı temsil eder.
Crontab Dosyasını Düzenlemek
Crontab dosyasını düzenlemek için terminalde aşağıdaki komut kullanılır:
“`
crontab -e
“`
Bu komut, kullanıcının mevcut crontab dosyasını açar ve düzenleme yapmasına imkân tanır. İlk kez çalıştırıldığında, kullanım için bir metin editörü seçilmesi istenebilir. Genellikle nano veya vi tercih edilir.
Betik Çalıştırma
Bir betik dosyasını crontab ile çalıştırmak için, betiğin tam yolunu belirtmek gerekir. Örneğin, bir `example.sh` betiğinin `/home/kullanici/` dizininde bulunduğu varsayıldığında, ve bu betiğin her gün saat 2:30’da çalıştırılması isteniyorsa, crontab dosyasına aşağıdaki satır eklenmelidir:
“`
30 2 /bin/bash /home/kullanici/example.sh
“`
Burada `/bin/bash` ifadesi, betiğin çalıştırılacağı kabuğu belirtir. Betiğin çalıştırılması için gerekli tüm izinlerin ayarlandığından emin olunmalıdır. Betik dosyasının çalıştırılabilir olmasını sağlamak amacıyla şu komut kullanılabilir:
“`
chmod +x /home/kullanici/example.sh
“`
Crontab ile Çıktı Yönetimi
Çalıştırılan komutların çıktıları, varsayılan olarak, o anki kullanıcıya e-posta olarak gönderilir. Ancak, çıktıların başka bir dosyaya yönlendirilmesi mümkündür. Örneğin, çıktıların `/home/kullanici/example.log` dosyasına kaydedilmesi için aşağıdaki gibi bir satır eklenebilir:
“`
30 2 /bin/bash /home/kullanici/example.sh >> /home/kullanici/example.log 2>&1
“`
Bunda `>>` operatörü, çıktının belirtilen dosyaya eklenmesini sağlar. `2>&1` ise hata çıktısının da aynı dosyaya yönlendirilmesini sağlar.
Zamanlama Örnekleri
Crontab ile çeşitli zamanlama ayarları yapılabilir. Örnekler şu şekildedir:
– Her gün saat 3’te bir komut çalıştırmak için:
“`
0 3 /path/to/script.sh
“`
– Her hafta Pazartesi saat 5’te çalıştırmak için:
“`
0 5 1 /path/to/script.sh
“`
– Ayın her 15’inde saat 8:00’de çalıştırmak için:
“`
0 8 15 /path/to/script.sh
“`
– Her dakika çalıştırmak için:
“`
/path/to/script.sh
“`
Crontab’ı Kontrol Etme
Crontab ayarlarının doğru bir şekilde yapıldığından emin olmak için, mevcut crontab’ı görüntülemek için şu komut kullanılabilir:
“`
crontab -l
“`
Bu komut, kullanıcının mevcut crontab ayarlarını listeleyecek ve hangi görevlerin zamanlandığını gösterecektir.
Crontab ile İlgili Dikkat Edilmesi Gerekenler
Crontab kullanırken bazı önemli noktalara dikkat edilmesi gerekir:
– Betiklerin tam yolu kullanılmalıdır. Aksi takdirde, komutun nerede bulunacağı konusunda belirsizlik oluşabilir.
– Ortam değişkenleri crontab içinde tanımlı değildir. Betikler çalıştırıldığında, sistemin standart ortam değişkenlerine erişimi olmayabilir. Özellikle PATH değişkeninin ayarlanması gerektiğinde, betik içinde bu değişkenin tanımlanması önemlidir.
– Günlükleme ve hata ayıklama amacıyla, betik içindeki tüm çıktılar uygun bir dosyaya yönlendirilmelidir.
Bu bilgiler ışığında, crontab ve betik çalıştırma süreci hakkında genel bir bakış sağlanmaktadır. Crontab, otomasyon ve sistem yönetimi açısından oldukça faydalı bir araçtır ve doğru bir şekilde kullanıldığında birçok tekrarlayan işi otomatik hale getirmeye olanak tanır.


