Bilgi Bankası

Hizmetlerin kullanım şekli ve çeşitli konularda karşılaşılan sorunlara
çözüm yolları içeren makalelere Bilgi Bankası ile ulaşabilirsiniz.

cPanel ile Zamanlanmış Görevleri (Cron Job) Yönetmek

cPanel ile Zamanlanmış Görevleri (Cron Job) Yönetmek

İçerik

    Düzenli çalışması gereken bir iş varsa (günlük bir temizlik betiği, rapor hazırlayan bir PHP dosyası) onu her seferinde elle çalıştırmanız gerekmez. cPanel’deki Cron Jobs aracında komutu bir kez tanımlarsınız, sistem de belirlediğiniz zamanda kendisi çalıştırır. Bu rehberde bir PHP betiğini her gün 03:00’te çalıştıran cron işini oluşturmayı, ardından düzenlemeyi, silmeyi ve çalıştığını test etmeyi göstereceğim.

    cPanel, komutun doğru olup olmadığını eklerken denetlemez. Var olmayan bir dosya yolu yazsanız bile iş “eklendi” mesajıyla kaydedilir; hata ancak işin çalışması gereken saatte ortaya çıkar. Bu yüzden komutu yazarken ve sonunda test ederken biraz dikkatli olun.

    Gereksinimler

    Başlamadan önce şunlar hazır olsun:

    • Çalıştırılacak betiğin hosting hesabınızdaki tam yolu. Örnek: /home/kullaniciadi/public_html/cron/gorev.php
    • Betiğin hangi PHP sürümüyle çalışacağı. Alan adınızın kullandığı sürümü MultiPHP Manager‘dan görebilirsiniz; ayrıntı için PHP sürümü değiştirme (MultiPHP Manager) rehberine bakın.

    Adım 1 – Cron Jobs aracını açın

    Tarayıcınıza alanadiniz.com:2083 yazın ve cPanel kullanıcı adı ile parolanızla giriş yapın. Sağ üstteki arama kutusuna Cron yazın ve çıkan sonuçlardan Cron Jobs aracını açın.

    cPanel arama kutusunda Cron Jobs sonucu

    Adım 2 – Çıktı e-postasını ayarlayın

    Sayfanın üstündeki Cron Email bölümü, çıktı üreten her cron çalışmasından sonra e-posta gönderilmesini sağlar. Hata mesajlarını almak istediğiniz adresi Email alanına yazın ve Update Email düğmesine tıklayın.

    İlk kurulumda komutun çıktısını kapatmayın. İş hata verirse, nedenini e-postada görürsünüz. Çıktıyı kapatmak için komutun sonuna >/dev/null 2>&1 eklenir; bu ek hem çıktıyı hem hata mesajlarını atar. İş çalıştığını gösterdikten sonra, gelen e-postalar sizi rahatsız ediyorsa eki Edit ile ekleyin.

    Adım 3 – Çalışma zamanını belirleyin

    Add New Cron Job bölümünde zamanı iki yolla girebilirsiniz:

    • Common Settings listesinden hazır bir sıklık seçersiniz. Örneğin **Once Per Day (0 0 * * *) seçtiğinizde Minute, Hour, Day, Month ve Weekday** alanları kendiliğinden dolar.
    • Alanları elle doldurursunuz. Her alanın yanındaki açılır liste, o alana yazılabilecek değerleri gösterir.

    Her gün 03:00 için Minute alanına 0, Hour alanına 3 yazın; Day, Month ve Weekday alanları * kalsın. *, “her biri” anlamına gelir.

    Paylaşımlı hosting hizmetlerinde çalışma aralığı için bir alt sınır vardır; ayrıntı sayfanın sonundaki dipnotta.¹

    Adım 4 – Komutu yazın

    Command alanına çalıştırılacak komutu tam yolla yazın. PHP betiği için komut şu biçimdedir:

    /usr/local/bin/ea-php83 /home/kullaniciadi/public_html/cron/gorev.php

    Komutta iki yeri kendi hesabınıza göre değiştirin:

    • ea-php83: Betiğin çalışacağı PHP sürümüdür. Alan adınızın kullandığı sürümü yazın; PHP 8.2 için ea-php82, PHP 8.4 için ea-php84 olur. Sürüm adını MultiPHP Manager’da PHP 8.3 (ea-php83) biçiminde görürsünüz. Alan adı sürümü Inherited (sistemden devralınan) olarak gösteriyorsa, listede yazan sürümü kullanın.
    • /home/kullaniciadi/...: kullaniciadi yerine cPanel kullanıcı adınızı yazın ve dosyanın tam yolunu girin.

    Formun üstündeki örnekte /usr/local/bin/php ile başlayan genel bir komut da görürsünüz. Onu kullanmayın: Bu genel yol alan adınıza atanmış sürüme bağlı değildir ve betiğiniz farklı bir PHP sürümüyle çalışabilir. MultiPHP Manager’da sistem varsayılanının alan adınızdan farklı olabileceğini görürsünüz; test hesabımızda sistem varsayılanı PHP 8.1 (ea-php81). cPanel de aynı sayfada ea-php99 yerine alan adına atanmış sürümü yazmanızı söylüyor.

    Sürüm adını ve dosya yolunu eklemeden önce bir kez daha kontrol edin; cPanel bunları kayıt sırasında doğrulamaz.

    Add New Cron Job formu: her gün 03:00 için dolu alanlar ve ea-php83 komutu

    Adım 5 – Cron işini ekleyin

    Alanları kontrol edin ve Add New Cron Job düğmesine tıklayın. Sayfada cPanel successfully added the cron job. mesajını görürsünüz. Altındaki Current Cron Jobs tablosunda yeni iş, zaman alanları ve komutuyla birlikte listelenir.

    Başarı mesajı ve Current Cron Jobs tablosunda eklenen cron işi

    Cron işini düzenleyin veya silin

    Mevcut bir işi Current Cron Jobs tablosunda, satırın sağındaki Actions sütunundan yönetirsiniz:

    • Edit: Satırın altında zaman alanları ve komut açılır. Değiştirdikten sonra Edit Line düğmesine tıklayın. Vazgeçerseniz Cancel yeterlidir.
    • Delete: Delete this cron job? sorusu çıkar. Delete düğmesi işi kaldırır, Cancel vazgeçirir.

    Silme işlemi yalnızca zamanlanmış işi kaldırır. Komutun çalıştırdığı betik dosyasına dokunmaz.

    Cron işi çalışıyor mu, test edin

    Cron işinin listede görünmesi, komutun doğru çalıştığını göstermez. Şimdi sırada test etme zamanı.

    Betiğiniz her çalıştığında bir sonuç bırakıyorsa (bir dosyaya tarih satırı yazması, bir kaydı güncellemesi gibi) işin zamanı geldikten sonra o sonucun oluştuğunu kontrol edin. Betik bir şey yazmıyorsa test için geçici olarak bir dosyaya tarih yazan bir satır eklemeniz işi kolaylaştırır; File Manager‘dan dosyanın güncellendiğini görebilirsiniz.

    Sonuç oluşmadıysa sırayla şunlara bakın:

    1. Komuttaki dosya yolu doğru mu? Betik dosyasının adı ve klasörü tam yazıldı mı?
    2. ea-php sürümü MultiPHP Manager’daki sürümle uyuşuyor mu?
    3. Çıktı e-postası açıksa mesaj kutunuza bir hata bildirimi düştü mü?

    Bu üç kontrolden sonra işin neden çalışmadığını anlayamıyorsanız komutu, cron işinin çalışması gereken saati ve aldığınız hata mesajını (varsa) destek talebine ekleyin.


    ¹ Paylaşımlı hosting hizmetlerimizde cron işleri için minimum çalışma aralığı 15 dakikadır. Daha sık bir aralık girseniz bile otomasyon sistemimiz bunu düzeltir.

    Veridyen Destek

    Hizmetleriniz için 7/24 destek sunuyoruz.

    Veridyen Müşteri Hizmetleri