Cron nedir?
Cron, Unix ve Linux sistemlerinde komutları veya betikleri belirli zamanlarda ya da periyotlarla otomatik çalıştıran zamanlayıcı servisidir. Yedekleme, log temizliği, e-posta gönderimi ve veritabanı bakımı gibi tekrarlayan işleri otomatikleştirmek için kullanılır.
Zamanlanan her göreve cron job (cron işi) denir ve tanımlar crontab dosyasında tutulur.
Nasıl çalışır?
Cron servisi arka planda çalışır ve her dakika crontab kayıtlarını kontrol eder. Bir kaydın zamanı geldiğinde belirtilen komutu çalıştırır. Bir kayıt beş zaman alanı ve bir komuttan oluşur: dakika, saat, ayın günü, ay ve haftanın günü.
Örneğin her gün saat 03:00’te bir betik çalıştırmak için 0 3 * * * /path/script.sh yazılır. Kullanıcı bazlı crontab’ı crontab -e komutuyla düzenleyebilirsiniz.
Sunucu ve hosting ortamında
cPanel, Plesk ve DirectAdmin panellerinde cron işleri grafik arayüzden eklenebilir. WordPress gibi uygulamalar zamanlanmış işler için sanal cron kullanır; yoğun sitelerde bunu gerçek bir sistem cron’u ile değiştirmek performansı artırır.
Güvenlik açısından, yetkisiz kişilerin crontab’a erişimi saldırganlar için kalıcılık yöntemi olabilir. Sunucuda bilinmeyen cron kayıtları, ele geçirilme belirtisi sayılır.
Nasıl uygulanır?
- Komutlarda tam dosya yolu kullanın; cron ortamı sınırlı olduğundan göreli yollar çalışmayabilir.
- Çıktıyı bir log dosyasına yönlendirin:
>> /var/log/job.log 2>&1 - Betik dosyalarına yalnızca gerekli izinleri verin.
- Sık çalışan işlerde üst üste binmeyi önlemek için kilit mekanizması kullanın.
- Crontab kayıtlarını düzenli gözden geçirin.
- Her iş için yalnızca gereken yetkiye sahip kullanıcıyı kullanın.
Sık yapılan hatalar
- Çıktıyı yönlendirmeyip sunucuyu e-posta ile doldurmak.
- Betiği root ile gereksiz yere çalıştırmak.
- Zaman dilimini dikkate almamak.
- Çok sık çalışan işlerin birbirini beklemeden üst üste binmesine izin vermek.
Sık sorulan sorular
Cron ne işe yarar?
Belirlediğiniz zamanda komut veya betikleri otomatik çalıştırarak tekrarlayan işleri otomatikleştirir.
Cron job nasıl eklenir?
Komut satırında crontab -e komutuyla ya da cPanel, Plesk veya DirectAdmin içindeki Cron Jobs bölümünden eklenebilir.
Cron ile systemd timer arasındaki fark nedir?
İkisi de zamanlanmış görev çalıştırır. Cron daha basit ve yaygındır, systemd timer ise servis yönetimi, günlükleme ve bağımlılıklar açısından daha esnektir.
Bu terimin geçtiği rehberler
- auditd ile denetim kaydı: kritik dosya ve komutları izlemeauditd ile Linux sunucuda denetim kaydı tutun: kritik dosya değişikliklerini ve komutları izleyen kurallar yazın, ausearch ve aureport ile kayıtları sorgulayın.
- Postfix ile giden e-posta yönlendirme (smarthost) ve temel güvenlikPostfix ile giden e-postaları kimlik doğrulamalı SMTP röle (smarthost) üzerinden TLS ile gönderme, yalnızca yerel kullanım için güvenli yapılandırma ve açık röle kontrolü rehberi.
- logrotate yapılandırması: günlük döndürme, sıkıştırma ve saklamalogrotate ile günlük dosyalarını döndürme, sıkıştırma ve saklama süresini ayarlama; özel uygulama günlükleri için yapılandırma yazma, test etme ve sık hataları çözme rehberi.
- GoAccess ile Nginx/Apache web log analiziGoAccess ile Nginx ve Apache erişim günlüklerini terminalde ve HTML rapor olarak analiz etme, log formatı seçimi, gz arşivlerini okuma, zamanlanmış rapor ve erişim koruması rehberi.
İlgili terimler
- Dedicated sunucuTamamen tek bir müşteriye ayrılmış fiziksel sunucu.
- DirectAdminHafif ve hızlı olmasıyla bilinen, yönetici/bayi/kullanıcı seviyeli kontrol paneli.
- Dosya izinleri (chmod)Linux’ta dosya ve klasörlere kimin okuma, yazma ve çalıştırma yetkisi olduğunu belirleyen ayar.
- E-posta teslim edilebilirliğiGönderilen e-postaların spam klasörüne düşmeden alıcının gelen kutusuna ulaşma başarısı ve bunu etkileyen teknik ile itibar faktörleri.
- Hosting kontrol panelicPanel, Plesk ve DirectAdmin gibi sunucu yönetim arayüzleri.
- iDRACDell sunucularındaki uzaktan yönetim denetleyicisi.