VPS

Cron Job Nedir? Acemiler için Kapsamlı Rehber

Bir şeyleri yapmanın her zaman daha pratik yolu vardır. Tekrarlanan görevleri otomasyonlu biçimde halletmek birçok meşgul webmaster tarafından tercih edilmektedir.

Bu makalede cron job nedir, cron job temellerini ve görevleri planlamak için nasıl kullanacağınızı öğreneceksiniz.

Cron Job Nedir?

Cron bir görevi ilerleyen bir zamanda tekrarlamak için kullanılan bir programdır. Belirli bir görevi belirli bir zamanda tekrarlamak için komut verme eylemiyse bir cron job’dır.

Cron job nasıl çalışır:

Eğer bir görevi ilerleyen bir zamanda bir kereliğine planlamak istiyorsanız onun gibi başka bir komut kullanabilirsiniz. Ancak tekrarlanan görevler için cron harika bir çözümdür.

Cron bir daemon‘dır yani Cron interaktif olmayan görevleri yürütmek için arkaplanda çalışır. Windows’de Hizmetler gibi arkaplan işlemlerini mutlaka duymuşsunuzdur.

Bir daemon daima bekleme modundadır. Yani bu modda, bilgisayardaki veya ağdaki herhangi bir başka bir bilgisayardan belirli bir görevi yapmak için komut isteği bekler.

Bir cron dosyası belirli bir zamanda çalışacak komutları içeren basit bir metin dosyasıdır. Varsayılan crontab dosyasıysa /etc/crontab‘dır ve bir crontab dizininde /etc/cron.*/ konumlandırılmıştır. Sadece sistem yöneticileri crontab dosyasını düzenleyebilir.

Ancak Unix benzeri işletim sistemleri birden çok kullanıcıları desteklediğinden her biri kendi crontab dosyasını oluşturabilir ve istedikleri zaman görevlerin yapılması için komutları çalıştırabilirler. Bir cron daemon’ı dosyası kontrol edecek ve sistem arkaplanında komutu çalıştıracaktır.

Cron job’lar ile sistem bakımını otomatikleştirebilir, disk alanını izleyebilir ve yedekler planlayabilirsiniz. Doğasından dolayı cron job’lar 7/24 çalışan bir bilgisayar, yani bir sunucu için harikadır.

Unutmayın ki cron joblar çoğunlukla sistem yöneticileri tarafından kullanılıyor olsalar da web geliştiriciler için de inanılmaz kullanışlılardır. Örneğin, süresi dolmuş bir hesabı etkisizleştirmek için kırık linkleri kontrol edebilir veya hedeflenen kullanıcılara bültenler bile yollayabilirsiniz.

Cron Job Temelleri

Basitçe, birkaç farklı yöntem kullanarak cron job yaratabilir ve düzenleyebilirsiniz. Bu rehberde size Linux Shell Prompt (Terminal) yötemiyle nasıl yapılır göstereceğiz.

Eğer Hostinger’da VPS sunucusuna sahipseniz giriş bilgilerinizi VPS yönetim sekmenizde bulabilir ve sunucunuza SSH üzerinden erişebilirsiniz. Eğer bu konuda sorun yaşıyorsanız PuTTY SSH rehberimize göz atabilirsiniz.

İşte bazı cron job ile yapabileceğiniz bazı basit işlemler:

Eğer mevcut kullanıcının bir crontab dosyasını düzenlemek istiyorsanız terminalinizde crontab -e komutunu çalıştırın:

Cron Job komut satırı

Böyle bir sonuç elde edersiniz.

Cron Job crontab -e sonucu

vi editor kullanıldığından dolayı doğru işlemi yaptığınızdan emin olmak için temel vi komutlarını öğrenebilirsiniz.

Eğer başka bir kullanıcın crontab’ini düzenlemek istiyorsanız crontab -u username -e komutunu kullanabilirsiniz. Unutmayın ki bunu sadece bir superuser olarak yapabilirsiniz. Yani, bunun için yukarıdaki komuttan önce sudo su yazmanız gerekmektedir.

