0Pricing
Linux Server Deployment & SSH Mastery · Ders

Cron ile Zamanlanmış Görevler

Betiklerin ve komutların belirtilen aralıklarla çalışmasını sağlamak için cron işlerini oluşturup yöneterek yinelenen sunucu görevlerini otomatikleştirin.

Cron ile Zamanlanmış Görevler, CoddyKit'te ücretsiz bir Linux Server Deployment & SSH Mastery dersidir. Bu, 4 dersinin 3. 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, Linux Server Deployment & SSH Mastery öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Linux Server Deployment & SSH Mastery kursu toplamda 4 dersten oluşur.

Sunucu Görevlerini Neden Otomatikleştirmelisiniz?

Sunucudaki elle yapılan görevler tekrarlayıcı olabilir ve insan hatasına açıktır. Otomasyon zamandan tasarruf etmenizi sağlar ve görevlerin tutarlı biçimde gerçekleştirilmesini güvence altına alır.

Her gece bir veritabanını yedeklemeniz veya her hafta eski günlük dosyalarını temizlemeniz gerektiğini düşünün. Bunları elle yapmak zahmetlidir ve kolayca unutulabilir.

Zamanlama araçları bu noktada işe yarar! Sunucunuzun görevleri belirli zamanlarda veya aralıklarla otomatik olarak gerçekleştirmesini sağlar ve sizin daha önemli işlere zaman ayırmanıza olanak tanır.

Cron ile Tanışın: Sunucunuzun Zamanlayıcısı

Cron, Linux'ta görevleri zamanlamak için kullanılan temel bir yardımcı programdır. Sunucunuz için kişisel bir asistan gibidir; komutların veya betiklerin önceden belirlenmiş zamanlarda arka planda otomatik olarak çalışmasını sağlar.

Bu zamanlanmış görevlere cron işleri denir. Bir sistemdeki her kullanıcının, crontab adlı özel bir dosyada saklanan kendi cron işleri listesi olabilir.

Crontab'ınızı Düzenleme

Kişisel cron işlerinizi yönetmek için crontab komutunu kullanırsınız.

  • Crontab dosyanızı düzenlemek için şunu yazın: crontab -e
  • Mevcut cron işlerinizi listelemek için şunu yazın: crontab -l
  • Tüm cron işlerinizi kaldırmak için şunu yazın: crontab -r (Dikkatli kullanın!)

crontab -e komutunu çalıştırdığınızda crontab'ınız varsayılan metin düzenleyicide, genellikle nano veya vi içinde açılır.

Crontab Sözdizimi: Zaman Alanları

Crontab'ınızdaki her satır tek bir cron işini temsil eder ve belirli bir biçimi izler. Çalıştırılacak komutun ardından beş zaman alanı bulunur.

Biçim şöyledir:

