Crontab, bizim belirttiğimiz zamanlarda, yine bizim belirttiğimiz komutları çalıştırmak için kullanılan görevler bütünüdür. Hemen yazımın devamında sizlerle örnek zamanlanmış görev kodları paylaşıyor olacağım.
İlk olarak cronjob ayarlarına bir giriş yapalım ve alanları tanıyalım. Cronjob satırımız 5 adet zaman ayarı bölümü ve komut bölümünden oluşur. Örnek olarak:
1 |
* * * * * çalışmasını istedigimiz komut |
1. *: Dakika (0 – 59)
2. *: Saat (0-23)
3. *: Ayın kaçıncı günü (1-31)
4. *: Ay (1-12)
5. *: Haftanın kaçıncı günü (0:7: Pazar, 1: Pazartesi, 2: Salı, 3: Çarşamba, 4: Perşembe, 5: Cuma, 6: Cumartesi)
Çalışmasını istediğimiz komut: Çalıştırılacak komut
Açıklamalarımızı bu şekilde vermiş olduk. Şimdi dilerseniz soru-cevap şeklinde bir işleyişe geçelim. Örnekler üzerinden devam edelim.
Her 5 dakikada bir çalışacak bir Cron Job yazımı
1 |
*/5 * * * * wget -O /dev/null http://fatihsoysal.com/cronTest.php >/dev/null |
Cron komut satırımızı yukarıdaki gibi oluşturduğumuzda bu şu anlama gelir: Her 5dk da bir, cronTest.php dosyasını çalıştır. Eğer 5 dakikada değil de 30 dk da bir çalışmasını istiyorsak */5 yerine */30 yazmalıyız.
Her 2 saate bir çalışacak bir Cron Job yazımı
1 |
* */2 * * * wget -O /dev/null http://fatihsoysal.com/cronTest.php >/dev/null |
Cron komut satırımızı yukarıdaki gibi oluşturduğumuzda bu şu anlama gelir: Her 2 saatte bir, cronTest.php dosyasını çalıştır. Eğer 2 saat değil de 6 saatte bir çalışmasını istiyorsak */2 yerine */6 yazmalıyız.
Her 3 günde bir çalışacak bir Cron Job yazımı
1 |
* * */3 * * wget -O /dev/null http://fatihsoysal.com/cronTest.php >/dev/null |
Cron komut satırımızı yukarıdaki gibi oluşturduğumuzda bu şu anlama gelir: Her 3 günde bir, cronTest.php dosyasını çalıştır. Eğer 3 gün değil de 7 günde bir çalışmasını istiyorsak */3 yerine */7 yazmalıyız.
Her 2 ayda bir çalışacak bir Cron Job yazımı
1 |
* * * */2 * wget -O /dev/null http://fatihsoysal.com/cronTest.php >/dev/null |
Cron komut satırımızı yukarıdaki gibi oluşturduğumuzda bu şu anlama gelir: Her 2 ayda bir, cronTest.php dosyasını çalıştır. Eğer 2 ay değil de ayda bir çalışmasını istiyorsak */2 yerine */1 yazmalıyız.
Bonus: Sadece belirli saat aralıklarında çalışacak Cron Job yazımı
1 |
* 6-9/2 * * * wget -O /dev/null http://fatihsoysal.com/cronTest.php >/dev/null |
Yukarıdaki örnekte ise saat 6 ile 9 arasında her 2 saatte çalışacak bir komut tanımlıyoruz.