Plesk, Linux ve Windows sunucularda sık kullanılan bir hosting panelidir. Zamanlanmış işler burada Scheduled Tasks (Zamanlanmış Görevler) adıyla yönetilir; arka planda yine sistem zamanlayıcısı çalışır. Bu rehber Plesk Obsidian Scheduling Tasks belgesindeki üç görev türünü, chroot davranışını, Run Now testini ve yaygın hataları kapsar.
Temel kavramlar için cron job nedir sayfasına, cPanel karşılaştırması için cPanel cron job rehberine bakabilirsiniz. İfade yazımı için crontab sözdizimi yeterlidir.
Zamanlanmış Görevlere Erişim
Abonelik (site) düzeyinde:
- Plesk'e giriş yapın.
- Websites & Domains altında ilgili aboneliği seçin.
- Scheduled Tasks (Zamanlanmış Görevler) bağlantısına tıklayın.
Sunucu yöneticisi olarak tüm görevler için: Tools & Settings → Scheduled Tasks. Saat dilimi varsayılanı sunucu saatidir; abonelik görünümünde Scheduled Tasks → Settings ile değiştirilebilir (resmi belge).
Adım Adım Yeni Görev Ekleme
Adım 1: Add Task
Add Task (Görev Ekle) ile formu açın.
Adım 2: Görev türünü seçin
Plesk Obsidian üç tür sunar:
- Run a command (Command): Çalıştırılabilir dosya, shell veya batch yolu. Linux'ta varsayılan olarak chroot içinde çalışır: abonelik sistem kullanıcısının home dizini kök kabul edilir; chroot dışındaki binary'ler “file not found” verebilir. Bu durumda home'a göreli yollar deneyin veya sağlayıcıya chroot dışı izin sorun.
- Fetch a URL: Yalnızca URL girin;
curl/wgetyazmayın. HTTP ile tetiklenen PHP cron uç noktaları için uygundur. - Run a PHP script: Script yolunu sanal host dizinine göreli verin; dosya seçici ile bulabilirsiniz. PHP sürümü panelden seçilir — CLI yolunu elle yazmak zorunda kalmazsınız.
Adım 3: Zamanlama
Basit modda sıklık (dakika/saat/gün/hafta/ay) ve saat seçersiniz. Gelişmiş/cron tarzında beş alanlı ifade yazarsınız:
*/15 * * * *
Kaydetmeden önce Run Now ile test edin. Resmi uyarı: Run Now hata veriyorsa zamanlayıcı da aynı hatayı tekrarlar; önce düzeltin.
Adım 4: Komut, URL veya PHP script
Command örneği (chroot kapalı / yönetici bağlamı veya izinli ortamda tam yol):
/opt/plesk/php/8.2/bin/php /var/www/vhosts/alanadi.com/httpdocs/cron/gorev.php
Fetch a URL:
https://alanadi.com/cron/gorev.php
Run a PHP script: örneğin httpdocs/cron/gorev.php (göreli) ve listeden PHP 8.2.
Adım 5: Bildirim, açıklama, kaydet
E-posta bildirimi, açıklama (description) ve çalıştırılacak sistem kullanıcısını (yönetici ekranında) ayarlayıp OK / Apply ile kaydedin.
Plesk PHP Yolları
SSH erişiminiz varsa yüklü sürümleri listeleyin:
ls /opt/plesk/php/*/bin/php
/opt/plesk/php/7.4/bin/php
/opt/plesk/php/8.0/bin/php
/opt/plesk/php/8.1/bin/php
/opt/plesk/php/8.2/bin/php
/opt/plesk/php/8.3/bin/php
Sitenin aktif sürümünü Websites & Domains → PHP Settings üzerinden doğrulayın. Mümkünse Command yerine Run a PHP script kullanmak sürüm uyumunu kolaylaştırır.
Gerçek Senaryolar
Senaryo 1: WordPress WP-Cron'u sisteme taşıma
Her 15 dakikada bir CLI tetikleme; ziyaretçi trafiğine bağımlılığı azaltır.
/opt/plesk/php/8.2/bin/php /var/www/vhosts/alanadi.com/httpdocs/wp-cron.php >/dev/null 2>&1
Zamanlama: */15 * * * *. WordPress ayarları için WordPress cron job rehberine bakın.
Senaryo 2: Laravel scheduler
Uygulama kökünde her dakika schedule:run:
cd /var/www/vhosts/alanadi.com/httpdocs && /opt/plesk/php/8.2/bin/php artisan schedule:run >> /var/www/vhosts/alanadi.com/logs/scheduler.log 2>&1
Chroot'ta cd ve /opt/plesk/... başarısız olabilir; bu durumda Run a PHP script + argüman veya Fetch URL tercih edin.
Aboneliğinizde WHMCS barındırıyorsanız faturalandırma ve otomatik görevlerin çalışması için WHMCS cron job kurulumunda verilen komut satırı da aynı şekilde Run a command girdisine taşınır; tek fark komutun php binary yolunun Plesk'in kendi sürüm dizinine uyarlanmasıdır.
Mevcut Görevleri Yönetme
- Enable / Disable: Silmeden durdurma
- Edit: Zamanlama veya komut
- Remove: Kalıcı silme
- Run Now: Anında test
cPanel kullanıcı arayüzünde yerleşik “şimdi çalıştır” yoktur; Plesk burada teşhisi hızlandırır. Doğrudan crontab -e ile eklenen satırlar Plesk listesinde görünmeyebilir; panelden eklenenler veritabanı kaydıyla listelenir.
Plesk ve cPanel Karşılaştırması
| Özellik | Plesk Scheduled Tasks | cPanel Cron Jobs |
|---|---|---|
| URL çağırma | Fetch a URL yerleşik | wget/curl komutu |
| PHP script türü | Run a PHP script | Command'da php yolu |
| Şimdi çalıştır | Run Now | Yok (Terminal ile test) |
| Geçici durdurma | Disable | Satırı silmek/düzenlemek |
| Açıklama alanı | Var | Yok |
| Windows hosting | Desteklenir | Yok |
| Linux Command ortamı | Varsayılan chroot | Hesap ortamı / jail politikası sağlayıcıya göre |
Karşılaştırmayı üçüncü yaygın panelle genişletmek isterseniz DirectAdmin'de cron job tanımlama rehberinde o panelin arayüzü, yetki sınırları ve zamanlama farkları ele alınır.
Sık Hatalar ve Çözümleri
1. file not found / komut bulunamadı (Command)
Neden: Chroot, abonelik home dışındaki /opt/plesk/php/... veya /usr/bin/php yollarını gizler.
Çözüm: Home'a göreli yol, Run a PHP script veya Fetch a URL; gerekirse hosting'den chroot istisnası.
2. Permission denied
Neden: Dosya izni veya yanlış sistem kullanıcısı.
Çözüm:
chmod 755 /var/www/vhosts/alanadi.com/httpdocs/cron/gorev.php
Görevin abonelik kullanıcısı altında çalıştığını kontrol edin.
3. Görev “başarılı” ama uygulama etkisi yok
Neden: Çalışma dizini farklı; göreli include/config bulunamıyor.
Çözüm: Script içinde mutlak yollar veya komutta önce cd (chroot izin veriyorsa). Run Now çıktısını okuyun.
4. PHP zaman aşımı / uzun iş yarıda kesiliyor
Neden: Panel veya PHP-FPM/CLI limitleri; URL fetch tarafında proxy timeout.
Çözüm: CLI script başında:
<?php
set_time_limit(0);
ini_set('max_execution_time', '0');
İş çok uzunsa kuyruk ve kısa tetikleyici kullanarak işi parçalara ayırın.
5. Fetch a URL 403 / 401
Neden: Uygulama token veya IP kısıtı bekliyor; Plesk fetch isteğinde sizin tarayıcı çerezleriniz yoktur.
Çözüm: Query/header ile paylaşılan gizli anahtar doğrulayın; web sunucu erişim loguna bakın.
SSH ve Plesk CLI Notu
Kök erişimi olan sunucularda zamanlanmış görevler komut satırından da yönetilebilir: plesk bin scheduler --list görevleri listeler, --create, --update <id> ve --run <id> ise görev oluşturur, günceller ve hemen çalıştırır (Plesk Obsidian 18.0.76 üzerinde doğrulandı). Tüm seçenekler için plesk bin scheduler --help çalıştırın. Doğrudan crontab -e ile eklenen işler panel listesiyle senkron görünmeyebilir. Günlük Linux crontab pratiği için Linux cron job rehberine bakın.
cronjob.com.tr ile HTTP Tabanlı Alternatif
Chroot, panel limiti veya Windows/Linux farkı sizi yavaşlatıyorsa ve iş HTTPS URL ile tetiklenebiliyorsa cronjob.com.tr dışarıdan çağırır. Ücretsiz; kredi kartı yok. En kısa aralık 60 sn; hazır aralık veya cron ifadesi; iş bazında saat dilimi (varsayılan Europe/Istanbul).
<?php
// httpdocs/cron/gorev.php
declare(strict_types=1);
$secret = getenv('CRON_SECRET') ?: '';
$hdr = $_SERVER['HTTP_X_CRON_TOKEN'] ?? '';
if ($secret === '' || !hash_equals($secret, $hdr)) {
http_response_code(401);
echo 'unauthorized';
exit;
}
// bakım / kuyruk / rapor
http_response_code(200);
echo 'ok';
Panelde URL, metot, header ve zamanlamayı girin. Başarı HTTP 200–399; en fazla 5 yönlendirme; TLS doğrulanır. Timeout: 1 dk→55 sn, 2 dk→115 sn, 5 dk+ veya cron ifadeli→290 sn. Ardışık hata eşiği (varsayılan 3) aşılınca e-posta; loglar 7 gün. User-Agent CronJobComTr/1.0 (+https://cronjob.com.tr). Yerel ağ adreslerine istek yok — uç nokta genel HTTPS olmalı. Plesk Fetch a URL ile benzer ihtiyaç için panel içi seçenek de vardır; dış izleme ve esnek header için cronjob.com.tr tamamlayıcıdır.
Sıkça Sorulan Sorular (SSS)
Plesk'te cron job sınırı var mı?
Plesk arayüzü tek başına sabit bir üst sınır dayatmaz; abonelik/servis planı ve sağlayıcı politikası görev sayısını veya sıklığı kısıtlayabilir. VPS ve dedicated sunucularda genelde daha esnektir.
Plesk'te cron loglarını nerede görebilirim?
Görev bildirimlerinde e-posta çıktısını açabilir, Run Now sonrası paneldeki hata çıktısına bakabilir veya SSH ile journalctl /var/log/syslog ve /var/log/cron üzerinden sistem cron kayıtlarını izleyebilirsiniz. Uygulama logunu komuta >> ile eklemek en pratik yoldur.
Fetch a URL ile Command arasındaki fark nedir?
Fetch a URL yalnızca adresi çağırır; curl veya wget yazmanız gerekmez. Command ise çalıştırılabilir dosya veya kabuk betiği yolunu ister ve Linux'ta varsayılan olarak chroot içinde koşar. PHP dosyaları için Run a PHP script türü ayrıca vardır.
file not found hatası chroot ile ilgili olabilir mi?
Evet. Plesk for Linux'ta Run a command görevleri varsayılan olarak abonelik kullanıcısının home dizinini kök kabul eden chroot'ta çalışır. /usr/bin/php gibi dış yollar görünmeyebilir; home'a göreli yol kullanın, Run a PHP script seçin veya sağlayıcıdan chroot dışı çalıştırma isteyin.
Sonuç
Plesk'te doğru türü seçmek (Command / Fetch URL / PHP script), chroot'u hesaba katmak ve kayıttan önce Run Now ile doğrulamak çoğu sorunu önler. URL tabanlı işlerde cronjob.com.tr ile dış tetikleme de güvenilir bir alternatiftir.
Hemen Ücretsiz Cron Job Oluşturun
Plesk'te Fetch a URL ile çağırdığınız uç noktaları cronjob.com.tr ile de zamanlayabilirsiniz: URL, POST metodu ve X-Cron-Token header'ını girin, chroot ve sürüm yolu derdi olmadan dışarıdan tetikleyip 7 günlük çalışma kaydı alın. Ücretsiz; kayıtta kredi kartı istenmez.
Ücretsiz Başla →