Zamanlanmış Görevler

Cron

Cron, Linux işletim sistemlerinde komutları belirli aralıklarla otomatik olarak çalıştırmak üzere kullanılan standart bir yardımcı programdır. Her dakika cron servisi o dakika için zamanlanan bir komut olup olmadığını kontrol eder. Komut olması durumunda çalıştırılır. Cron ile sistem genelinde olduğu gibi kullanıcılar da yetkilerinin olması durumunda kendi zamanlanmış görevlerini tanımlayabilirler.
Sistem geneline ait işler /etc/crontab dosyasında tutulur. Bu dosyanın içeriği cat komutu ile görüntülenebilir.
1
cat /etc/crontab
2
crontab –l
Copied!
Dosyanın içeriğinde bir zamanlanmış görevin nasıl yazılması gerektiğini gösteren aşağıdaki satır da yer alır.
1
# m h dom mon dow user command
Copied!
Kısaltma
İngilizce
Türkçe
Açıklama
m
Minute
Dakika
0-59 arası bir değer alır.
h
Hour
Saat
0-23 arası bir değer alır.
dom
Day of Month
Ayın Günü
0-31 arası bir değer alır.
mon
Month
Ay
1-12 arası bir değer alır.
dow
Day of Week
Haftanın Günü
0-7 arası bir değer alır. 0 ve 7 pazar günüdür.
user
User
Kullanıcı
command
Command
Komut
Zamanlanmış bir görev yazılırken tarih ile ilgili sutünlara "*" sembolü konularak, zamanlanmış görevin o alandaki her değer için çalıştırması sağlanır. Her bir sutün için "-" sembolü ile aralık, "," sembolü ile birden fazla değer ve "/" sembolü ile o işin periyodik olarak çalışacağı belirtilir.

Örnekler

  1. 1.
    Her gün saat 12'de çalışacak zamanlanmış görev:
    1
    00 12 * * * kullanıcı_adı komut_veya_betik_yolu
    Copied!
  2. 2.
    Her gün saat 8'de ve 14'de çalışacak zamanlanmış görev:
    1
    00 8,14 * * * kullanıcı_adı komut_veya_betik_yolu
    Copied!
  3. 3.
    10 dakikalık periyotlarla çalışacak zamanlanmış görev:
    1
    */10 * * * * kullanıcı_adı komut_veya_betik_yolu
    Copied!
  4. 4.
    Hafta içi günler sabah 9 akşam 18 arası her saat çalışacak zamanlanmış görev:
    1
    00 09-18 * * 1-5 kullanıcı_adı komut_veya_betik_yolu
    Copied!
Saatlik yapılan zamanlanmış görevler /etc/cron.hourly dizininde, günlük yapılan zamanlanmış görevler /etc/cron.daily dizininde, haftalık yapılan zamanlanmış görevler /etc/periodic/weekly dizininde, aylık yapılan zamanlanmış görevler /etc/periodic/monthly dizininde tanımlanır.

Crontab

Yukarıdaki örnekler sistem genelinde kullanılan /etc/crontab dosyasında tanımlanarak yapıldı. İstenmesi durumunda her kullanıcı kendi zamanlanmış görevlerini crontab komutu ile yönetebilir.
  1. 1.
    -l paremetresi ile var olan zamanlanmış görevler listelenir.
    1
    crontab -l
    Copied!
  2. 2.
    -e paremetresi ile zamanlanmış görevler düzenlenir.
    1
    crontab -e
    Copied!
    crontab komutu ile eklenen zamanlanmış görevler için kullanıcı belirtilmez, zamanlanmış görevi komutu çalıştıran kullanıcı çalıştırır.
  3. 3.
    -u parametresi ile root kullanıcısı başka kullanıcılar için zamanlanmış görev ekleyebilir.
    1
    crontab -e -u kullanıcı_adı
    Copied!

Crontab'ın Yönetilmesi

  1. 1.
    /etc/cron.allow dosyası oluşturularak zamanlanmış görev kullanabilecek kullanıcılar belirtilir. Bu dosyada yer almayan kullanıcılar zamanlanmış görev oluşturamaz.
  2. 2.
    /etc/cron.deny dosyası oluşturularak zamanlanmış görev kullanamayacak kullanıcılar belirtilir. Bu dosyada yer alan kullanıcılar zamanlanmış görev oluşturamaz.

at

at, Linux işletim sistemlerinde komutları belirli bir zamanda otomatik olarak çalıştırmak üzere kullanılan standart bir yardımcı programdır. Cron'un aksine tekrarlı işler için kullanılmaz.
Last modified 2mo ago