Ana içeriğe geç

Cron Job

Türkçe karşılığı
zamanlanmış görev
Okunuşu
kron cob

Günlük kullanımda çoğunlukla İngilizcesi tercih edilir.

Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/cron-job

Kısaca

Cron job, beş alanlı bir cron ifadesiyle tanımlanan ve her gece 02.00 gibi tekrarlayan bir zamanlamayla otomatik çalışan bir komut veya betiktir.

Cron job nedir?

Cron job, bir kişi ya da bir istek tarafından başlatılmak yerine belirli bir zamanlamaya göre çalışan görevdir. Adı, Linux ve macOS gibi Unix benzeri sistemlerde 1970'lerden beri var olan ve her dakika zamanlanmış bir işin vakti gelip gelmediğini kontrol eden bir arka plan servisi olan cron'dan gelir. Her kullanıcının işleri, cron tablosunun kısaltması olan crontab adlı bir dosyada listelenir ve bu dosya crontab -e ile düzenlenir.

Bir crontab'daki her satır bir zamanlama ve ardından çalıştırılacak komuttan oluşur. Zamanlama, beş alanlı bir cron ifadesidir: dakika, saat, ayın günü, ay ve haftanın günü; burada * her değer anlamına gelir. Örneğin 0 2 * * * her gün 02.00, */15 * * * * ise her 15 dakika demektir. Aynı söz dizimi klasik cron'un çok ötesinde, Kubernetes CronJob'larında, CI/CD hatlarında ve bulut ile serverless zamanlayıcılarda da kullanılır.

Cron job, çaldığında işi sizin yerinize de yapan bir çalar saat gibidir. Tipik kullanımlar arasında gece veritabanı yedekleri, günlük rapor e-postaları, süresi dolmuş oturumları ve geçici dosyaları temizleme, TLS sertifikalarını yenileme ve diğer sistemlerden veri senkronize etme bulunur.

Cron job'lar sıklıkla bir mesaj kuyruğundan gelen arka plan işleriyle karıştırılır: cron job zamanla tetiklenir, kuyruktaki iş ise bir kullanıcının dosya yüklemesi gibi bir olayla tetiklenir. Cron job'ların yaygın tuzakları da vardır. Aksi yapılandırılmadıkça sunucunun saat diliminde çalışırlar, günlüğe kaydedip izlemediğiniz sürece hataları fark edilmez ve aynı işi birkaç sunucuda zamanlamak işin birden fazla kez çalışmasına yol açabilir; bu yüzden işler idempotent olmalı ya da bir kilitle korunmalıdır.

Önemli noktalar

  • Cron job, bir komutu zamana dayalı bir zamanlamayla otomatik çalıştırır.
  • Zamanlamalar beş alandan oluşur: dakika, saat, ayın günü, ay ve haftanın günü.
  • 0 2 * * * her gün 02.00 demektir; */15 * * * * her 15 dakika demektir.
  • Cron söz dizimi Kubernetes, CI/CD araçları ve bulut zamanlayıcıları tarafından da kullanılır.
  • İşleri loglayıp izleyin, saat dilimlerine dikkat edin ve işleri iki kez çalışmaya karşı güvenli hale getirin.

Örnek

Bir crontab'da iş zamanlamakbash
# Edit the current user's crontab
crontab -e

# Format: minute hour day-of-month month day-of-week command
# Back up the database every day at 2:00 a.m.
0 2 * * * /usr/local/bin/backup-db.sh >> /var/log/backup.log 2>&1

# Delete temporary files older than an hour, every 15 minutes
*/15 * * * * find /tmp/myapp -type f -mmin +60 -delete

# Send a weekly report every Monday at 9:00 a.m.
0 9 * * 1 /usr/local/bin/send-report.sh

# List the jobs currently scheduled
crontab -l

Sık sorulan sorular

Cron'da * * * * * ne anlama gelir?

Beş yıldız, her günün her saatinin her dakikası demektir. Alanlar dakika, saat, ayın günü, ay ve haftanın günüdür; * ise o alan için herhangi bir değer anlamına gelir.

Cron ile crontab arasındaki fark nedir?

Cron, zamanlanmış işleri çalıştıran arka plan servisidir; crontab ise bu işleri ve zamanlamalarını listeleyen dosyadır. crontab komutu bu dosyayı düzenlemek ve görüntülemek için kullanılır.

Bir cron job'u her 5 dakikada bir nasıl çalıştırırım?

Adım söz dizimini kullanın: */5 * * * * ve ardından komutunuz. Dakika alanındaki */5, 0. dakikadan başlayarak her beşinci dakika demektir.

İlgili sayfalar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar