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

https://kervanhosting.com/bilgi-bankasi/makale/hosting-cron-gorevi-ekleme-php-betigi-zamanlama

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](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-cron-wp-cron-php-gercek-cron-ile-degistirme).
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](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir). Windows için: [Görev Zamanlayıcı](https://kervanhosting.com/bilgi-bankasi/makale/windows-sunucuda-gorev-zamanlayici-ile-program-ve-betik-calistirma). Paketlerimiz: [Web Hosting](https://kervanhosting.com/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**

- [Zamanlanmış görev (cron) nasıl eklenir?](https://kervanhosting.com/bilgi-bankasi/makale/zamanlanmis-gorev-cron-nasil-eklenir)
- [WordPress wp-cron.php: zamanlanmış görevler çalışmıyor ya da sunucuyu yoruyor](https://kervanhosting.com/bilgi-bankasi/makale/wordpress-cron-wp-cron-php-gercek-cron-ile-degistirme)
- [Hosting paneline nasıl girerim? Panel bilgilerim nerede?](https://kervanhosting.com/bilgi-bankasi/makale/hosting-paneline-nasil-girerim-panel-bilgilerim-nerede)

*Sorununuz çözülmediyse [destek talebi açın](https://kervanhosting.com/destek-taleplerim). Hangi adımı denediğinizi ve ekranda ne gördüğünüzü yazarsanız çözüm çok daha hızlı olur.*
