LIONFIN
Plesk Hosting

Plesk Zamanlanmış Görevler (Cron) Oluşturma

5 dk okuma Güncelleme: 6 görüntülenme
Plesk Zamanlanmış Görevler (Cron) Oluşturma

Her gece veritabanını dışa aktaran bir betik, saat başı stok güncelleyen bir API çağrısı ya da beş dakikada bir çalışması gereken WordPress cron’u için sunucuya SSH ile bağlanıp crontab düzenlemenize gerek yok. Plesk zamanlanmış görevler (Scheduled Tasks) ekranı, komut, PHP betiği ya da URL’yi seçtiğiniz aralıklarla çalıştırır ve sonucu e-postayla bildirir.

Bu rehberde LIONFIN Plesk hosting hesabınızda görev türlerini, adım adım kurulumu, cron zamanlama biçimini, WordPress ve Laravel için hazır örnekleri ve görev çalışmadığında bakılacak yerleri anlatıyoruz.

Zamanlanmış görev nedir, hangi işlerde kullanılır?

Zamanlanmış görev (cron job), sunucunun belirlediğiniz takvime göre kendi başına çalıştırdığı komuttur. Ziyaretçi trafiğine bağlı kalmadan, gece saatlerinde ya da dakikalar içinde tekrarlanan işler için idealdir. Tipik kullanım alanları:

  • Yedekleme: veritabanını dışa aktarıp private klasörüne yazan betik; tam yedek için yine de Plesk yedekleme planı kullanın.
  • Önbellek ve geçici dosya temizliği: eski oturum ve önbellek dosyalarını silme.
  • Uygulama zamanlayıcıları: WordPress wp-cron.php, Laravel schedule:run, Magento cron.
  • Veri senkronizasyonu: ERP ya da pazaryeri API’sinden ürün ve stok çekme.
  • Rapor ve bildirim: günlük satış özetini e-postayla gönderme.

Plesk, görevleri abonelik kullanıcısının yetkileriyle çalıştırır; bu sayede betikleriniz yalnızca kendi dosyalarınıza erişir ve sunucunun geneline zarar veremez.

Plesk zamanlanmış görevler ekranı ve görev türleri

Websites & Domains sekmesinde alan adı kartındaki Scheduled Tasks bağlantısına tıklayın (sağ menüdeki Tools altında da yer alır). Add Task düğmesi üç görev türü sunar:

Görev türüNe çalıştırırNe zaman seçilir
Run a commandKabuk komutu ya da çalıştırılabilir dosyaBash betikleri, mysqldump, php artisan
Fetch a URLBelirtilen adrese HTTP isteği gönderirWeb üzerinden tetiklenen betikler, wp-cron
Run a PHP scriptSeçtiğiniz PHP sürümüyle betiği doğrudan çalıştırırWeb sunucusundan bağımsız PHP işleri

Run a PHP script türünde PHP sürümünü görev bazında seçebilirsiniz; sitenizin sürümüyle aynı olması için Plesk PHP sürümü değiştirme ekranındaki değeri esas alın. Windows aboneliklerinde aynı ekran Run a command ile .bat ya da .exe dosyalarını da çalıştırır.

Adım adım görev oluşturma

Örnek olarak her gece 02:30’da çalışan bir PHP betiği tanımlayalım:

  1. Add Task düğmesine tıklayın ve Task type olarak Run a PHP script seçin.
  2. Script path alanına dosya yolunu abonelik köküne göre yazın: httpdocs/cron/temizlik.php. Yanındaki klasör simgesi dosyayı Plesk dosya yöneticisi ağacından seçmenizi sağlar.
  3. Gerekirse with arguments alanına parametre girin (--force gibi).
  4. Run alanında Cron style seçip 30 2 * * * yazın ya da Daily seçeneğinde saati belirleyin.
  5. Description alanına görevin ne yaptığını yazın; aylar sonra listeyi okurken işinize yarar.
  6. Notify alanında Errors only seçin ve e-posta adresinizi doğrulayın.
  7. Run Now ile hemen deneyin, çıktıyı kontrol edip OK ile kaydedin.

Basit bir temizlik betiği örneği:

<?php
$dir = __DIR__ . '/../cache';
foreach (glob($dir . '/*.tmp') as $file) {
    if (filemtime($file) < time() - 86400) {
        unlink($file);
    }
}
echo "Temizlik tamamlandı\n";
İpucu: Betik çıktısını e-postada görmek için Notify alanında Every time seçin, ancak dakikalık görevlerde bu ayar gelen kutunuzu doldurur.

Cron zamanlama biçimi

Cron ifadesi boşlukla ayrılmış beş alandan oluşur: dakika, saat, ayın günü, ay, haftanın günü. Yıldız (*) “her” anlamına gelir, */5 her beş birimde bir, 1-5 aralık, 1,15 liste demektir.

İfadeAnlamı
*/5 * * * *Her 5 dakikada bir
0 * * * *Her saat başı
30 2 * * *Her gün 02:30
0 3 * * 1Her pazartesi 03:00
0 0 1 * *Her ayın 1’i gece yarısı
0 8-18 * * 1-5Hafta içi 08:00–18:00 arası her saat

Saatler sunucunun saat dilimine göredir; LIONFIN sunucuları Türkiye saatiyle çalışır, farklı bir dilim istiyorsanız görev listesinin üstündeki Settings düğmesinden aboneliğe özel saat dilimi seçebilirsiniz. En kısa aralık bir dakikadır; daha sık çalışması gereken işler için kuyruk (queue) çalışanı gibi kalıcı bir süreç gerekir, bu senaryoda VPS sunucu daha uygun bir zemindir.

Dikkat: Ağır betikleri (tam yedek, büyük içe aktarma) dakikalık aralığa koymayın; önceki çalışma bitmeden yenisi başlar ve kaynak sınırına takılırsınız.

WordPress ve Laravel için hazır örnekler

WordPress: Varsayılan wp-cron her sayfa yüklemesinde tetiklenir; ziyaretçisi az sitelerde zamanlanmış yazılar gecikir, yoğun sitelerde gereksiz yük oluşur. wp-config.php dosyasına şu satırı ekleyin:

define('DISABLE_WP_CRON', true);

Ardından Fetch a URL türünde bir görev oluşturup adresi siteniz.com/wp-cron.php?doing_wp_cron olarak girin ve */5 * * * * aralığını seçin. WordPress Toolkit kullanıyorsanız bu ayar kartta tek anahtar olarak da sunulur; ayrıntı Plesk WordPress Toolkit kullanımı rehberindedir.

Laravel: Run a command türünde şu komutu dakikada bir çalıştırın; uygulamanızın kendi zamanlayıcısı gerisini halleder:

/opt/plesk/php/8.3/bin/php /var/www/vhosts/siteniz.com/httpdocs/artisan schedule:run

PHP ikilisinin yolu sunucudaki sürüme göre değişir; doğru yolu Run a PHP script türünü seçip php -v çıktısını alan küçük bir betikle ya da destek ekibinden öğrenebilirsiniz. Sunucu tarafına e-posta gönderen betiklerde teslimat için SMTP kimlik doğrulaması kullanın; yerel mail() çağrıları spam filtrelerine takılabilir.

Görev çalışmıyorsa bakılacak yerler

Listede görünüyor ama hiç çalışmamış

Plesk zamanlanmış görevler listesinde görevin yanındaki Active kutusunun işaretli olduğundan ve cron ifadesinin geçerli olduğundan emin olun; Run Now ile elle tetikleyip çıktıyı okuyun.

“Permission denied” hatası

Betik dosyasının çalıştırma izni yoktur ya da dosya başka bir kullanıcıya aittir; dosya yöneticisinden izinleri 755 yapın.

“Command not found” hatası

Cron ortamında PATH kısıtlıdır; php yerine tam yol (/opt/plesk/php/8.3/bin/php), mysqldump için /usr/bin/mysqldump yazın.

Betik tarayıcıda çalışıyor, cron’da çalışmıyor

Betik göreli yol kullanıyordur; __DIR__ ile mutlak yol oluşturun. Web üzerinden çalışması gereken betikler için Fetch a URL türünü seçin.

E-posta bildirimi gelmiyor

Notify ayarı Do not notify olabilir; ayrıca sunucudan çıkan bildirimlerin spam klasörüne düşmediğini kontrol edin. Sorunun kaynağını bulamazsanız müşteri panelinden destek talebi açın, görev kimliğini ve çalışma saatini belirtin.

Sık Sorulan Sorular

Plesk’te kaç zamanlanmış görev oluşturabilirim?

Plesk tarafında sabit bir sınır yoktur; sayıyı hosting paketinizin kaynak limitleri ve görevlerin ne kadar işlemci kullandığı belirler. Onlarca dakikalık görev yerine işleri tek betikte toplamak hem yönetimi kolaylaştırır hem de kaynak sınırına takılma riskini azaltır.

Görevin çıktısını dosyaya kaydedebilir miyim?

Evet. Run a command türünde komutun sonuna yönlendirme ekleyin, örneğin komut ardından büyüktür işaretiyle private/cron.log yolunu verin; hataları da aynı dosyaya toplamak için 2>&1 ifadesini kullanın. Dosya zamanla büyüyeceği için haftalık bir görevle döndürmeniz ya da silmeniz gerekir.

Cron görevi neden dakikada bir çalışırken sunucu yavaşlıyor?

Betik önceki çalışması bitmeden yeniden başlıyor ve süreçler üst üste biniyor olabilir. Betiğin başında kilit dosyası oluşturup bitince silmek, ya da aralığı işin süresine göre uzatmak sorunu çözer. Uzun süren işler için görev süresini ölçüp buna göre plan yapın.

Windows hostingde de cron oluşturabilir miyim?

Evet, Plesk for Windows aynı Scheduled Tasks ekranını sunar; arka planda Windows Görev Zamanlayıcı kullanılır. Run a command türüyle .bat, .exe ya da PowerShell betiklerini, Fetch a URL türüyle ASP.NET sayfalarını tetikleyebilirsiniz. PHP betikleri için de aynı seçenekler geçerlidir.

Bu makale yardımcı oldu mu?

Geri bildiriminiz için teşekkürler!

kişi faydalı buldu

Paylaş

X LinkedIn WhatsApp

Sorunuz mu var? Destek ekibimize yazın.