DirectAdmin'de Cron Job Kurulum Rehberi

HostingYayın: Güncellendi: 7 dk okumaHazırlayan: cronjob.com.tr Editörleri

DirectAdmin, düşük kaynak tüketimiyle VPS ve birçok paylaşımlı hosting paketinde tercih edilen bir kontrol panelidir. Zamanlanmış görevleri SSH bilmeden eklemek için paneldeki Cron Jobs sayfası yeterlidir. Bu rehber, panele erişimden komut yazımına, e-posta çıktısından gerçek hata mesajlarına kadar uçtan uca kurulum anlatır.

Cron job nedir bilmiyorsanız önce temel kavramı okuyun. Beş alanlı zaman ifadesi için crontab sözdizimi ve hazır örnekler için cron expression generator kullanışlıdır. cPanel kullanıyorsanız cPanel cron job rehberine bakın; dosya yolu yapısı farklıdır. Sunucunuz WiseCP panelli ise cron arayüzü ve komut şablonu tamamen değişir; WiseCP cron görevleri rehberi o panelin adımlarını anlatır.

Önemli nokta: Cron, oturum açtığınız kabukla aynı ortamı kullanmaz. PHP veya bash için mutlak yol yazın; göreli yollar ve php gibi PATH'e bağlı kısa adlar sık kırılır. Kaydetmeden önce aynı komutu SSH veya DirectAdmin Terminal ile bir kez çalıştırın.

DirectAdmin'de Cron Jobs Sayfasına Erişim

Giriş adresi genelde https://alanadi.com:2222 veya sağlayıcınızın verdiği panel URL'sidir. Menü metinleri Evolution ve eski skin'de hafifçe değişebilir.

  1. DirectAdmin'e kullanıcı hesabınızla giriş yapın.
  2. Advanced Features (Gelişmiş Özellikler) bölümüne gidin.
  3. Cron Jobs (bazı arayüzlerde Cronjobs) seçeneğine tıklayın.
  4. Bazı sürümlerde yol Account Manager → Cron Jobs şeklindedir; arama kutusuna cron yazmak en hızlı yöntemdir.

Menü görünmüyorsa hosting sağlayıcınız özelliği kapatmış veya hesabınıza cron kotası vermemiş olabilir. Destekten açılmasını isteyin.

E-posta Bildirimi (Cron Output)

DirectAdmin, cron çıktısını varsayılan olarak hesabın sistem / iletişim e-postasına gönderir. Sayfada Send all Cron output to E-Mail benzeri bir alan varsa adresi buradan ayarlayıp kaydedin.

Her 5 dakikada bir çalışan işlerde posta kutusu hızla dolar. Sık işlerde çıktıyı susturun veya loga yazın:

/usr/local/bin/php /home/KULLANICI/domains/alanadi.com/public_html/cron.php >/dev/null 2>&1

Log tutmak istiyorsanız:

/usr/local/bin/php /home/KULLANICI/domains/alanadi.com/public_html/cron.php >> /home/KULLANICI/logs/cron.log 2>&1
Not: Log dizininin hesabınız altında yazılabilir olduğundan emin olun. Yoksa oluşturun: mkdir -p /home/KULLANICI/logs.

Adım Adım Cron Job Oluşturma

Adım 1: Yeni görev

Create a Cron Job, Create new Cron Job veya Add düğmesine tıklayın.

Adım 2: Zamanlama

Beş alanı doldurun. Hazır aralık menüsü varsa (Per Hour, Per Day vb.) seçebilirsiniz; yoksa elle girin. Zamanlama dili için crontab sözdizimi tablosuna bakın.

Alan Değer Anlamı
Minute0–59 veya *Dakika
Hour0–23 veya *Saat (sunucu saat dilimi)
Day of Month1–31 veya *Ayın günü
Month1–12 veya *Ay
Day of Week0–6 veya *Haftanın günü (0=Pazar)

Örnekler: her 15 dakika → Minute */15, diğerleri *; her gün 03:00 → Minute 0, Hour 3, diğerleri *.

Adım 3: Command alanı

