Web Hosting

Cron Hakkında Temel Bilgiler ve Birkaç Örnek

9 dakika okuma Güncel bilgi
Yardım Merkezine Dön

Cron, Linux ve Unix tabanlı işletim sistemlerinde belirli komutların, lerin veya uygulamaların önceden belirlenen zamanlarda otomatik olarak çalıştırılmasını sağlayan zamanlayıcı servisidir. Düzenli olarak tekrarlanan görevlerin manuel müdahale gerektirmeden çalıştırılması için kullanılan en yaygın yöntemlerden biridir.

Web sunucularında yedekleme işlemleri, e-posta gönderimleri, log temizliği, veritabanı optimizasyonu, SSL yenileme işlemleri ve uygulama görevleri gibi birçok işlem Cron sayesinde otomatik olarak gerçekleştirilebilir.

Cron Nedir?

Cron, belirli zaman aralıklarında çalıştırılacak görevleri yöneten sistem servisidir. Çalıştırılacak görevler ise Crontab (Cron Table) adı verilen yapı içerisinde tanımlanır. Her satır bir zamanlama kuralını ve çalıştırılacak komutu içerir.

Bilgi
Cron görevleri arka planda otomatik olarak çalışır. Görevlerin çalışması için kullanıcının oturum açmasına gerek yoktur.

Cron Nerelerde Kullanılır?

  • Otomatik veritabanı yedekleme.
  • WordPress Cron görevleri.
  • Log dosyalarının temizlenmesi.
  • Geçici dosyaların silinmesi.
  • SSL sertifikalarının yenilenmesi.
  • E-posta gönderim lerinin çalıştırılması.
  • PHP, Python, Perl ve Shell lerinin otomatik çalıştırılması.
İpucu
Tekrarlayan işlemleri manuel olarak çalıştırmak yerine Cron kullanmanız hem zaman kazandırır hem de işlemlerin düzenli olarak gerçekleştirilmesini sağlar.

Temel Crontab Komutları

Cron görevlerini yönetebilmek için en sık kullanılan crontab komutları aşağıda yer almaktadır.

Crontab Dosyasını Düzenleme

crontab -e

Kullanıcının Cron görevlerini düzenlemek için kullanılan editörü açar.

Cron Görevlerini Listeleme

crontab -l

Tanımlanmış tüm Cron görevlerini listeler.

Tüm Cron Görevlerini Silme

crontab -r

Kullanıcıya ait tüm Cron görevlerini kaldırır.

Önemli
crontab -r komutu mevcut tüm Cron görevlerini siler. Komutu çalıştırmadan önce mevcut Cron kayıtlarınızı crontab -l komutu ile kontrol etmeniz önerilir.

Cron Görevi Nasıl Oluşturulur?

Bir Cron görevi oluşturmak için zamanlama bilgileri ile çalıştırılacak komut aynı satırda belirtilir. Her satır tek bir Cron görevini temsil eder.

* * * * * /calistirilacak/komut-veya-

Bu örnekteki beş yıldız (*) zamanlama alanlarını ifade eder. Tüm alanlarda yıldız kullanıldığında komut her dakika çalıştırılır.

Cron Zamanlama Alanları

Cron zamanlaması soldan sağa doğru beş farklı alandan oluşur.

.---------------- Dakika (0 - 59) | .------------- Saat (0 - 23) | | .---------- Ayın Günü (1 - 31) | | | .------- Ay (1 - 12) | | | | .---- Haftanın Günü (0 - 7) | | | | | * * * * * Çalıştırılacak Komut
AlanDeğer AralığıAçıklama
Dakika0 - 59Görevin hangi dakikada çalışacağını belirler.
Saat0 - 2324 saat formatında çalıştırılacak saati belirtir.
Ayın Günü1 - 31Ayın hangi gününde çalışacağını belirler.
Ay1 - 12Görevin hangi ayda çalışacağını belirtir.
Haftanın Günü0 - 70 veya 7 Pazar, 1 Pazartesi, 2 Salı ... 6 Cumartesi'dir.

Cron Zamanlama Karakterleri

Cron görevlerinde yalnızca sayılar değil, bazı özel karakterler de kullanılabilir.

