İçeriğe geç
parazade

Cron Job Nedir?

Yayın: · Son güncelleme:

Cron Job Nedir? Kısaca

Cron job, Unix ve Linux tabanlı sistemlerde cron hizmeti tarafından belirli zamanlarda otomatik çalıştırılan komut ya da betiktir. Zamanlama, dakika, saat, gün, ay ve haftanın günü alanlarından oluşan bir ifadeyle tanımlanır.

Cron Job nedir?
İçindekiler
  1. Cron job nedir?
  2. Cron ifadesi nasıl yazılır?
  3. Sık yapılan hatalar

Cron job nedir?

Cron job, Linux ve macOS gibi Unix tabanlı sistemlerde zamanlanmış görev tanımlamanın klasik yoludur. Arka planda sürekli çalışan cron hizmeti, her dakika görev listesini kontrol eder ve zamanı gelen komutu çalıştırır. Görev listesi crontab adı verilen bir dosyada tutulur.

Yedekleme, log dosyalarını temizleme, rapor e-postası gönderme ve web sitelerinin periyodik işleri cron ile yapılır. Birçok hosting panelinde de cron job ekleme ekranı bulunur.

Cron ifadesi nasıl yazılır?

Bir cron satırı beş zaman alanı ve ardından çalışacak komuttan oluşur:

Alan Değer aralığı
Dakika 0-59
Saat 0-23
Ayın günü 1-31
Ay 1-12
Haftanın günü 0-7 (0 ve 7 pazar)

Yıldız (*) "her" anlamına gelir. Örneğin 0 3 * * * her gün saat 03.00'ü, */15 * * * * her 15 dakikayı, 0 9 * * 1 her pazartesi 09.00'u ifade eder.

Varsayımsal bir örnek: bir blog sahibi, veritabanı yedeğini her gece almak için crontab'a 0 2 * * * /home/site/yedek.sh satırını ekliyor. Betik her gece 02.00'de çalışıyor ve yedek dosyasını tarihli bir adla kaydediyor.

Sık yapılan hatalar

Cron, sunucunun saat dilimini kullanır. Sunucu UTC ile çalışıyorsa Türkiye saatiyle 03.00'te çalışmasını istediğiniz görevi 00.00'a ayarlamanız gerekir.

Cron, komutları oturum açtığınız terminaldeki ortam değişkenleri olmadan çalıştırır. Bu yüzden komutlarda tam dosya yolu kullanın. Çıktıyı bir log dosyasına yönlendirmek, görevin çalışıp çalışmadığını sonradan görmenizi sağlar. İfadeyi yazdıktan sonra çevrim içi cron açıklayıcı araçlarla anlamını kontrol etmek hatayı önler.

Sıkça Sorulan Sorular

Crontab nasıl düzenlenir?

Linux terminalinde crontab -e komutuyla kendi kullanıcınızın görev listesini düzenleyebilir, crontab -l ile mevcut görevleri listeleyebilirsiniz. Hosting panellerinde aynı işlem genellikle bir form ekranından yapılır.

Cron job her saniye çalıştırılabilir mi?

Standart cron'un en küçük birimi dakikadır. Daha sık çalışması gereken işler için sürekli çalışan bir servis ya da farklı bir zamanlayıcı kullanmak daha uygundur.

İlgili terimler

Zamanlanmış Görev(Scheduled Task)Zamanlanmış görev (scheduled task), belirli bir saatte ya da düzenli aralıklarla otomatik çalışacak şekilde ayarlanan program, betik veya komuttur. Yedekleme, rapor üretme ve temizlik işleri için sık kullanılır.LinuxLinux, Linus Torvalds'ın 1991'de geliştirmeye başladığı açık kaynaklı bir işletim sistemi çekirdeğidir. Gündelik dilde bu çekirdek üzerine kurulu Ubuntu, Debian gibi işletim sistemlerinin tamamı için kullanılır.BashBash (Bourne Again Shell), Linux ve Unix tabanlı sistemlerde yaygın kullanılan komut yorumlayıcısı ve betik dilidir. Kullanıcının komutlarını çalıştırır ve tekrarlayan işleri otomatikleştiren betikler yazmayı sağlar.Betik(Script)Betik (script), genellikle derlenmeden doğrudan çalıştırılan ve belirli bir işi otomatikleştirmek için yazılan kısa programdır. Bash, Python ve JavaScript gibi dillerle yazılır; yedekleme, dosya düzenleme ve veri işleme gibi işlerde kullanılır.LogLog, bir yazılımın ya da sistemin çalışırken gerçekleşen olayları tarih ve saatiyle kaydettiği kayıttır. Hataları bulmak, kullanıcı hareketlerini izlemek ve güvenlik olaylarını incelemek için kullanılır.Hosting(Web Hosting)Hosting (web barındırma), bir web sitesinin dosyalarının ve veritabanının internete sürekli açık bir sunucuda tutulmasını sağlayan hizmettir. Siteniz ziyaretçilere bu sunucudan sunulur.Sunucu(Server)Sunucu (server), ağ üzerinden başka bilgisayarlara ve cihazlara veri, dosya, web sayfası ya da uygulama hizmeti sağlayan bilgisayar veya yazılımdır. İstek gönderen tarafa istemci denir.