0Pricing
DevOps Bootcamp · Ders

Cron ile Görev Zamanlama

Belirli aralıklarla veya zamanlarda betik ve komutları otomatik olarak çalıştırmak için 'cron' yardımcı programını kullanmayı öğrenin.

Cron ile Görev Zamanlama, CoddyKit'te ücretsiz bir DevOps Bootcamp dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, DevOps Bootcamp öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

Görevleri Cron ile Otomatikleştirme

Otomasyon dünyasına hoş geldiniz! Bu derste, Linux'ta komutları veya betikleri belirli zamanlarda otomatik olarak çalıştırmanızı sağlayan güçlü bir yardımcı program olan cron hakkında bilgi edineceksiniz.

Hiçbir şey yapmanıza gerek kalmadan günlük yedeklemeler veya saatlik sistem denetimleri ayarladığınızı düşünün; cron'un görevi tam olarak budur!

Kişisel Crontab Dosyanız

Linux sistemindeki her kullanıcının kendine ait bir crontab (cron tablosu) dosyası vardır. Zamanlanmış tüm görevlerinizi burada saklarsınız.

Kişisel crontab dosyanızı düzenlemek için crontab -e komutunu kullanırsınız. Bu komut dosyayı varsayılan metin düzenleyicinizde açar ve yeni görevler eklemenize hazır hâle getirir.

Crontab Girdisi: Zaman Alanları

Bir crontab girdisi altı bölümden oluşur. İlk beş bölüm komutunuzun ne zaman çalışacağını tanımlar ve aralarında boşluk bulunur:

  • Dakika: 0-59
  • Saat: 0-23 (0, gece yarısıdır)
  • Ayın Günü: 1-31
  • Ay: 1-12 (veya Jan-Dec)
  • Haftanın Günü: 0-7 (0 veya 7 pazar, 1 pazartesidir)

Crontab Girdisi: Komut

Bir crontab girdisinin altıncı ve son bölümü, çalıştırmak istediğiniz komut veya betiktir.

Burada komutlar ve betikler için mutlak yollar kullanmanız çok önemlidir (örneğin yalnızca python yerine /usr/bin/python). Cron görevleri en az sayıda ayarın bulunduğu bir ortamda çalışır; bu nedenle alıştığınız PATH kullanılamayabilir.

Özel Crontab Karakterleri

Zamanlamalarınızı esnek hâle getirmek için cron özel karakterler kullanır:

  • * (yıldız): Olası tüm değerlerle eşleşir (örneğin her dakika veya her saat).
  • , (virgül): Bir değer listesini ayırır (örneğin dakika 1 ve 15 için 1,15).
  • - (tire): Bir değer aralığı tanımlar (örneğin 9'dan 17'ye kadar olan saatler için 9-17).
  • / (eğik çizgi): Adım değerlerini belirtir (örneğin her 10 dakikada bir için */10).

Önceden Tanımlanmış Zamanlama Kısayolları

Yaygın zamanlama ihtiyaçları için cron, ilk beş zaman alanının yerine geçen kullanışlı kısayollar sunar:

  • @reboot: Sistem yeniden başlatıldıktan sonra bir kez çalışır.
  • @yearly (veya @annually): Yılda bir kez çalışır (0 0 1 1 *).
  • @monthly: Ayda bir kez çalışır (0 0 1 * *).
  • @weekly: Haftada bir kez çalışır (0 0 * * 0).
  • @daily (veya @midnight): Günde bir kez çalışır (0 0 * * *).
  • @hourly: Saatte bir kez çalışır (0 * * * *).

Uygulama: Basit Bir Betik Zamanlama

Bir selamlama iletisini kaydeden basit bir betik oluşturalım ve bunu her gün saat 10:00'da çalışacak şekilde zamanlayalım.

  1. Betiği oluşturun (örneğin ~/greet.sh):
  2. Çalıştırılabilir hâle getirin: chmod +x ~/greet.sh
  3. Crontab'a ekleyin (crontab -e):
    0 10 * * * /home/user/greet.sh
    Bu girdi şu anlama gelir: Dakika 0'da, saat 10'da (10 AM), ayın her gününde, her ayda ve haftanın her gününde /home/user/greet.sh dosyasını çalıştır.
#!/bin/bash
# This script logs a greeting to a temporary file.
echo "Hello from Cron! The time is $(date)" >> /tmp/cron_greeting.log

Cron Görevlerinizi Yönetme

Cron görevlerini ekledikten sonra bunları yönetmeniz gerekir:

  • Mevcut crontab girdilerinizi listelemek için: crontab -l
  • Tüm crontab girdilerinizi kaldırmak için (geri alma seçeneği olmadığından çok dikkatli kullanın!): crontab -r

Girdilerinizin doğru olduğundan emin olmak için değişiklik yaptıktan sonra crontab'ınızı her zaman crontab -l ile gözden geçirin.

Cron'un Ortam Değişkenleri

Cron görevlerinin en az sayıda ayarın bulunduğu bir ortamda çalıştığını unutmayın. Bu nedenle görevler, etkileşimli kabuğunuzdaki PATH gibi ortam değişkenlerinin aynısına çoğu zaman sahip olmaz.

Betiğiniz belirli komutlara dayanıyorsa bunların mutlak yollarını kullanın veya gerekli ortam değişkenlerini crontab dosyanızın en üstünde doğrudan tanımlayın; örneğin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin.

Crontab Söz Dizimi Yarışması

/home/user/daily_report.sh adlı bir betiği her hafta içi (pazartesiden cumaya) saat 9:15 AM'de çalışacak şekilde zamanlamanız gerekiyor. Hangi crontab girdisi doğrudur?

Özet: Cron Zamanlamasında Ustalaşma

Harika iş çıkardınız! Artık görevleri zamanlamak için cron kullanımının temel ilkelerinde ustalaştınız.

  • crontab dosyasını ve dosyayı crontab -e ile nasıl düzenleyeceğinizi öğrendiniz.
  • Zaman alanları ve komut da dâhil olmak üzere bir cron girdisinin altı alanını anlıyorsunuz.
  • Esnek zamanlama için özel karakterleri ve önceden tanımlanmış kısayolları keşfettiniz.
  • Görevlerinizi crontab -l ve crontab -r ile nasıl yöneteceğinizi biliyorsunuz.
  • Cron bağlamında mutlak yolların ve ortam değişkenlerinin önemini de öğrendiniz.

Şimdi öğrendiklerinizi uygulayarak otomasyon oluşturun!

Sıkça Sorulan Sorular

“Cron ile Görev Zamanlama” dersi ücretsiz mi?

Evet — “Cron ile Görev Zamanlama” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve DevOps Bootcamp kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. DevOps Bootcamp kursu toplamda 4 dersten oluşur.

“Cron ile Görev Zamanlama” dersinde ne öğreneceğim?

Belirli aralıklarla veya zamanlarda betik ve komutları otomatik olarak çalıştırmak için 'cron' yardımcı programını kullanmayı öğrenin. DevOps Bootcamp ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

DevOps Bootcamp öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te DevOps Bootcamp, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Cron ile Görev Zamanlama” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu DevOps Bootcamp dersinde kod yazıp çalıştırabilir miyim?

Evet. Her DevOps Bootcamp dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Cron ile Görev Zamanlama
  2. Sistem Yönetimini Otomatikleştirme
  3. İleri Düzey Betik Projesi
  4. Otomatik Günlük Döndürme ve Temizleme
← DevOps Bootcamp Sayfasına Dön