Merhabalar, bu yazımda Cron Job Nedir? ona bakacağız. Bazen, siteniz için zamanlanmış bir görev oluşturma ihtiyacıyla karşılaşabilirsiniz. Örneğin belirli bir zamanda çalışması için bir arka plan programı gerekebilir.
Başlamadan önce Discord sunucuma katılmayı unutmayın. :D
Cron Job Nedir?
Crontab adlı komut satırı programı kullanılarak oluşturulan Cron işleri, web sitenizin Linux veya BSD’lerden biri gibi Unix tipi bir web sunucusunda barındırılmasını gerektirir. Web sunucusu Windows ise CRON JOB kullanamazsınız. Ayrıca telnet veya SSH kullanarak web sunucunuza bağlanabilmeniz gerekir. Alternatif olarak, web barındırıcınız, kontrol panellerini kullanarak crontab görevlerini ayarlamanız için bir yol sağlamalıdır.
Genellikle CPanel kullanan hostingerlerde CRON JOB oluştma uygulaması oluyor.
Croıb Job Parametreleri
CRON JOB oluşturma temel düzeyde job’lar için çok zor değildir ki bize zaten belirli bir zamanda çalışan job’lar gerekiyor. Kullanacağımız parametleler aşağıdaki tablodaki gibidir.
- Dakika: 0 ile 59 arası
- Saat: 0 ile 23 arası
- Gün: 1 ile 31 arası
- Ay: 1 ile 12 arası
- Günler: 0 ile 7 arası (0 ile 7 aynı günü temsil ediyor.)
Bir komutun sabah 05:30 da çalışmasını istiyorsanız yazacağını komut şöyle olmalıdır.
30 5
Bir komutun akşam 20:00 da çalışmasını istiyorsanız yazacağını komut şöyle olmalıdır.
0 20
5 Ocak saat 09:15 bir komut çalıştırmak istiyorsanız….
15 9 5 1
Eğer belirli zaman aralıklarında sürekli çalışan komut hazırlamak istiyorsanız o zaman joker karakter yani yıldız ( * ) kullanmak zorundasınız.
Belirli bir programın, örneğin her gün sabah 10.45’te çalışmasını istiyorsanız, cron programının zaman kısmı şöyle olmalıdır.
45 10 * * *
Bir işin saat başı çalışmasını istiyorsanız, crontab satırının zaman bileşenini şöyle ayarlamanız gerekir.
0 * * * *
Bir şeyin iki saatte bir çalışmasını istiyorsanız, alanınızdaki eğik çizgi “/” karakterini kullanmanız gerekecektir. Eğik çizgi karakteri “adım” karakteridir.
İki saatlik bir program olması durumunda, cron dosyanızın zaman bileşeniniz şöyle olmalıdır:
0 */2 * * *
3 saatte bir olmasını isterseniz /3 yapmalısınız.
Belirli bir komutun yalnızca her ayın 1’inde ve 20’sinde sabah saat 8.00’de çalışmasını istiyorsanız, saati şu şekilde kodlamanız gerekir:
0 8 1,20 * *
Virgül “,” “ve” anlamına gelir. Yukarıdaki satır kafanız karıştıysa, boşlukların virgül değil, alan ayırıcıları olduğunu unutmayın.
4 ve 5 Haziran (6) ve her Pazar (7) sabah saat 3:02’de programınızı çalıştırın:
2 3 4,5 6 7
Komut Çalıştırmak
Programın komut satırından yürütmeye bölümü, temel olarak, belirtilen zamanda çalıştırmak istediğiniz komuttur. Örneğin, her gün saat 11.30’da çalıştırmak istediğiniz “whatever.pl” adında bir Perl betiğiniz varsa, crontab programınız aşağıdaki gibi olabilir:
30 11 * * * /your/directory/whatever.pl
Komut dosyası, “cron.php” gibi bir web tarayıcısından çağrılması gerekiyorsa, “wget” adlı bir komut kullanmanız gerekecektir. wget gerçekten bir tarayıcı değildir ama web sunucusunun “cron.php” yi çalıştırır.
30 11 * * * /usr/bin/wget http://www.example.com/cron.php
Eğer çalıştırmak istediğiniz PHP betiğini bir klasör yolu üzerinden çağıracaksanız, komut dosyasını aşağıdaki gibi çağırmalısınız. URL için wget gerekirken, dosya yolından çağırmak için php klasörünün yolu gerekir.
30 11 * * * /usr/local/bin/php /your/directory/whatever.php
NOT: Buradaki yollar sizin sunucunuza göre değişiklik gösterebilir. Yukarıdaki ifadeler örnek teşkil etmesi açısından yazılmıştır. Bir Cron JOB hazırlamadan önce mutlaka hosting firmanız ile iletişime geçmelisiniz. Ne yaptığınızı bilmiyorsanız Onlardan yardım alın…
Eğer komutlarınızda çıkan hataları ve geri dönüşleri yakalamak istiyorsanız “ > ” karakterini kullanarak bir dosya yolu daha belirtmelisiniz.
30 11 * * * /usr/local/bin/php /your/directory/whatever.php >/your/directory/cronret.txt
NOT: Oluşturduğunuz komutlar kesinlikle tek satır olmalıdır. Aksi halde çalışmayacakladır.
Az önce söylemiştim ama tekrar etmekte fayda görüyorum. Hosting firmanızdan yardım alarak bu işlemleri yapmanızı tavsiye ederim. Çünkü bu direk sizin sunucunuz ile ilgilidir. Yani fazla ve gereksiz cron job ‘lar sitenizi hatta hosting’inize bağlı olan tüm siteleri etkiler. Benden söylemesi. :D
Cron Job Nedir? yazımda bu kadardı arkadaşlar. Diğer yazılarda görüşmek üzere….
PHP ve WORDPRESS konularındaki diğer yazılarım için bağlantıya tıklayabilirsiniz. Discord sunucuma katılmayı unutmayın. :D