Cron Job

A cron job is a time-based job scheduler in Unix-like operating systems that allows users to execute commands or scripts automatically at specified intervals or...

Bir cron job, Unix benzeri işletim sistemlerinde zamana dayalı bir iş zamanlayıcısıdır. Kullanıcıların belirli zamanlarda, tarihlerde veya aralıklarda komutları veya betikleri otomatik olarak çalıştırmasını sağlar. Temel bileşen, zamanlanmış görevler için kullanıcı tanımlı yapılandırma dosyalarını, yani crontab'ları sürekli olarak kontrol eden bir arka plan işlemi olan cron daemon'udur. Her kullanıcının kendi crontab dosyası olabilir ve ayrıca sistem genelinde crontab dosyaları da bulunur. Bir cron job tanımlamanın sözdizimi, çalıştırılacak komutu izleyen beş zaman ve tarih alanını içerir: dakika (0-59), saat (0-23), ayın günü (1-31), ay (1-12) ve haftanın günü (0-7, burada hem 0 hem de 7 Pazar gününü temsil eder). Bir alandaki yıldız işareti (), o alan için "her olası değer" anlamına gelir. Örneğin, 0 2 /path/to/script.sh komutu, /path/to/script.sh betiğini her gün sabah 2:00'de çalıştıracaktır. Cron job'ları, sistem bakımı, yedeklemeler, veri senkronizasyonu, rapor oluşturma ve periyodik bildirimler gönderme gibi rutin görevleri otomatikleştirmek için esastır. Yanlış yapılandırma, görevlerin kaçırılmasına veya istenmeyen çalışmalara yol açabilir, bu da dikkatli planlama ve test ihtiyacını vurgular.

        graph LR
  Center["Cron Job"]:::main
  classDef main fill:#7c3aed,stroke:#8b5cf6,stroke-width:2px,color:white,font-weight:bold,rx:5,ry:5;
  classDef pre fill:#0f172a,stroke:#3b82f6,color:#94a3b8,rx:5,ry:5;
  classDef child fill:#0f172a,stroke:#10b981,color:#94a3b8,rx:5,ry:5;
  classDef related fill:#0f172a,stroke:#8b5cf6,stroke-dasharray: 5 5,color:#94a3b8,rx:5,ry:5;
  linkStyle default stroke:#4b5563,stroke-width:2px;

      

🧒 5 yaşındaki gibi açıkla

Bilgisayarınızın belirli bir zamanda çöpü çıkarmak veya bitkileri sulamak gibi bir görevi otomatik olarak yapması için bir çalar saat kurmak gibidir.

🤓 Expert Deep Dive

Cron, Yunanca 'chronos' (zaman) kelimesinden türetilmiştir ve Unix benzeri sistemlerde görev otomasyonu için temel bir yardımcı programdır. cron daemon'u (crond), o dakikada çalışacak şekilde zamanlanmış herhangi bir iş için crontab dosyalarını kontrol etmek üzere her dakika uyanır. Crontab dosyaları, zamanlamayı (zaman alanları) ve yürütülecek komutu veya betiği belirten girişler içerir. Zaman belirtimi belirli bir sözdizimi kullanır: * komut. Her yıldız işareti bir zaman birimini temsil eder: dakika, saat, ayın günü, ay, haftanın günü. Virgüller (listeler), tireler (aralıklar) ve yıldız işareti (wildcard) gibi özel karakterler esneklik sağlar. Sistem genelindeki crontab'lar (örneğin, /etc/crontab, /etc/cron.d/), sistem yönetimi görevlerine izin verirken, kullanıcı crontab'ları (crontab -e) bireysel kullanıcı görevleri içindir. Cron job'ları için ortam değişkenleri ve yürütme bağlamı, betikler ortama duyarsız olacak şekilde yazılmazsa (örneğin, yürütülebilir dosyalara tam yollar belirterek) sorunlara yol açabileceğinden, etkileşimli kabuklardan önemli ölçüde farklılık gösterebilir. Anacron, sistemin kapalı olması nedeniyle kaçırılmış olabilecek işleri çalıştırmak üzere tasarlanmış ilgili bir yardımcı programdır, bu da onu dizüstü bilgisayarlar veya aralıklı olarak bağlı sistemler için uygun hale getirir.

📚 Kaynaklar