Cron Job crontab -u username -e sonucu

Herhangi bir crontab dosyasının oluşturulup oluşturulmadığını da kontrol edebilirsiniz. Tek yapmanız gereken crontab -l komutunu girmektir. Eğer oluşturulmadıysa göreceğiniz sonuç budur.

Cron Job crontab -l sonucu

Ek olarak eğer diğer kullanıcıların crontab dosyası listelerini görmek istiyorsanız superuser olarak crontab -u username -l komutunu girebilirsiniz.

Cron Job crontab -u username -l sonucu

Temel işlemleri bilmenin dışında temel söz dizimini bilmek de önemlidir.

Basitçe, bir crontab dosyası iki kısımdan oluşur: planlama zamanlayıcı ve komut. İşte komut bu şekilde yazılır:

* * * * * /bin/sh backup.sh
  • ***** /bin/sh backup.sh cronjob her dakikada bir yedek yaratacağı anlamına gelir.
  • 30 18 * * * rm /home/sydtesting/tmp/* ise tmp dosyalarını /home/sydtesting/tmp konumundan her gün 18:30’da silecektir.

Hadi biraz daha detaylara girelim.

Cron Söz Dizimi Nasıl Yazılır

Daha önce de belirttiğimiz gibi bir crontab dosyası tekrarlanacak bir görevin tarihini ve saatini belirlemek için beş alana sahiptir. Her alan bir yıldız işareti tarafından temsil edilir.

Crontab dosyasının beş alanı

  • Minute (Dakika) — komutun çalışacağı saatin dakikası 0-59 arası
  • Hour (Saat) — komutun hangi saatte çalışacağı 0-23 arası
  • Day of the month (Ay günü) — ayın hangi gününde komutun çalışacağı, 1-31 arası
  • Month (Ay) — komutun hangi ayda çalışacağı, 1-12 arası
  • Day of the week (Haftanın günü) — komutun haftanın hangi gününde çalışacağı, 0-7 arası

Buna ek olarak her crontab dosyasında doğru karakterleri kullanmanız gerekir.

  • Yıldız işareti (*) — bütün planlama parametlerini tanımlamak için.
  • Virgül (,) — tek bir komutun iki ya da daha fazla kere çalıştırılmasını sürdürmek için.
  • Tire (-) — tek bir komutun çalıştırılma sayısını ayarlarken zaman aralığını belirlemek için.
  • Bölme işareti (/) — belirli bir aralıkta önceden belirlenmiş sıklığı oluşturmak için.
  • Last (Son) (L) — belirli bir aydaki haftanın son gününü belirlemek içindir. Örneğin, 3L son Çarşamba anlamına gelir.
  • Weekday (Hafta içi) (W) — belirlenen bir zamana en yakın hafta içi gününü belirlemek için. Örneğin, eğer 1W birincinin Cumartesi olduğu anlamına geliyorsa komut Pazartesi gününde çalışacaktır (3.)
  • Hash (#) — 1-5 arasından bir rakamdan sonra gelir ve haftanın gününü belirler. Örneğin 1#2 ikinci Pazartesi anlamına gelir.
  • Soru işareti (?) — boşluk bırakmak için.

11 Cron Söz Dizimi Örneği

Cron söz dizimini düzgün biçimde yazmayı öğrendiğinize göre yukarıda belirtiğimiz kuralları daha iyi anlamanız için size bazı örnekler sunacağız.

İlerlemeden önce komutun sonucunun otomatik olarak yerel eposta hesabınıza yollanacağını unutmayın. Eğer bu epostaları almak istemiyorsanız söz dizimine aşağıdaki gibi >/dev/null 2>&1 ekleyebilirsiniz:

0 5 * * * /root/backup.sh >/dev/null 2>&1

Bunun dışında, eğer eposta sonucunu belirli bir hesaba yollamak istiyorsanız eposta adresinden MAILTO ekleyebilirsiniz. İşte bir örnek:

MAILTO="adim@hostinger.com"
0 3 * * * /root/backup.sh >/dev/null 2>&1

İşte daha fazla söz dizimi örneği:

Söz dizimiAnlamı
0 0 * * * /bin/sh backup.shHer gece yarısı veritabanı yedeği almak için
0 6,18 * * * /bin/sh backup.shGünde iki defa 06:00 ve 18:00 saatlerinde veritabanı yedeği almak için
0 */6 * * * /scripts/monitor.shHer altı saatte bir takip etmek için
*/10 * * * * /home/user/script.shHer 10 dakikada bir ana dizindeki script dosyası için bir cron job uygulamak için
0 * 20 7 * /bin/sh backup.shHer Temmuz 20 tarihinde saatlik yedek almak için
0 0 * * 2 * /bin/shHer Salı günü gece yarısında veritabanı yedeği almak için
* * * 1,2,5 *  /script/script.shOcak, Şubat ve Mayıs aylarında bir komut çalıştırmak için
10-59/5 5 * * * /home/user/script.shSaat 05:00’de 05:10’dan başlamak üzere her 5 dakikada bir komut çalıştırmak için
0 8 1 */3 * /home/user/script.shÜç ayda bir ilk günde saat 08:00’de bir komut çalıştırmak için
* * * * * /scripts/script.sh; /scripts/scrit2.shTek bir cron job’da birden çok görev çalıştırmak için planlama belirleme
@reboot /scripts/script.shSistemi her başlattığınızda belirli bir görev yapmak için