Hem yorumlayıcı hem script için mutlak yol kullanın. DirectAdmin sunucularında PHP sıkça /usr/local/bin/php veya /usr/bin/php altındadır; CustomBuild ile birden fazla sürüm olabilir.

PHP CLI:

/usr/local/bin/php /home/KULLANICI/domains/alanadi.com/public_html/cron.php >/dev/null 2>&1

Bash:

/bin/bash /home/KULLANICI/scripts/yedek.sh >> /home/KULLANICI/logs/yedek.log 2>&1

wget / curl ile URL:

/usr/bin/wget -q -O /dev/null "https://alanadi.com/cron.php?key=GIZLI"
/usr/bin/curl -fsS -H "X-Cron-Token: GIZLI" "https://alanadi.com/cron.php" >/dev/null 2>&1

Adım 4: Kaydetme

Create / Add ile kaydedin. Alt listede görev görünür; Edit ve Delete ile yönetirsiniz. Panelde kalıcı “pause” anahtarı yoktur; geçici olarak satırı SSH'da # ile yorumlayabilir veya zamanlamayı uzak bir güne çekebilirsiniz.

DirectAdmin Dosya Yolu Yapısı

cPanel'den gelen en sık hata, yanlış home yoludur:

/home/KULLANICI/domains/alanadi.com/public_html/   → Web kökü
/home/KULLANICI/domains/alanadi.com/logs/           → Domain logları
/home/KULLANICI/domains/alanadi.com/private_html/   → SSL / private_html

PHP yolunu SSH veya Terminal'de doğrulayın:

which php
php -v
ls /usr/local/php*/bin/php
ls /usr/local/bin/php*

Gerçek Senaryolar

Senaryo 1: WordPress WP-Cron her 15 dakika

Ziyaretçi az olan sitede WP-Cron gecikir. Panelden gerçek zamanlayıcıya taşıyın; WordPress tarafında DISABLE_WP_CRON için WordPress cron job rehberine bakın.

Dakika: */15  Saat: *  Gün: *  Ay: *  Hafta: *
/usr/local/bin/php /home/USER/domains/site.com/public_html/wp-cron.php >/dev/null 2>&1

Senaryo 2: Gece 03:00 veritabanı yedeği

Uzun süren iş; günde bir kez yeterlidir. Parola crontab'da düz metin kalır — mümkünse .my.cnf veya ortam dosyası kullanın.

Dakika: 0  Saat: 3  Gün: *  Ay: *  Hafta: *
/usr/bin/mysqldump -u USER -p'PASS' dbname | gzip > /home/USER/backups/db-$(date +\%Y\%m\%d).sql.gz

Senaryo 3: Pazar 04:00 geçici dosya temizliği

Dakika: 0  Saat: 4  Gün: *  Ay: *  Hafta: 0
find /home/USER/tmp -type f -mtime +7 -delete

SSH ile Cron Yönetimi

Panel dışında da aynı kullanıcı crontab'ını düzenleyebilirsiniz. Değişiklikler genelde panele yansır.

crontab -l
crontab -e
crontab -l > crontab-yedek.txt

Ayrıntılı Linux komutları için Linux cron job rehberine bakın. İş çalışmıyorsa cron job çalışmıyor kontrol listesini izleyin.

Sık Hatalar ve Çözümleri

1. /bin/sh: 1: php: not found veya No such file or directory

Neden: PATH'te php yok veya yol yanlış.
Çözüm: which php ile bulunan tam yolu Command alanına yazın (/usr/local/bin/php vb.).

2. Could not open input file: .../cron.php

Neden: cPanel tarzı yol veya yanlış domain klasörü.
Çözüm: File Manager'dan tam yolu kopyalayın: /home/KULLANICI/domains/alanadi.com/public_html/...

3. Permission denied

Neden: Script çalıştırma izni yok veya log dizini yazılamıyor.
Çözüm: Script için en az çalıştırma izni (ör. 755); log klasörünü oluşturup yazılabilir yapın.

4. Görev eklenemiyor / Create düğmesi yok

