Linux

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği

Her zaman bir şeyleri yapmanın daha basit ve hızlı yolu vardır. Tekrarlanan işlemleri otomatik bir şekilde halletmek çoğu web geliştiricisi tarafından tercih edilmektedir.

Bu yazımızda cron job nedir, cron job temellerini ve görevleri planlamak için nasıl kullanmanız gerektiğinden bahsedeceğiz.

Cron Job Nedir ? Cron Söz Dizimi Örnekleri

Cron Job Nedir?

Cron herhangi bir görevi ilerleyen zamanlarda tekrar kullanmak için başvurulan bir programdır. Belirli bir görevi belirli bir zamanda tekrar kullanmak için komut veren işlem ise cron job’dır.

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

Cron bir daemon‘dır yani bunun anlamı Cron etkileşimli olmayan görevlerin yürütülmesi  için arkaplanda çalışmaktadır. Windows’de Hizmetler gibi arkaplan işlemlerini kesinlikle duymuş olmalısınız.

Bir daemon her zaman bekleme modundadır. Bu modda, bilgisayardaki veya ağda yer alan başka bir bilgisayardan belirli bir görevi yapmak için komut isteği beklemektedir.

Bir cron dosyası herhangi bir zamanda çalışacak komutların yer aldığı basit bir metin dosyasıdır. Varsayılan olarak crontab dosyası ise /etc/crontab‘dır ve bir crontab dizininde /etc/cron.*/ konumlandırılmıştır. Crontab dosyasını yalnızca sistem yöneticileri düzenleyebilir.

Fakat Unix gibi işletim sistemleri birden fazla kullanıcıları desteklediğinden dolayı her birkullanıcı kendi crontab dosyasını oluşturmaları mümkündür. Ayrıca ne zaman isterlerse görevlerin yapılması için komutları çalıştırabilirler. Bir cron daemon’ı dosyası kontrol edip sistem arkaplanında komutu çalıştıracaktır.

Sistem bakımı cron job’lar ile otomatikleştirilebilir,
Disk alanını izleyebilir
Yedekler planlayabilirsiniz.

Doğası gereği cron job’lar 7/24 çalışan bir sunucu için muhteşem bir araçtır.

Cron’da Kullanılan Bazı Basit Komutlar

İşte bazı basit komutlar:

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

Cron Job, hem sistem yöneticileri, hem de web geliştiriciler için görevleri yönetmek için başvurdukları işlemdir yapılması  gereken tek şey doğru komutu kullanmak ve zamanı doğru  belirlemektir.

Cron Job Temelleri

VPS sunucusuna sahipseniz eğer giriş bilgilerinize VPS yönetim sekmenizden ulaşabilir ve sunucunuza SSH üzerinden erişebilirsiniz. Şimdi sizler için cron job ile yapabileceğiniz bazı basit işlemlerden bahsedeceğiz:

Mevcut kullanıcının crontab dosyasını düzenlemeniz gerekiyorsa terminalinizden crontab -e komutunu çalıştırmanız gerekmektedir.

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 1

Daha sonra aşağıdaki gibi bir sonuç elde edeceksiniz.

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 2

vi editor kullanıldığından dolayı işlemin doğru bir şekilde yapıldığından emin olmak için temel vi komutlarını öğrenmelisiniz.

Başka bir kullanıcın crontab’ini düzenleyecekseniz eğer crontab -u username -e komutunu kullanmanız gerekiyor. Bu işlemi yalnızca bir superuser olarak yapmanız mümkündür. Yani, yukarıdaki komuttan önce sudo su yazmalısınız.

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 3

Bir crontab dosyasının başarılı bir şekilde oluşturulmuş olup olmadığını da kontrol etmeniz mümkündür. Yapmanız gereken tek şey crontab -l komutunu girmektir. Eğer oluşturulmadıysa aşağıdaki sonucu göreceksiniz.

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 4

Ayrıca eğer diğer kullanıcıların crontab dosyasının listesine bakacaksanız superuser olarak crontab -u username -l komutunu girebilirsiniz.

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 5

Temel işlemleri bilmenin yanında ayrıca temel söz dizimini bilmek de gereklidir.

Bir crontab dosyası iki bölümden oluşur: planlama zamanlayıcı ve komut. Komut aşağıdaki şekilde yazılır:

* * * * * /bin/sh backup.sh

 

  • ***** /bin/sh backup.sh cronjob her dakikada bir yedek oluşturacağı anlamına gelmektedir.
  • 40 19 * * * rm /home/sydtesting/tmp/* ise tmp dosyalarını /home/sydtesting/tmp konumundan her gün 19:40’da silecektir.

Hadi biraz daha detaylara girelim.

Cron Söz Dizimi Yazımı

Bir crontab dosyası tekrarlanması gereken bir görevin tarihini ve saatini belirlemek için toplam beş alana sahiptir. Bu alanlardan şimdi bahsedeceğiz

Cron Job Nedir ? 11 Cron Söz Dizimi Örneği 6

  • Minute (Dakika) — komutun çalışacağı saatin dakikasının ayarlanması için kullanılmaktadır ve 0-59 arasıdır.
  • Hour (Saat) — komutun hangi saatte çalışacağının ayarlanması için kullanılır ve 0-23 arasında seçim yapmak mümkündür.
  • Day of the month (Ay günü) — ayın hangi gününde komutun çalışacağının ayarlanması için kullanılır ve 1-31 arasında seçim yapabilirsiniz.
  • Month (Ay) — komutun hangi ayda çalışacağının ayarlanması için kullanılır ve 1-12 arasında seçim yapmanız mümkündür.
  • Day of the week (Haftanın günü) — komutun haftanın hangi gününde çalışacağının ayarlanması için kullanılır, 0-7 arasında seçim yapmanız mümkündür.

Her crontab dosyasında doğru karakterleri kullanmanız gerekmektedir.

  • Yıldız işareti (*) — Bütün planlama parametrelerinin tanımlanması için kullanılır.
  • Virgül (,) — Bir komutun birden fazla defa çalıştırılmasını sürdürmek için kullanılır.
  • Bölme işareti (/) — Belirli bir aralıkta belirlenecek sıklığı oluşturmak için kullanılır.
  • Last (Son) (L) — Herhangi bir aydaki haftanın son gününü belirlemek için kullanılmaktadır. Örnek verecek olursak, 3L son Çarşamba anlamına gelmektedir.
  • Weekday (Hafta içi) (W) — Belirlenen bir zamana en yakın olan hafta içi gününün belirlenmesi için kullanılır. Örnek verecek olursak eğer 1W birincinin Cumartesi olduğu anlamına geliyorsa komut Pazartesi gününde çalışacaktır (3.)
  • Hash (#) — 1 ile 5 arasından bir rakamdan sonra gelir ve haftanın gününü belirlemek için kullanılır. Örnek verecek olursak eğer 1#2 ikinci Pazartesi anlamına gelir.
  • Soru işareti (?) — boşluk bırakmak için kullanılmaktadır.

Cron Söz Dizimi Örnekleri

Yukarıda bahsettiğimiz kurallar için şimdi sizler için bazı örnekler vereceğiz.

Komutun sonucunun otomatik olarak yerel e-posta hesabınıza yollanacağını bilmelisiniz. Bu e-postaları almak istemiyorsanız eğer söz dizimine aşağıdaki gibi >/dev/null 2>&1 komutu eklemeniz gerekiyor:

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

 

Eğer e-posta sonucunu herhangi bir hesaba yollamak istiyorsanız e-posta adresinden önce  MAILTO komutunu eklemelisiniz.

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

 

Cron söz dizimi örnekleri:

Söz dizimiAnlamı
0 0 * * * /bin/sh backup.shHer gece yarısı veritabanı yedeği alınacaktır.
0 5,20 * * * /bin/sh backup.shGünde iki defa 05:00 ve 20:00 saatlerinde veritabanı yedeği alınacaktır.
0 */5 * * * /scripts/monitor.shHer beş saatte bir takip etmek için kullanılır.
*/20 * * * * /home/user/script.shHer 10 dakikada bir ana dizindeki script dosyası için bir cron job uygulamak için kullanmaktadır.
0 * 10 6 * /bin/sh backup.shHer Haziran 20 tarihinde saatlik yedek alınmaktadır.
0 0 * * 3 * /bin/shHer Çarşamba günü gece yarısında veritabanı yedeği alınmaktadır.
* * * 1,3,5 *  /script/script.shOcak, Mart ve Haziran aylarında bir komut çalıştırır.
20-59/5 10 * * * /home/user/script.shSaat 05:00’de 05:20’dan başlamak üzere her 10 dakikada bir komut çalıştırmak için kullanılır.
0 7 1 */2 * /home/user/script.shİki ayda bir ilk gün saat 07:00’de bir komut çalıştırmak için kullanılır
* * * * * /scripts/script.sh; /scripts/scrit2.shTek cron job’da birden fazla görev çalıştırmak için planlama belirleme işlemi.
@reboot /scripts/script.shSistemi her başlattığınızda belirli bir görev yapmak için kullanılır.

Sonuç

Cron söz dizimleri otomatik olarak planlanan herhangi bir görevi oluşturmak hem pratik olacaktır, hem de  görevin zamanında yapılmasınız sağlayacaktır.

Cron Job Nedir ? Cron Söz Dizimi Örnekleri başlıklı yazımız ile ilgili aklınıza takılan sorularınızın yanıtını alabilmeniz için veya öneride bulunabilmeniz için aşağıda yer alan yorumlar kısmını kullanarak bizimle iletişime geçebilirsiniz.

Dilerseniz daha önce bloğumuzda paylaştığımız Bash Script Nasıl Kullanılır? Bash Script Örnekleri başlıklı yazımızı da okuyabilirsiniz.

Serhat Yılmaz

Blog sayfamızda bilişim sektöründe edinmiş olduğum bilgi ve deneyimleri paylaşmaktayız. Yazılarımıza yorumlarınızı katarak bizleri mutlu edebilirsiniz.

İlgili Makaleler

Bir yanıt yazın

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

Başa dön tuşu