CodeBlanks Logo Icon CodeBlanks

CronJob nedir?

CronJob ile zamanlanmış görevleri öğrenirsin.

CronJob nedir?

CronJob, belirli bir takvime göre Job oluşturur: gece yedeği, saatlik rapor, haftalık temizlik. Takvim Unix cron biçimindedir: dakika saat ay-günü ay hafta-günü:

"0 3 * * *"      her gün 03:00
"*/15 * * * *"   her 15 dakikada
"0 9 * * 1"      her pazartesi 09:00
"0 0 1 * *"      her ayın 1'i gece yarısı

Saat dilimi varsayılan olarak kube-controller-manager'ınkidir (genellikle UTC); timeZone: "Europe/Istanbul" ile değiştirilebilir.

CronJob'u yönetmek

CronJob komutla da oluşturulabilir. Bir sonraki çalışmayı beklemeden elle tetiklemek için ondan bir Job üretilir; geçici olarak durdurmak için suspend kullanılır:

kubectl create cronjob temizlik --image=busybox:1.36 --schedule="0 4 * * *" -- sh -c "echo temizlendi"
kubectl create job temizlik-elle --from=cronjob/temizlik
kubectl patch cronjob temizlik -p '{"spec":{"suspend":true}}'
kubectl get cronjobs

Uygulama Zamanlanmış temizlik

Üç komut yaz: busybox:1.36 image'ıyla her gün 04:00'te ("0 4 * * *") echo temizlendi çalıştıran temizlik CronJob'unu oluştur; ondan elle temizlik-elle Job'unu üret; CronJob'ları listele.

Başlangıç kodu

terminal
# buraya yaz

Örnek çözüm

terminal
kubectl create cronjob temizlik --image=busybox:1.36 --schedule="0 4 * * *" -- echo temizlendi
kubectl create job temizlik-elle --from=cronjob/temizlik
kubectl get cronjobs

Beklenen çıktı

cronjob.batch/temizlik created
job.batch/temizlik-elle created
NAME       SCHEDULE    TIMEZONE   SUSPEND   ACTIVE   LAST SCHEDULE   AGE
temizlik   0 4 * * *   <none>     False     0        <none>          5s

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 "30 2 * * 0" takvimi ne zaman çalışır?

  • Her pazar 02:30 Doğru cevap
  • Her gün 02:30
  • Her ayın 30'unda
  • Her 30 dakikada

Açıklama: Hafta günü 0 pazardır.

2 CronJob'dan elle bir Job üret.

Soru
kubectl create job temizlik-elle ____=cronjob/temizlik
Cevap
kubectl create job temizlik-elle --from=cronjob/temizlik

Açıklama: --from=cronjob/ad şablondan Job oluşturur.

3 Takvimleri eşleştir.

Kavram Anlamı
0 3 * * * Her gün 03:00
*/15 * * * * Her 15 dakika
0 9 * * 1 Pazartesi 09:00
0 0 1 * * Ayın 1'i 00:00

İleri seviye bölümündeki tüm dersler