Cron Nedir?
Örneğin, her gün saat 2'de sunucunuzun günlük yedeğini almak ya da haftalık bir veritabanı temizliği yapmak gibi işlemleri Cron'a emanet edebilirsiniz. Böylece, sürekli bu işleri hatırlamak zorunda kalmazsınız.
Cronjob Oluşturma
# 1. Crontab Dosyasını Açmak
crontab -e
Bu komut, sizi crontab dosyasına yönlendirir. Eğer bu dosya yoksa, sistem otomatik olarak yeni bir tane oluşturur. Şimdi dosya içindeki zamanlayıcıyı ekleyebiliriz.
# 2. Cronjob Formatını Anlamak
* * * * * /path/to/command
| | | | |
| | | | +--- Gün (1 - 31)
| | | +----- Ay (1 - 12)
| | +------- Haftanın günü (0 - 6) (Pazar = 0)
| +--------- Saat (0 - 23)
+----------- Dakika (0 - 59)
- Dakika: Hangi dakikada çalıştırılacak. (0-59 arası)
- Saat: Hangi saatte çalıştırılacak. (0-23 arası)
- Gün: Ayın hangi günü çalıştırılacak. (1-31 arası)
- Ay: Hangi ayda çalışacak. (1-12 arası)
- Hafta Günü: Hangi günlerde çalışacak. (0-6, 0 Pazar)
Şimdi basit bir örnekle açıklayalım. Diyelim ki her gün saat 3’te bir script çalıştırmak istiyorsunuz. Cronjob’unuz şöyle olacak:
0 3 * * * /home/kullanici/backup.sh
Bu komut, her gün saat 03:00'te `/home/kullanici/backup.sh` dosyasını çalıştıracaktır.
# 3. Cronjob Komutları
- `@reboot`: Sistemi her başlattığınızda çalışacak bir komut tanımlayabilirsiniz. Örneğin, bir servis başlatmak için kullanabilirsiniz:
@reboot /usr/local/bin/my_service_start.sh
- `@hourly`: Her saat başında çalışacak komutlar ekleyebilirsiniz.
@hourly /home/kullanici/cleanup.sh
Cronjob Özellikleri
- Çoklu Zaman Aralıkları: Cronjob’ları belirli bir aralıkla çalıştırmak mümkündür. Örneğin, her 5 dakikada bir:
*/5 * * * * /home/kullanici/check_status.sh
- Birden Fazla Komut Çalıştırma: Aynı Cronjob içinde birden fazla komut çalıştırmak isterseniz, komutları `&&` operatörüyle ayırabilirsiniz:
0 4 * * * /home/kullanici/script1.sh && /home/kullanici/script2.sh
Cronjob'ları Yönetmek
- Cronlog: `/var/log/cron` dosyasını kontrol edebilirsiniz.
- Cronjob’ı Silme: `crontab -r` komutuyla tüm cronjob’ları silebilir veya belirli birini silmek için `crontab -e` komutunu kullanarak düzenleyebilirsiniz.
Cronjob İpuçları
- Çıktı ve Hata Günlüğü: Cronjob’ınızın çıktısını bir dosyaya yönlendirmek için `>>` operatörünü kullanabilirsiniz. Örneğin:
0 3 * * * /home/kullanici/backup.sh >> /home/kullanici/backup.log 2>&1
Bu komut, çıktı ve hataları `/home/kullanici/backup.log` dosyasına yazdıracaktır.
Sonuç
Cronjob'lar, Linux dünyasında zaman yönetiminin en güçlü araçlarından biridir. Onları doğru kullanarak sisteminizin verimliliğini artırabilir ve sürekli çalışmasını sağlayabilirsiniz. Artık Cronjob’lar hakkında her şeyi biliyorsunuz, peki ya şimdi?