Web Siteleri
Cron İşlerini Ayarlama ve Yönetme
A cron job runs a command on a schedule, in the background, whether or not anyone is visiting your site. This guide covers adding one in KPanel, writing the schedule and the command correctly for…
Cron İşleri Ayarlama ve Yönetme
Bir cron işi, sitenizi ziyaret eden olup olmadığına bakılmaksızın, arka planda zamanlanmış şekilde bir komutu çalıştırır. Bu kılavuz KPanel'de bir cron işi eklemeyi, bu platform için zamanlamayı ve komutu doğru şekilde yazmayı, WordPress'in güvenilmez yerleşik zamanlayıcısını değiştirmeyi ve bir işin beklenildiği gibi davranmadığında çıktıyı bulmayı kapsar.
Cron KPanel'de Nerede Bulunur
Cron bir siteye ait olduğundan, ana menüden değil sitenin kendisinden erişirsiniz:
- KPanel oturumu açın ve sol kenar çubuğunda Websites (Web Siteleri) seçeneğine tıklayın.
- İstediğiniz siteye tıklayın.
- Sitenin kendi menüsünde Advanced (Gelişmiş) seçeneğini açın, ardından Cron seçeneğini açın.
Doğrudan adres /websites/<site-id>/cron şeklindedir. Mevcut işlerin bir tablosunu veya sitenin hiç işi yoksa boş bir durumunu göreceksiniz.