Sonuç

Otomatik olarak planan bir görev oluşturmak hem pratik olacaktır, hem de zamanında yapılacak eylemi unutmamanızı sağlayacaktır.

Cron Job, hem sistem yöneticileri, hem de web geliştirici gibiler için görevleri yönetmek için harikadır. Tek yapmanız gereken doğru komutu kullanmak ve doğru zamanı seçmektir.

İşte bazı basit komutlar:

  • crontab -e — bir crontab dosyası oluşturmak ve düzenlemek için
  • crontab -u username -e — başka bir kullanıcının crontab dosyasını superaccess yetkisiyle düzenlemek için
  • crontab -l — mevcut kullanıcıların crontab dosyası listelerini görüntülemek için
  • crontab -u username -l — başka kullanıcıların crontab dosyaları listelerini görüntülemek için

Komutları bilmek kadar doğru karakterleri anlamak da istediğiniz planın zamanını belirlemenize yardımcı olacaktır:

  • Yıldız işareti (*) — bütün parametreleri tanımlamak için
  • Virgül (,) — tek bir komutun birden fazla çalıştırılabilmesi için
  • Tire (-) — bir zaman aralığı belirlemek için
  • Kesme işareti (/) — bir aralıkta belirli sıklıkları oluşturmak için
  • Last (Son) (L) — haftanın son gününü belirlemek için
  • Weekday (Hafta içi) (W) — en yakın hafta içi gününü belirlemek için
  • Hash (#) — belirli rakamlar kullanarak haftanın belirli bir gününü belirlemek için
  • Soru işareti (?) — boşluk bırakmak için

Cron Job nedir öğrendiğinize göre artık istediğiniz zaman otomasyonun sizin için çalışmasını sağlayabilirsiniz! Düşüncelerinizi ve yorumlarınızı aşağıdaki yorumlar kısmında bizimle paylaşmayı unutmayın!

İyi şanslar!

Yazar hakkında

Gökhan O.

Gökhan Hostinger'da Pazarlama Asistanı olarak çalışmakta. WordPress hakkındaki tecrübe ve bilgisini bu blogda paylaşıyor. Çeviri yapmak, içerik yönetmek ve de SEO optimizasyonu yapmaktan büyük keyif alır. Hobileri arasında oyun oynamak ve futbol maçları izlemek vardır.

Yorum Ekle

Yorum göndermek için buraya tıklayın

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Dünya çapında binlerce aboneye katılın

ve mükemmel fırsatlarla en yeni rehberler e-posta adresinize gelsin

Please wait...

Abone olduğunuz için teşekkürler!

Şimdi kazanmaya başlayın!

Hepsi bir arada web hosting & alan adı yalnızca

9
39 TL
/ay