minute hour day_of_month month day_of_week command
  • Dakika: 0-59
  • Saat: 0-23 (0 gece yarısıdır)
  • Ayın Günü: 1-31
  • Ay: 1-12 (veya Oca-Ara)
  • Haftanın Günü: 0-7 (0 veya 7 Pazar, 1 Pazartesi'dir)

Crontab Sözdizimi: Yıldızlar ve Aralıklar

Her zaman kesin sayılar kullanmanız gerekmez. Cron esneklik sağlayan özel karakterler sunar:

  • * (Yıldız): Bu alan için mümkün olan "her" değerle eşleşir. Örneğin dakika alanındaki *, "her dakika" anlamına gelir.
  • - (Tire): Bir aralık belirtir. Örneğin saat alanındaki 9-17, "9'dan 17'ye kadar olan saatler" anlamına gelir.
  • , (Virgül): Bir değerler listesi belirtir. Örneğin haftanın günleri için Mon,Wed,Fri veya 1,3,5.
  • / (Eğik çizgi): Adım değerlerini belirtir. Örneğin dakika alanındaki */5, "her 5 dakikada bir" anlamına gelir.

Crontab Sözdizimi - Uygulamalı Örnekler

Anlayışınızı pekiştirmek için bazı yaygın örneklere bakalım:

  • * * * * * /path/to/script.sh
    Her dakika çalışır.
  • 0 3 * * * /usr/bin/backup.sh
    Her gün AM 3:00'te çalışır.
  • 0 9-17 * * 1-5 /usr/local/bin/check_service.py
    Pazartesiden cumaya, AM 9 ile PM 5 arasında her saat çalışır.
  • */15 * * * * echo "Hello, CoddyKit!"
    Her 15 dakikada bir çalışır.

/path/to/script.sh ifadesini gerçek komutunuzun veya betiğinizin yolu ile değiştirmeyi unutmayın.

Özel Crontab Dizeleri

Çok yaygın zamanlama gereksinimleri için Cron, beş alanlı sözdiziminden daha kolay okunabilen özel dizeler sunar:

  • @reboot: Başlangıçta bir kez çalışır.
  • @hourly: Her saatin başında saatte bir kez çalışır.
  • @daily: Her gün gece yarısında bir kez çalışır.
  • @weekly: Haftada bir kez, Pazar günü gece yarısında çalışır.
  • @monthly: Ayda bir kez, ayın ilk gününde gece yarısında çalışır.
  • @yearly (veya @annually): Yılda bir kez, 1 Ocak'ta gece yarısında çalışır.

Bunlar basit ve yinelenen görevler için harikadır.

Ortam Değişkenleri ve Yollar

Cron bir işi çalıştırdığında çok sınırlı bir ortam değişkenleri kümesi kullanır. Bu nedenle terminalinizde çalışan komutlar cron içinde başarısız olabilir.

Sorunları önlemek için:

  • Komutlar ve betikler için her zaman mutlak yollar kullanın (örneğin php yerine /usr/bin/php).
  • Crontab dosyanızın içinde doğrudan bir PATH değişkeni tanımlayabilirsiniz; örneğin PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  • Alternatif olarak ortam değişkenlerini doğrudan betiğinizin içinde ayarlayın.

Çıktıyı ve Günlük Kaydını Yönetme

Varsayılan olarak cron, bir cron işinin tüm çıktısını (standart çıktı ve standart hata) crontab'ın sahibi olan kullanıcıya e-postayla göndermeye çalışır. Bir e-posta sisteminiz yapılandırılmamışsa bu çıktı kaybolabilir veya günlük dosyalarını doldurabilir.

Çıktıyı açıkça yönlendirmek en iyi uygulamadır:

  • Tüm çıktıyı atmak için: command > /dev/null 2>&1
  • Çıktıyı bir günlük dosyasının sonuna eklemek için: command >> /var/log/myjob.log 2>&1

2>&1 bölümü, standart hatayı (2) standart çıktıyla (1) aynı konuma yönlendirir.

Sistem Genelinde Cron ve Kullanıcı Crontab'ları

crontab -e ile yönetilen kişisel kullanıcı crontab'larına odaklandık. Bunlar, tek bir kullanıcıya ait görevler için uygundur.

Sistem genelindeki görevler için yöneticiler genellikle şunları kullanır:

  • /etc/crontab: Görevlerin belirli kullanıcılar olarak çalıştırılmasına olanak tanıyan ana sistem crontab'ı.
  • /etc/cron.d/: Genellikle uygulamalar tarafından yüklenen ayrı cron dosyalarının bulunduğu dizin.
  • /etc/cron.hourly/, /etc/cron.daily/ vb.: Betiklerin, sistem cron'u tarafından belirli aralıklarla çalıştırılmak üzere yerleştirildiği dizinler.

Bu sistem düzeyindeki seçenekler, sunucu genelindeki otomasyon üzerinde daha fazla denetim sağlar.

Cron Bilginizi Sınayın

Crontab sözdiziminin temellerini öğrendiniz. Bakalım bu cron işini çözümleyebilecek misiniz.

Özet: Cron ile Otomatikleştirin

Cron ile görevleri zamanlamanın temel unsurlarında artık ustalaştınız!

Ele aldıklarımız:

  • Cron nedir: Zamana dayalı bir iş zamanlayıcıdır.
  • Crontab: Cron işlerini tanımladığınız kişisel dosyanızdır.
  • Sözdizimi: 5 zaman alanını ve özel karakterleri (*, -, ,, /) anlamak.
  • Özel Dizeler: @hourly ve @reboot gibi kısayollar.
  • En İyi Uygulamalar: Mutlak yolları kullanmak ve çıktıyı yönetmek.

Cron ile sıradan görevleri otomatikleştirerek sunucunuzun sorunsuz ve verimli çalışmasını sağlayabilirsiniz!

Sıkça Sorulan Sorular

“Cron ile Zamanlanmış Görevler” dersi ücretsiz mi?

Evet — “Cron ile Zamanlanmış Görevler” 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 Linux Server Deployment & SSH Mastery kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Linux Server Deployment & SSH Mastery kursu toplamda 4 dersten oluşur.

“Cron ile Zamanlanmış Görevler” dersinde ne öğreneceğim?

Betiklerin ve komutların belirtilen aralıklarla çalışmasını sağlamak için cron işlerini oluşturup yöneterek yinelenen sunucu görevlerini otomatikleştirin. Linux Server Deployment & SSH Mastery 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.

Linux Server Deployment & SSH Mastery öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Linux Server Deployment & SSH Mastery, 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 3. dersidir.

“Cron ile Zamanlanmış Görevler” 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 Linux Server Deployment & SSH Mastery dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Linux Server Deployment & SSH Mastery 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. Kullanıcıları ve Grupları Yönetme
  2. Sistem Süreçlerini İzleme
  3. Cron ile Zamanlanmış Görevler
  4. systemd ile Sistem Hizmetlerini Yönetme
← Linux Server Deployment & SSH Mastery Sayfasına Dön