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.
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 )
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
- 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.