Hiçbir kullanıcı tüm zamanını bilgisayar başında geçirmek istemez. Zamanı geldiğinde bazı işlemlerin başlamasını bekler. Örneğin, kullanıcılar güncellemelerin planlanmasını ve zamanı geldiğinde çalıştırılmasını ister. İşletim sistemlerinde süreçler süreç olarak yönetilir. Bazı süreçler bir süreç tarafından tetiklenir. Bu nedenle işletim sistemleri, belirli işlemleri zamanı geldiğinde çalışacak şekilde planlar. Kısacası, hem kullanıcılar hem de işletim sistemleri zamanlanmış görevlere ihtiyaç duyar.
Unix işletim sistemlerinde, zamanlanmış görevler oluşturma aracı cron’dur. Zamanlanmış görevler bir crontab dosyasına yazılır. Kullanıcının zamanlanmış bir iş oluşturmak için crontab dosyasında bir cron işi tanımlaması gerekir. İsterseniz önce cron job programını görelim.
Cron altı (6) değişkenden oluşur. varsayılan değerler “*” karakterle temsil edilir.
* * * * * *
1 2 3 4 5 6
1. Oturum dakikaları:
Girilebilecek değer aralığı ve türü 0-59 arasındadır. 2.
Şu günlerde : Değer aralığı 0-23’tür.
3. gün:
1’den 31’e kadar sayısal olarak girilmelidir. 4.
o : 1-12 (ör. Ocak = 1 … Aralık = 12))
5.
bir iş günü:
0’dan 6’ya kadar rakamlar girilmelidir (Pazar = 0 … Cumartesi = 6)
6.
tedavi etmek :
sipariş veya siparişler.
Öncelikle; bilgisayarımızda önceden tanımlanmış bir crontab dosyası olup olmadığını kontrol etmek için komut satırına;
$ crontab-l
Hadi yaz. Ekranda “kullanıcı adı için crontab yok” çıktısı verirsem, önceki tanım yoktur. Bir crontab dosyası belirtilirse, içeriği ekranda görüntülenir. Olmadığını varsayarak bir crontab dosyası oluşturalım. bir crontab dosyası oluşturmak için komut satırı; $ crontab-e Yazılmalıdır. Açılan ekranda # işareti ile başlayan satırlar bulunmaktadır. Bunlar yorum satırları. Oluşturduğumuz görevlerin üzerine # işareti içeren satırlar ekleyerek tanımladığımız görevin açıklamasını yazabiliriz. Bu sayede bizden sonra bu alana giren kullanıcılar yazılanları gözlemleyerek ve yapılması gerekenleri bilerek hareket etmektedirler.
Örneğin bir crontab dosyasına; # Disk durumunu gösteren bir dosya oluşturun
55 16 10 7 3 df -m >> / home/pardus/diskdurum.txt
Satır satır yazdığımız zaman, (3) 10 Temmuz (7) Çarşamba günü saat 16:55’te “/home/pardus/” dizini altına
“diskdurum.txt”
adlı bir txt dosyası oluşturur ve diskin durumu hakkında bilgi veren “df” komutu ile elde edilen sonucu yazdırır.
Crontab dosyasında gönderilebilecek altı değişken için bazı parametreler vardır.
bunlar;
yıldız işareti “*”
“,” virgül işareti
“-” orta çizgi işaretidir.
Bu bölümde bir değişken tanımlanmadığında yapılacak görevler gibi ‘*’ ile gösterilen alanların değerleri farklıdır.
İlk alana sayısal bir değişken tanımlanmamış ise işlem dakika başı devam eder. Örneğin sistem günlüklerini belirtilen süre boyunca her dakika bir dosyaya kopyalamak istediğinizde bu alan için “*” değişkenini ayarlayabilirsiniz.
İkinci alan, dakikadaki gibi değişken tanımlanmadığında saatte bir çalışır.
Üçüncü alan “*” değişkenini aldığında, belirtilen zaman diliminde her gün işlem tekrarlanır.
Dördüncü alan “*” değişkenini aldığında görev her ay tekrarlanır.
Beşinci alan “*” değişkenini aldığında, belirtilen görev haftanın her günü çalışacaktır.
Altıncı alan için “*” alanı boş olamaz. Bir iş tanımı sağlanmalıdır.
“,” parametresini kullanırken değişkenlerin alabileceği değerleri somutlaştıralım;
Belirli dakikalarda işlemin tekrarlanması isteniyorsa “,” parametresi kullanılarak bu alana bir değer atanır. örnek;
0,10,20,30,40,50 16 10 7 3 df -m >> / home/pardus/diskdurum.txt
Bir görev olarak tanımlandığında, görev her 10 dakikada bir çalışır. Benzer şekilde zaman alanında;
* 7,12,19,23 10 7 3 df -m >> / home/pardus/diskdurum.txt
Yazarak, görev sabah 7’den başlayarak gün boyunca 5 saat çalışır. bugünün alanında
* * 1,15,30 7 3 df -m >> / home/pardus/diskdurum.txt
Yazıldığında ay alanına ayın 1., 15. ve 30. günleri yazılır;
* * * 1.612 3 df -m >> /home/pardus/diskdurum.txt
Workday alanına yılın 1 (Ocak), 6 (Haziran) ve 12 (Aralık) ayları yazılır;
* * * * 0,3 df -m >> /home/pardus/diskdurum.txt
Yazılarak, Pazar ve Çarşamba günü seçilen görev hattan istenebilir.
Altıncı alandaki “,” parametresi kullanılarak birden fazla görev yüklenebilir. örnek;
* 7,12,19 * * * ps -ax >> / home/pardus/calisan_surecler.txt, df -m >> / home/pardus/diskdurum.txt
Yazarak, diskin durumu ve işletim sisteminde çalışan işlemler hakkında bilgi almak mümkündür.
Üçüncü parametre olan orta çizgi “-” ile belirli bir değer aralığı ayarlanabilir. Örneğin dakika alanında;
45-60 16 10 7 3 df -m >> / home/pardus/diskdurum.txt
Bir görev olarak tanımlandığında, görev 45 ile 60 dakika arasında dakikada bir çalışır.Benzer şekilde zaman alanında;
*9-18 10 7 3 df -m >> / home/pardus/diskdurum.txt
Ben yazarken 09:00 ile 18:00 arasında çalışıyor. bugünün alanında
* * 10-15 7 3 df -m >> / home/pardus/diskdurum.txt
Yazıldığında, her zaman ayın 10’u ile 15’i arasında çalışır. ay bölgesine
* * 1-7 3 df -m >> / home/pardus/diskdurum.txt
Workday alanına yılın Ocak ve Temmuz ayları arasında yazarken;
* * * * 1-5 df -m >> / home/pardus/diskdurum.txt
Haftanın günlerini yazarak, yani Pazartesiden Cumaya, görev her zaman çalışır. Bu parametre işlem alanında kullanılmaz ve son değerdir.
Kullanıcı adı ile her kullanıcı tarafından oluşturulan cron işleri, “/var/spool/cron/” dizini altındaki crontab klasöründe barındırılmaktadır. Bu dosyalara ulaşılarak görsel değişiklikler yapılabilmektedir.
Küçük bir örnek ama büyük bir görev!Aslında, yedeklemeler crontab’ın en çok kullanılan alanlarından biridir. Dosyalar veya dizinler belirtilen zamanda belirtilen konuma yedeklenebilir. örnek;
00 16 1 * 1 cp -R /home/pardus/Pictures/home/pardus/backup Bu şekilde yazdığınızda resimler klasörünü tüm alt klasörleriyle birlikte her ayın ilk günü 16 da yedek klasörüne kopyalayacaktır. :00. Bu ve benzeri cron görevleri, kullanıcıların ihtiyaçlarını karşılayan küçük görevlerdir.Kaynak: http://en.wikipedia.org/wiki/Cron Yazar: Omar Kqmak
Diğer gönderilerimize göz at
[wpcin-random-posts]