1. Anasayfa
  2. Rehber

Cron Job Nedir? Acemiler için Kapsamlı Rehber

Cron Job Nedir? Acemiler için Kapsamlı Rehber
0

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. Unix gibi bir işletim sistemi kullanıyorsanız cron job görevleri otomatik yaparak size zamandan epey tasarruf ettirebilir.

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?

Jivo Chat Reklam

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 job’lar ç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.

Click here to preview your posts with PRO themes ››

Cron Job Temelleri

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 Hosting’de VPS sunucusuna sahipseniz giriş bilgilerinizi VPS yönetim sekmenizde bulabilir ve sunucunuza SSH üzerinden erişebilirsiniz.

İş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 Nedir? Acemiler için Kapsamlı Rehber

Böyle bir sonuç elde edersiniz.

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.

Geçerli kullanıcı iken mevcut crontab dosyasını kaldırmak istiyorsanız

crontab -r

kodunu kullanabilirsiniz.

crontab -i

kodu da ayı işlemi yapar ancak crontab’ı kaldırmadan önce kullanıcıya bir yes/no (Evet/Hayır) sorusu yöneltir.

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.

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.

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’un 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.

Click here to preview your posts with PRO themes ››

  • 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.

12 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 e-posta hesabınıza yollanacağını unutmayın. Eğer bu e-postaları 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 e-posta sonucunu belirli bir hesaba yollamak istiyorsanız e-posta adresinden MAILTO ekleyebilirsiniz. İşte bir örnek:

MAILTO=[email protected]
0 3 * * * /root/backup.sh >/dev/null 2>&1

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

Söz dizimi Anlamı
0 0 * * * /bin/sh backup.sh Her gece yarısı veritabanı yedeği almak için
0 6,18 * * * /bin/sh backup.sh Günde iki defa 06:00 ve 18:00 saatlerinde veritabanı yedeği almak için
0 */6 * * * /scripts/monitor.sh Her altı saatte bir takip etmek için
*/10 * * * * /home/user/script.sh Her 10 dakikada bir ana dizindeki script dosyası için bir cron job uygulamak için
0 * 20 7 * /bin/sh backup.sh Her Temmuz 20 tarihinde saatlik yedek almak için
0 0 * * 2 * /bin/sh Her Salı günü gece yarısında veritabanı yedeği almak için
* * * 1,2,5 *  /script/script.sh Ocak, Şubat ve Mayıs aylarında bir komut çalıştırmak için
10-59/5 5 * * * /home/user/script.sh Saat 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.sh Tek bir cron job’da birden çok görev çalıştırmak için planlama belirleme
@reboot /scripts/script.sh Sistemi her başlattığınızda belirli bir görev yapmak için
0 0 1 * * /home/user/script.sh Her ayın ilk günü bir görev çalıştırmak için

Click here to preview your posts with PRO themes ››

Cron İzinleri

Konu Cron job olduğunda iki dosta önemli rol oynar.

  • /etc/cron.allow – Şayet cron.allow mevcutsa, kullanıcının cron job kullanabilmesi için kullanıcı adını içermesi gerekir.
  • /etc/cron.deny – Şayet cron.allow dosyası yoksa ama cron.deny dosyası varsa, o zaman kullanıcı cron.deny dosyasında olmamalıdır.

Sonuç

Otomatik olarak planlanan bir görev oluşturmak hem pratik olacak 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

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!

Bu Yazıya Tepkiniz Ne Oldu?
  • 0
    be_endim
    Beğendim
  • 0
    alk_l_yorum
    Alkışlıyorum
  • 0
    e_lendim
    Eğlendim
  • 0
    d_nceliyim
    Düşünceliyim
  • 0
    _rendim
    İğrendim
  • 0
    _z_ld_m
    Üzüldüm
  • 0
    _ok_k_zd_m
    Çok Kızdım

Yazılım hakkında bildiklerini anlatan sıradan biri.

Yazarın Profili
Paylaş
İlginizi Çekebilir

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir