Crontab Kullanımı – Zaman yönlendirmeli işler

Contrab Nedir?

Contab , Unix sistemlerin coğunda gelen bir zamanlama programıdır. Yaptığı iş isteğidiniz betiğin ya da programın istediğiniz zamanlarda calışmasını sağlamaktır.

Crontab ile çalışmak:

Aşağıdaki komutları hangi kullanıci ile calıştırırsanız o kullanıcının crontab ında işlem yapmış olursunuz.

crontab -l crontab içeriğini listeler.

crontab -e : crontab i e parametresi ile çalıştırırsanız öntanımlı metin editörünüzde crontab konfigurasyonu açılacaktır.

crontab -r : afsin kullanıcısının crontab içeriğini siler.

Crontab ` da zamanlama:

Crontab da zamanlama 5 basamakta yapılmaktadır:

1. Dakika ( Saatteki dakikalar 0-59)
2. Saat ( 24 Saat formatında 0-23 )
3. Gun ( Ayın günleri 1-31 )
4. Ay ( Yılın ayları 1-12 )
5. Haftanın günü ( Haftanın günleri 0-6 , 0. gün pazar günüdür )

Crontab da her satır ayrı bir girdiyi ifade eder ve satır formatı şu şekildedir:

* * * * * /calisacak/programin/yeri/programim.calistir

Yukarıdaki satırda yer alan yıldızlar sırasıyla 1-2-3-4-5 de belirttigim zaman içeriklerini taşır.

Örneğin; /root/scripts/backup.sh betiğimizi her gece saat 02:30 da çalıstıracak bir crontab içeriği oluşturalım:

30 2 * * * /root/scripts/backup.sh

Bu satir betiğimizi her gece 02:30 da çalıştıracaktır.

Peki crontab ımızı daha fonksiyonel kullanamaz mıyız ?

15,45 0,12 10 3,6,9,12 * /calisacak/programin/yeri/digerprogramim.calistir

Şimdi de yukaridaki crontab satırını inceleyelim.

- 15,45 : Dakika olarak 15 ve 45 gecelerde
- 0,12 : Saat olarak gece 00 ve öğlen 12 de
- 10 : Ayın 10 unda
- 3,6,9,12 : 3. , 6. , 9. ve 12. aylarda

Tüm bunları birleştirirsek ; Her yılın mart, haziran, eylül ve aralık aylarının 10. gününde 00:15, 00:45, 12:15 ve 12:45 saatlerinde istediğimiz program çalışır.

Peki belirlediğimiz her periyot için çalışmasını istediğimiz programlar için nasıl bir crontab satırı yazmalıyız?

*/10 * * * * calisacak/programin/yeri/digerprogramim.calistir

Yukarıdaki satır ile her saat, her gün, her ay, her yil 10 dakikada bir istedigimiz programımız çalışacaktır.

Bu cevap yeterince yardımcı oldu mu?

 Bu dökümanı yazdır