Hosting'de cron görevi ekleme: PHP betiği zamanlama (adım adım)

Web Hosting Kullanımı 56 görüntülenme Markdown

Cron, bir komutu ya da betiği belirli zamanlarda otomatik çalıştıran sunucu zamanlayıcısıdır: her gece yedek almak, her 5 dakikada kuyruğu işlemek, her pazartesi rapor göndermek gibi işler için. Hosting panelimizden PHP betiklerinizi kendiniz zamanlayabilirsiniz.

Görev ekleme

  1. Hosting panelinde üst menüden CRON bölümüne gidin.
  2. Cron Görevi Ekle'ye tıklayın.
  3. Form alanlarını doldurun: Dakika, Saat, Gün (ayın günü), Ay, Haftanın Günü ve Komut.
  4. Kaydedin; görev hemen zamanlanır.

Zaman alanları

Her alan ya bir sayıdır, ya * (her biri), ya */5 (her 5 birimde bir) ya da virgülle ayrılmış liste (1,15) olur:

  • Her 5 dakikada bir: Dakika */5, diğerleri *
  • Her saat başı: Dakika 0, Saat *
  • Her gece 03:30: Dakika 30, Saat 3, diğerleri *
  • Her pazartesi 09:00: Dakika 0, Saat 9, Haftanın Günü 1 (0 ya da 7 pazar, 1 pazartesi)
  • Ayın 1'inde gece yarısı: Dakika 0, Saat 0, Gün 1

Saat dilimi sunucunun saat dilimidir; zamanlamayı buna göre düşünün.

Komut yazımı

PHP betiği çalıştırmak için PHP'nin yolunu ve betiğin tam yolunu yazın. Hosting hesabınızda sitenizin dosyaları şu klasördedir: /home/KULLANICI/web/ornek.com/public_html/ (kullanıcı adınız ve alan adınızla değiştirin; kullanıcı adınızı hosting bilgilerinizde bulursunuz). PHP komut satırı programı /usr/bin/php konumundadır:

/usr/bin/php /home/KULLANICI/web/ornek.com/public_html/cron.php

Komutta göreli yol kullanmayın (php cron.php); cron betiğinizin bulunduğu klasörden başlamaz. Bir web adresini çağırmak daha kolaysa:

curl -s https://ornek.com/cron.php > /dev/null

Çıktıyı /dev/null'a yönlendirmezseniz cron her çalışmasında çıktıyı mail ile göndermeye çalışabilir. Çıktıyı bir dosyaya yazdırmak isterseniz: ... >> /home/KULLANICI/web/ornek.com/private/cron.log 2>&1 (log dosyası private klasöründe olsun ki herkese açık olmasın).

Sınırlar

  • Paketinizde en fazla 10 cron görevi tanımlayabilirsiniz.
  • Çok sık çalışan (her dakika) ağır görevler kaynak kotanızı yer. Gerçekten gerekmedikçe 5 dakikada bir yeterlidir.
  • Görev kullanıcı olarak çalışır; yalnızca kendi klasörlerinize erişebilir.

Çalışmıyorsa

  1. Komutu elle deneyin: Terminal erişimi olmadığı için aynı betiği bir kez tarayıcıdan çağırarak (eğer web üzerinden çağrılabiliyorsa) hata verip vermediğine bakın.
  2. Yolu kontrol edin: Kullanıcı adı ve alan adı doğru yazılmış mı? Dosya orada mı? Dosya yöneticisinde yolu doğrulayın.
  3. Betik kendi kendine hata veriyor: Çıktıyı bir dosyaya yönlendirip içine bakın (yukarıdaki örnek); PHP hataları da orada görünür.
  4. WordPress için: wp-cron.php'yi zamanlarken ayrıntı için: WordPress gerçek cron.
  5. Zamanlama anlamı: 0 */2 * * * iki saatte bir saat başıdır; sık yapılan hata, dakika alanına * yazıp "her dakika çalışıyor" şaşkınlığı yaşamaktır.

VDS'te aynı işi crontab -e ile yaparsınız: cron makalesi. Windows için: Görev Zamanlayıcı. Paketlerimiz: Web Hosting.

Sık sorulanlar

Cron görevi çalışınca bana mail gelir mi?

Panel, cron çıktısını mail ile bildirme seçeneği sunabilir; çıktıyı /dev/null'a yönlendirirseniz bildirim gelmez. İhtiyaç duyduğunuz durumda çıktıyı bir dosyaya yazdırmak daha kontrollüdür.

Görev ne zaman çalışacak?

Zamanlama alanlarında belirttiğiniz dakikada. Yeni eklenen görev bir sonraki eşleşen dakikada çalışır; hemen çalışmaz.

Cron ile PHP dışında bir komut çalıştırabilir miyim?

Paket kısıtları dahilinde evet; ancak hosting hesabında kabuk (terminal) erişimi olmadığı için komutlar yalnızca sitenizin dosyalarına dokunmalıdır. Ağır işler için VDS uygundur.

İlgili makaleler

Sorununuz çözülmediyse destek talebi açın. Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.

Faydalı oldu mu?

Geri bildiriminiz için teşekkürler!

Hâlâ Yardıma mı İhtiyacınız Var?

Yukarıda bulamadığınız her şey için destek ekibimiz her zaman yanınızda.