İş Ekleme
Sağ üst köşedeki Add Cron Job (Cron İşi Ekle) seçeneğine tıklayın. Formun üç alanı vardır.
Zamanlama
Altı hazır düğme ifadeyi sizin için doldurur:
| Düğme | İfade |
|---|---|
| Her dakika | * * * * * |
| Her 5 dakika | */5 * * * * |
| Her saat | 0 * * * * |
| Günlük 02:00 | 0 2 * * * |
| Haftalık Pazar | 0 2 * * 0 |
| Aylık 1. gün | 0 2 1 * * |
Ya da Cron expression (Cron İfadesi) alanına kendi ifadenizi yazın. Beş alan sırasıyla dakika, saat, ayın günü, ay, haftanın günüdür:
minute hour day-of-month month day-of-week
0 3 * * *her gün saat 03:00'te çalışır.*/15 * * * *her on beş dakikada bir çalışır.0 9 * * 1her Pazartesi saat 09:00'te çalışır.30 1 1 * *ayın ilk günü saat 01:30'da çalışır.0 */6 * * *saatçe her altı saatte bir çalışır.
Etiket
Daha sonra tanıyabileceğiniz bir ad, örneğin WordPress cron veya Nightly stock sync. İşler tablosunun gösterdiği şey budur, bu yüzden açıklayıcı yapın: job 3 saat 02:00'de kimseye yardımcı olmaz.
Komut
Çalıştırılacak kabuk komutu. Save (Kaydet) seçeneğine tıklayarak işi oluşturun.
Tam yolları kullanın. Cron minimal bir ortamla çalışır ve kabuk profilinizin hiçbirini içermez, bu nedenle SSH üzerinden oturum açtığınızda işe yarayan basit bir php veya göreli dizin burada sessizce başarısız olacaktır. Her seferinde tam yolu yazın.
Komutu Yazma
İşler sitenizin kendi sistem kullanıcısı olarak çalışır, bu nedenle ana dizin doğru bir başlangıç noktasıdır ve ~ doğru şekilde çözümlenir. Sitenizin dosyaları şu adreste bulunur:
~/htdocs/yourdomain.co.nz
Sitenin Files (Dosyalar) seçeneğine tıklayarak ve ardından SFTP sekmesini açarak tam yolu doğrulayabilirsiniz; bu, Site files (Site dosyaları) altında yazdırılacaktır.
Tipik komutlar:
cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now
cd ~/htdocs/yourdomain.co.nz && /usr/bin/php bin/send-queued-emails.php
/usr/bin/curl -fsS https://yourdomain.co.nz/api/nightly-report
Komutu zamanlamadan önce test edin. Eğer bir wp komutu ise sitenin WordPress seçeneğine, ardından Console (Konsol) bölümüne yapıştırın veya SSH üzerinden çalıştırın. Çalışması asla gerçekleşmeyecek bir işi, saat 03:00'te bir günlük dosyada görmekten çok istemde görmek daha kolaydır.
WordPress'in Yerleşik Zamanlayıcısını Değiştirme
WordPress, yalnızca birisi bir sayfayı yüklediğinde ateşlenen kendi sözde zamanlayıcısı olan WP-Cron ile birlikte gelir. Sessiz bir sitede, zamanlanmış yazılar geç yayımlanır ve e-postalar gönderimsiz kuyrukta kalır. Meşgul bir sitede, her ziyaretçi zamanlamayı kontrol etme maliyetini öder.
Gerçek bir cron işi her ikisini de düzeltir. KPanel bunu tamamen sizin için yapar:
- Siteyi açın, ardından WordPress sekmesini açın.
- WP-Cron bölümünü açın.
- Enable system cron (Sistem cron'u etkinleştir) seçeneğine tıklayın.
Bu, her beş dakikada bir WP-Cron'u çalıştıran bir zamanlama ekler ve DISABLE_WP_CRON ayarını yapar, böylece sayfa yüklemeleri onu tetiklemeyi bırakır. Aynı ekrandaki Remove system cron (Sistem cron'u kaldır) her iki yarıyı da geri alır.
Bunu manuel olarak yapmayı tercih ederseniz, iki adımlık bir işlemdir:
Ziyaretçi tarafından tetiklenen sürümü devre dışı bırakın. Files (Dosyalar) seçeneğine, ardından File Manager (Dosya Yöneticisi) seçeneğine kullanarak wp-config.php dosyasına, /* That's all, stop editing! */ satırının üstüne bunu ekleyin:
define( 'DISABLE_WP_CRON', true );
Gerçek işi ekleyin. Advanced (Gelişmiş) seçeneğine, ardından Cron seçeneğine tıklayın:
- Zamanlama:
*/5 * * * * - Etiket:
WordPress cron - Komut:
cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now
DISABLE_WP_CRON yarısını atlamayın. Her ikisi de çalışırken, zamanlanmış her görev iki kez ateşlenebilir: yinelenen e-postalar, yinelenen sipariş işleme, abonelik eklentisinde yinelenen ücretler. WP-Cron bölümündeki tek tıklamalı işlemi kullanın ve bu size asla olamaz.
WooCommerce ve Arka Plan Kuyrukları
WooCommerce, sipariş durumu değişiklikleri, abonelik yenilemeleri, e-postalar ve stok güncellemeleri için bir arka plan kuyruğu kullanır. WP-Cron'a bağlıdır, bu nedenle sessiz bir mağazada ıstırap çeken tam iş yüküdür.
Gerçek zamanlama yerleştirildikten sonra, kuyruk her beş dakikada işlenir. Bunu wp-admin'de WooCommerce, ardından Status (Durum), ardından Scheduled Actions (Zamanlanmış İşlemler) seçeneğinde izleyin.
Yüksek hacimli bir mağaza */2 * * * * seçeneğine taşınabilir. Aşağısına gitmek nadiren yardımcı olur: işleri başlatmak için iş yapmaktan daha fazla zaman harcarsınız. Setting Up WooCommerce seçeneğine bakın.
Mevcut İşleri Yönetme
İşler tablosu Label (Etiket), Schedule (Zamanlama), Command (Komut), Last run (Son çalıştırma) ve Status (Durum) seçeneklerini gösterir; her satırda iki işlem vardır:
- Disable (Devre Dışı Bırak) bir işi silmeden duraklatır ve geri getirmek için Enable (Etkinleştir) seçeneğine dönüşür. Bunu, bir işin soruna neden olup olmadığını test ederken kullanın.
- Delete (Sil) kalıcı olarak kaldırır. Onay istenir ve zamanlanmış çalıştırmalar hemen durdurulur.
Bir cron işini silmek geri alınamaz. Zamanlama orada ve sonra sunucudan kaldırılır. Yalnızca geçici olarak durdurmaya çalışıyorsanız, Disable (Devre Dışı Bırak) seçeneğini kullanın.
Çıktıyı Bulma
Kapsule'nin oluşturduğu her işin çıktısı sizin için yakalanır. Standart çıktı ve hatalar, site kullanıcısının ana dizinindeki bir cron-logs dizininde bir günlük dosyasına eklenir; iş başına bir dosya.
Bu günlük, neredeyse her "işim çalıştı mı?" sorusunun cevabıdır, çünkü komutun yazdırdığını ve yükselttiği herhangi bir hatayı kaydeder.
Bunu okumak için SSH üzerinden bağlayın ve ~/cron-logs/ dizininde bakın. SSH anahtar kimlik doğrulaması kullanır, bu yüzden önce sitenin Files (Dosyalar) seçeneğinden, ardından SSH Keys (SSH Anahtarları) sekmesinden genel anahtarınızı ekleyin: Adding SSH Keys seçeneğine bakın.
Dosya Yöneticisi ve SFTP hesapları site dizininizle sınırlıdır, ~/htdocs/yourdomain.co.nz ve cron-logs bir seviye üstünde bulunur. Bu kasıtlıdır: SFTP erişimi olan bir yüklenicinin web sitesi dışında her şeyin dışında kalmasını sağlar. Günlüklere ulaşmak için yerel SSH'yi kullanın veya aşağıda gösterildiği gibi çıktıyı site dizininize yönlendirin.
Çıktıyı Dosya Yöneticisinin açabileceği bir yerde tutmayı tercih ederseniz, bunu kendiniz yönlendirin:
cd ~/htdocs/yourdomain.co.nz && /usr/bin/wp cron event run --due-now >> ~/htdocs/yourdomain.co.nz/wp-content/cron.log 2>&1
2>&1 hataları normal çıktıyla aynı dosyaya gönderir. Olmadan, hatalar hiçbir yere gitmez.
Site dizininiz içindeki herhangi bir şey potansiyel olarak web üzerinden istenebilir. Yönlendirilmiş günlüğü site kökünün yerine wp-content altına koyun, kimsenin tahmin etmeyeceği bir ad verin ve hata ayıklamayı tamamladıktan sonra silin.
İyi Uygulama
- Zamanlamalarınızı şaşırtan. Altı işin tümü
0 2 * * *olarak ayarlanmışsa, hepsi aynı anda başlar. Bunları yayın:0 2,10 2,20 2. - Her dakika kullanmayın, eğer gerçekten ihtiyacınız yoksa.
*/5WordPress ve WooCommerce dahil olmak üzere neredeyse her şey için yeterlidir. - İşleri kısa tutun. Aralığından daha uzun süren bir işin bir sonraki çalıştırmayla çakışması olacaktır.
- Gürültülü herhangi bir şey için çıktıyı yönlendirin, böylece bir konuşkan işin diskinizi doldurmaz.
- Listeyi ara sıra gözden geçirin. Kaldırdığınız bir eklentiden kalan işler çalışmaya devam eder.
Sorun Giderme
İş asla çalışmıyor gibi görünüyor. Yolu ilk olarak kontrol edin. Günlük dosyasını açın. Ardından durumun Active (Etkin) olduğunu ve Disabled (Devre Dışı) olmadığını doğrulayın. Ardından SSH üzerinden aynı komutu çalıştırın ve ne dediğini görmek için bakın.
Günlükte "command not found" (komut bulunamadı). Tam yol eksik. Basit ad yerine /usr/bin/php, /usr/bin/wp, /usr/bin/curl kullanın.
İzin reddedildi. İş sitenizin sistem kullanıcısı olarak çalışır. Bu kullanıcı, komutun dokunduğu her şeye sahip olması veya en azından okuyabilmesi gerekir. Using the File Manager seçeneğinde izinleri kontrol edin.
WordPress görevleri hala geç çalışıyor. Takas işleminin her iki yarısının da yerinde olduğunu doğrulayın: zamanlama Advanced (Gelişmiş) seçeneğinde, ardından Cron seçeneğinde bulunur ve DISABLE_WP_CRON ayarlanır. WordPress sekmesindeki WP-Cron bölümü her ikisinin de mevcut durumunu gösterir.
İş çalışırken site yavaş. İşi daha sessiz bir saate taşıyın veya işi daha küçük gruplara bölün. Site düzeyindeki kaynak kullanımı Performance (Performans) altında görünür: Improving Website Speed seçeneğine bakın.
Bir işin eklenti güncellemesinden sonra çalışması durdu. Komut yolu değişmiş olabilir. Günlüğü kontrol edin, ardından eski işi silerek ve düzeltilen bir iş ekleyerek komutu işler tablosundan güncelleyin.