Neden: Hosting cron özelliğini kapatmış veya kota dolmuş.
Çözüm: Sağlayıcıya sorun. URL tetiklenebilen işlerde aşağıdaki HTTP alternatifini kullanın.

5. Her çalışmada onlarca e-posta

Neden: stdout üretiliyor ve e-posta yönlendirmesi açık.
Çözüm: >/dev/null 2>&1 veya >> log; Send all Cron output to E-Mail alanını gözden geçirin.

cronjob.com.tr ile HTTP Tabanlı Alternatif

Panelde cron kapalıysa, kota dolduysa veya her dakika ihtiyacınız varsa ve işiniz genel internetten erişilen bir HTTPS URL ise cronjob.com.tr dışarıdan tetikler. Ücretsizdir; kayıtta kredi kartı istenmez. En kısa aralık 1 dakikadır; GET/POST, özel header ve HTTP Basic Auth desteklenir.

<?php
// public_html/cron.php
declare(strict_types=1);
$beklenen = getenv('CRON_SECRET') ?: '';
$gelen = $_SERVER['HTTP_X_CRON_TOKEN'] ?? '';
if ($beklenen === '' || !hash_equals($beklenen, $gelen)) {
    http_response_code(403);
    exit('forbidden');
}
// iş mantığı
http_response_code(200);
header('Content-Type: text/plain; charset=utf-8');
echo 'ok';

Panelde URL, metot, X-Cron-Token header'ı ve zamanlamayı tanımlayın. Başarı: HTTP 200–399. Timeout aralığa göre (1 dk→55 sn; cron ifadeli→290 sn). Ardışık hata eşiğinde e-posta; loglar 7 gün tutulur. TLS doğrulanır; localhost ve özel IP'ye istek atılmaz.

Sıkça Sorulan Sorular (SSS)

DirectAdmin'de kaç cron job oluşturabiliyorum?

Limit hosting planına ve yönetici panelindeki kullanıcı kotasına bağlıdır. VPS ve dedicated sunucularda genelde sınır yoktur; paylaşımlı planda iş sayısı veya en kısa aralık kısıtlanabilir.

DirectAdmin'de cron loglarını nasıl görürüm?

Panelde ayrıntılı cron log arayüzü yoktur. Komut çıktısını log dosyasına yönlendirin veya SSH ile /var/log/cron ya da /var/log/syslog dosyasına bakın. Çıktı yönlendirilmezse e-posta hesabınıza gönderilir.

DirectAdmin Evolution ve eski tema farkı nedir?

Cron işlevselliği aynıdır; menü adı ve düğme metinleri (Create / Add) temaya göre değişebilir. Advanced Features altında Cron Jobs menüsünü arayın.

cPanel yolu DirectAdmin'de neden çalışmaz?

DirectAdmin web kökü /home/KULLANICI/domains/alanadi.com/public_html/ şeklindedir. /home/KULLANICI/public_html/ bazı kurulumlarda ana domaine bağlantı olabilir; diğer domainlerde doğru dosyayı göstermeyebilir.

Cron her çalıştığında e-posta geliyor, nasıl keserim?

Komutun sonuna >/dev/null 2>&1 ekleyin veya çıktıyı log dosyasına yönlendirin. Panelde Send all Cron output to E-Mail alanını da kontrol edin.

Sonuç

DirectAdmin'de sağlam bir cron: doğru domain yolu, mutlak PHP/bash yolu, bilinçli e-posta/log yönetimi ve kayıttan önce Terminal testi demektir. Limit veya erişim sorunu yaşarsanız HTTPS uç noktasını cronjob.com.tr ile zamanlayabilirsiniz.

Hemen Ücretsiz Cron Job Oluşturun

DirectAdmin hesabınızda cron kotası dolduysa ya da dakikalık aralık izni yoksa, cron.php uç noktanızı X-Cron-Token başlığıyla koruyup cronjob.com.tr'den tetikleyebilirsiniz; en kısa aralık 1 dakikadır ve loglar 7 gün saklanır.

Ücretsiz Başla →

İlgili Rehberler