Peki, bu Cronjob nedir ve nasıl kullanılır? Hadi birlikte keşfedelim.
Cronjob Nedir?
Cron ve Crontab Dosyası
Örneğin, Cronjob ile saat başı bir komut çalıştırmak isterseniz, aşağıdaki şekilde bir yapı kullanabilirsiniz:
Cronjob Oluşturma
crontab -e
Bu komut, mevcut kullanıcının crontab dosyasını düzenlemek için açar. İlk kez kullanıyorsanız, bir metin editörü seçmeniz istenebilir. Tercihinizi yaptıktan sonra, dosya içinde yeni bir Cronjob tanımlaması yapabilirsiniz.
Cron Formatı
```
* * * * * komut
│ │ │ │ │
│ │ │ │ └─── Haftanın günü (0 - 7) (0 veya 7 Pazar, 1 Pazartesi, vb.)
│ │ │ └────── Ay (1 - 12)
│ │ └──────── Gün (1 - 31)
│ └────────── Saat (0 - 23)
└──────────── Dakika (0 - 59)
```
Bu formatı anlamak oldukça basittir. Şimdi birkaç örnekle açıklayalım:
1. Her dakika bir komut çalıştırmak:
* * * * * /path/to/komut
2. Her gün saat 3:00'te bir komut çalıştırmak:
0 3 * * * /path/to/komut
3. Her Pazartesi saat 12:00'de bir komut çalıştırmak:
0 12 * * 1 /path/to/komut
4. Her ayın 1. günü saat 6:00'da bir komut çalıştırmak:
0 6 1 * * /path/to/komut
Cronjob Kısıtlamaları
- Hata mesajları: Eğer Cronjob çalıştırıldığında hata olursa, bu hatalar genellikle e-posta ile size gönderilir. Ancak, Cronjob'ı çalıştıran kullanıcı e-posta almadığından emin olmalı ya da hata mesajlarını bir dosyaya yönlendirmelidir.
- Çevresel değişkenler: Cronjob'lar genellikle sınırlı bir ortamda çalıştığı için, bazı çevresel değişkenler (örneğin PATH) varsayılan olarak yüklenmeyebilir. Bu, komutlarınızın doğru çalışmadığı anlamına gelebilir. Bu durumu engellemek için komutları tam yol ile belirtmeniz gerekebilir.
Cronjob’ları Yönetmek
- Cronjob'ı görüntülemek:
crontab -l
- Cronjob'ı silmek:
crontab -r
- Crontab dosyasını düzenlemek:
crontab -e
Pratik Bir Örnek: Log Temizleme
Örneğin, her gün gece yarısı sistem loglarını temizlemek için:
0 0 * * * /usr/bin/find /var/log -name "*.log" -type f -delete
Bu komut, her gün gece yarısı /var/log dizinindeki tüm `.log` uzantılı dosyaları silecektir.
Sonuç
Artık Linux’ta cronjob kullanmanın inceliklerini biliyorsunuz. Cronjob, küçük bir yazılım devresi gibi çalışarak, günlük işlerinizin sisteminizin dengesini bozmadan ve müdahale gerektirmeden yapılmasını sağlar.