BİLGİ SAYAMIYORUM beta

Ubuntu da yeni bir cronjob (zamanlanmış görev) nasıl oluşturulur, belirli aralıklarla kendiliğinden çalışan script nasıl başlatılır?

0

Windows kullanırken elle pek yapmadığınız ama Linux da keyfine varabileceğimiz güzel bir etkileşim cronjob. Abi şunu saatte bir yapar mısın ya da her dakika ya da yılda bir diye bir programın, işin kendiliğinden belirlenen aralıkla çalışmasını sağlayabiliyorsunuz. Çok alışık olmayanlar için belirtmeliyim, bir yere site çalıştırma amaçlı sunucu kuruyorsanız bu ilk öğrenmeniz gereken şeylerden biri olacaktır. Zira kullanıcılara bir kaynak sunarken bir çok noktada kendiliğinden çalışan kontrol sistemlerine ihtiyacınız olmaktadır. 

Öncelikle bu işi elle yönetmek istemiyoruz Öncelikle bu işleri shell script / terminal dili  ile yazıyoruz, daha doğrusu belirli aralıklarla çalışmasını istediğimiz, yazdığımız scripti .sh uzantılı bir dosyaya koyup kaydediyoruz. Örnek olarak yaptırmak istediğimiz iş; ekrana "Merhaba Dalek!" olsun:

     #!/bin/sh
     echo "Merhaba Dalek"

Bunu alıp .sh uzantılı bir dosyaya kaydediyoruz, işin asıl yerinden önce /usr/lib altına dalek.sh diye kaydedebilirsiniz. Kök dizin yani / içinde etc adlı klasör içindeki şu dört dosyadan birine bu dosyayı atarak o aralıkla çalışmasını sağlayabiliyoruz:

Tabii ki bunların dışında istediğiniz herhangi bir aralıkta iş yaptırmanızı da sağlayabilirsiniz. Terminali açın ve şu şekilde yeni bir corntab açın:

     crontab -e

Daha sonra, ilk önce zamanlama için var olan 5 basamağı doldurun, boşluk bırakın, eğer herhangi bir kullanıcı sadece bu işi yapsın isterseniz onu yazın (yoksa root ile çalışıyor hep sanırım), boşluk bırakın, çalışmasını istediğiniz komutun yolunu yazın:

     :dakika saat ayınGunu ay haftaGunu komutYolu

     * * * * * /komut/yolu

     15 14 * * 2 /usr/lib/dalek.sh

     */20 * * * * /usr/lib/dalek.sh

     @reboot /usr/lib/dalek.sh

     * 12 * * * root /usr/lib/dalek.sh

     0 1,6,13,18 * * * osman /usr/lib/dalek.sh

Gördüğünüz üzere örneklerin her birini farklı durumlara örnek olmaları için yerleştirdim. Hepsinin yıldız olması sürekli çalıştır gibi bir anlama geliyor, o şekilde bir şey yazmamalısınız. Ama kullanmadığınız her biri zaman dilimi için yıldız koymalısınız. 4. örnekte olduğu gibi tüm yıldızları boşverip "@reboot" koyarak her sistem açıldığında bu işi yap da diyebilirsiniz. 2. örnekte her salı öğlen 2.15 de işi yapmasını söylüyoruz, 3. de her 20 dakikada bir, 5. örnekte ise her 12 saatte bir. Ama 5. ve 6. örnekte görüldüğü üzere zaman belirteçlerinden sonra kullanıcı ismi de verdim. Bu da bu işi sadece bu kullanıcı için yap anlamına geliyor. Ayrıca son örnekte ikinci zaman hanesine virgül kullanarak birden çok sayı yazdım, bu her 1, 6, 13 ve 18 saatlerinde bu işi yap anlamına geliyor. Bu haneleri "*/sayi" şeklinde "sayi" kadar sürede bir de çalışmasını sağlayabilirsiniz.Tabii ki diğer haneler için de bunu yapabilirsiniz. Zaman hanelerini daha detaylı belirtmek gerekirse:

Eğer cronjob / zamanlanmış iş vermek istediğiniz kullanıcıya giriş yapamıyorsanız, /etc/cron.d ya da /etc/crontab dosyasına gidip yeni dosya ekleyin ve yukaraki uygulama satırını oraya yazın.

BENZER 7

Kimse etkileşime girmemiş

ETİKETLER