KarakterAnlamıÖrnek
*Tüm değerlerHer dakika
,Birden fazla değer1,15,30
-Belirli aralık09-18
/Belirli aralıklarla*/10 (Her 10 dakika)
Bilgi
Cron zamanlamalarında birden fazla karakter birlikte kullanılabilir. Örneğin 0 9-18 * * 1-5 ifadesi, hafta içi her saat başında sabah 09:00 ile akşam 18:00 arasında görevin çalışmasını sağlar.

İlk Cron Görevinizi Oluşturma

Aşağıdaki örnek, backup.sh isimli bir Shell ini her gün saat 02:00'de çalıştırır.

0 2 * * * /home/kullanici/s/backup.sh

 

İpucu
Cron görevlerinde mümkün olduğunca komutların tam dosya yolunu (absolute path) kullanmanız önerilir. Böylece ortam değişkenlerinden kaynaklanabilecek çalıştırma sorunlarının önüne geçebilirsiniz.
Önemli
Çalıştıracağınız veya dosyanın yürütme (execute) iznine sahip olduğundan emin olun. Aksi halde Cron görevi zamanında çalışsa bile komut başarıyla yürütülemeyebilir.

Sık Kullanılan Cron Görevi Örnekleri

Aşağıdaki örnekler, günlük sistem yönetiminde ve web hosting ortamlarında en sık kullanılan Cron görevlerini göstermektedir. İhtiyacınıza göre komutları düzenleyerek kendi Cron görevlerinizi oluşturabilirsiniz.

Her 10 Dakikada Bir Çalıştırma

*/10 * * * * /komut/yada/

Komut veya her 10 dakikada bir çalıştırılır.

Her Gün Saat 12:00 ve 18:00'de Çalıştırma

0 12,18 * * * /komut/yada/

Görev her gün saat 12:00 ve 18:00'de çalıştırılır.

Her Saat Başı (09:00 - 18:00 Arası)

0 9-18 * * * /komut/yada/

Görev her gün sabah 09:00 ile akşam 18:00 saatleri arasında her saat başında çalıştırılır.

Hafta İçi Her Saat Başı (09:00 - 18:00)

0 9-18 * * 1-5 /komut/yada/

Görev yalnızca Pazartesi ile Cuma günleri arasında her saat başında çalıştırılır.

Gerçek Kullanım Örnekleri

PHP i Çalıştırma

*/30 * * * * /usr/bin/php /home/kullanici/public_html/cron.php

Belirtilen PHP dosyasını her 30 dakikada bir çalıştırır.

Shell i Çalıştırma

0 3 * * * /home/kullanici/s/backup.sh

Shell ini her gün saat 03:00'te çalıştırır.

Bir URL'yi Cron ile Çağırma

*/15 * * * * /usr/bin/curl -s https://www.ornekalanadi.com/cron.php >/dev/null 2>&1

Belirtilen web adresini her 15 dakikada bir çağırır.

wget ile URL Çalıştırma

0 * * * * /usr/bin/wget -q -O - https://www.ornekalanadi.com/cron.php >/dev/null 2>&1

Web adresini her saat başında çalıştırır ve çıktıyı ekrana yazdırmaz.

Bilgi
curl ve wget komutlarının sonundaki >/dev/null 2>&1 ifadesi, Cron çıktılarının kaydedilmesini veya e-posta olarak gönderilmesini engelleyerek gereksiz sistem çıktılarının oluşmasını önler.
İpucu
Web hosting hesaplarında mümkün olduğunca URL çağırmak yerine doğrudan PHP dosyasını php komutu ile çalıştırmanız daha hızlı ve daha verimlidir.
Önemli
Cron görevlerini çok kısa aralıklarla (örneğin her dakika) çalıştırmadan önce, çalıştırılan uygulamanın tamamlanma süresini göz önünde bulundurun. Uzun süren görevlerin üst üste çalışması sunucu performansını olumsuz etkileyebilir.

Cron Görevleri Çalışmıyorsa Kontrol Edilmesi Gerekenler

Oluşturduğunuz Cron görevi beklenen zamanda çalışmıyorsa, aşağıdaki kontrolleri yaparak sorunun kaynağını tespit edebilirsiniz.

1. Komutun Manuel Olarak Çalıştığını Doğrulayın

Cron'a eklediğiniz komutu önce SSH üzerinden manuel olarak çalıştırın. Komut manuel çalışmıyorsa, Cron tarafından da çalıştırılamayacaktır.

2. Tam Dosya Yolunu Kullanın

Cron görevlerinde mümkün olduğunca komutların ve çalıştırılacak dosyaların tam (absolute) dosya yolunu kullanın.

/usr/bin/php /home/kullanici/public_html/cron.php

3. Dosya İzinlerini Kontrol Edin

Çalıştırılacak in okunabilir ve gerekiyorsa çalıştırılabilir izinlere sahip olduğundan emin olun. Özellikle Shell leri için yürütme (execute) izni verilmelidir.

4. PHP Sürümünü Kontrol Edin

Birden fazla PHP sürümünün bulunduğu sunucularda doğru PHP yorumlayıcısının kullanıldığından emin olun. Gerekirse PHP'nin tam yolunu kullanın.

5. Çıktıları ve Hataları Kaydedin

Sorun giderme sırasında Cron çıktısını bir günlük dosyasına yönlendirmek, oluşan hataları tespit etmenizi kolaylaştırır.

*/5 * * * * /usr/bin/php /home/kullanici/public_html/cron.php >> /home/kullanici/cron.log 2>&1

Bu örnekte oluşan standart çıktılar ve hata mesajları cron.log dosyasına kaydedilir.

Bilgi
Cron görevleri, normal kullanıcı oturumundan farklı bir ortamda çalışır. Bu nedenle ortam değişkenlerine bağlı komutlar beklenildiği gibi çalışmayabilir. Tam dosya yollarının kullanılması tavsiye edilir.

Sık Sorulan Sorular

Cron görevim neden çalışmıyor?

En yaygın nedenler; hatalı zamanlama, yanlış dosya yolu, eksik dosya izinleri, yanlış PHP yolu veya çalıştırılan te oluşan hatalardır.

Birden fazla Cron görevi oluşturabilir miyim?

Evet. Crontab dosyasına her satır için farklı bir görev ekleyerek istediğiniz kadar Cron görevi tanımlayabilirsiniz.

Her dakika çalışan Cron görevi oluşturabilir miyim?

Evet. Ancak yoğun kaynak kullanan uygulamalarda her dakika çalışan görevler sunucu performansını olumsuz etkileyebilir. Bu nedenle ihtiyaç duyulan en uygun zaman aralığının tercih edilmesi önerilir.

Önemli
Aynı görevin, önceki çalışması tamamlanmadan yeniden başlaması sunucu yükünün artmasına ve beklenmeyen sonuçlara neden olabilir. Özellikle yedekleme, veri senkronizasyonu ve toplu işlem yapan lerde çalışma sürelerini dikkate alarak zamanlama yapmanız önerilir.
Dikkat
Silme, taşıma veya veritabanı güncelleme işlemleri yapan Cron görevlerini canlı ortamda kullanmadan önce mutlaka test ortamında doğrulayın. Yanlış yapılandırılmış bir Cron görevi geri dönüşü zor veri kayıplarına neden olabilir.

Sonuç

Cron, Linux tabanlı sistemlerde tekrarlayan işlemleri otomatik hale getirmenin en güvenilir yöntemlerinden biridir. Doğru yapılandırılmış Cron görevleri sayesinde yedekleme, bakım, raporlama ve uygulama işlemleri düzenli olarak gerçekleştirilebilir. Zamanlama kurallarının doğru belirlenmesi, tam dosya yollarının kullanılması ve görevlerin düzenli olarak kontrol edilmesi, sorunsuz bir Cron yapısı oluşturmanın temelini oluşturur.

İSİMKAYIT Yardım Merkezi 

Bu makalede Linux ve Unix tabanlı sistemlerde Cron görevlerinin oluşturulması, zamanlama kuralları, sık kullanılan örnekler ve olası sorunların çözüm yöntemleri ayrıntılı olarak açıklanmıştır. Hosting yönetimi, Linux sunucu yönetimi ve otomasyon işlemleri hakkında daha fazla bilgi için İSİMKAYIT Yardım Merkezi'ndeki diğer teknik makaleleri inceleyebilirsiniz.

Bu makale yardımcı olmadı mı? Destek ekibimizle iletişime geçin veya 0850 290 3344 numaralı hattı arayın.

Ürün sepete eklendi!