iltasyazilim
FD Üye
Hiçbir kullanıcı, tüm vaktini bilgisayar başında dinmek istemez Bir Takım işlemlerin zamanı geldiğinde başlamasını bekler Mesela güncellemelerin zamanlanması ve zamanı gelince çalışması, kullanıcılar tarafından istenilir İşletim sistemlerinde yapılan işlemler, süreçler halinde yönetilir Bazı süreçler bir sürecin tetiklemesiyle çalışırlar İşletim sistemleri de bu yüzden, birtakım işlemleri zamanlar ve zamanı gelince çalıştırırlar Yani kısacası, ayrıca kullanıcılar hemde işletim sistemleri zamanlanmış görevlere ihtiyaç duyarlar
Unix işletim sistemlerinde, zamanlanmış ödev oluşturma aracı cron ’dur Zamanlanan görevler bir crontab dosyasına yazılır*Kullanıcı zamanlanmış ödev oluşturabilmesi için crontab dosyasına cron görevi tanımlamalıdır İsterseniz ilk önce bir cron görevinin yazılımını görelim
Bir cron kadar altı(6) adet değişkenden oluşur Varsayılan değerler * “ karakteri ile temsilcilik edilir
* * * * * *
1 2 3 4 5 6
1 (*) *Dakika : Girilebilecek değer aralığı ve türü 059 arasıdır
2 (*) Saat : Değer aralığı 023 ’dür
3 (*) Gün : Sayısal olarak 131 girilmelidir
4 (*) Ay : 112 (Ocak 1… Aralık 12 gibi)
5 (*) İşgünü : 06 arası rakamlar girilmelidir (Pazar 0…Cumartesi 6 gibi)
6 (*) Operasyon : Komut ya da komutlar
Öncelikle; bilgisayarımızda daha önce tanımlanmış bir crontab dosyası var mı değil mu kontrolu için komut satırına;
$ crontab l
yazalım Eğer ekrana no crontab for kullaniciadi şeklinde bir çıktı veriyorsa daha önce bir açıklama yoktur Tanımlı bir crontab dosyası varsa içeriği ekranda görüntülenir Olmadığını varsayarak bir crontab dosyası oluşturalım Crontab dosyası oluşturmak için komut satırına;
$ crontab e
yazdılmalıdır Açılan ekranda # işareti ile başlayan satırlar bulunur Bunlar yorumlama satırlarıdır Bizde oluşturduğumuz görevlerin üstüne # işareti taşıyan satırlar ekleyerek tanımladığımız devir hakkında izah etme yazabiliriz Bu şekilde bizden sonra bu alana giren kullanıcılar yazılanları dikkate alarak ve ne tamamlanmak istendiğini bile bile hareket ederler
Misal olarak crontab dosyasına;
# Disk durumunu bildiren bir dosya oluşturma
55 16 10 7 3 df m homepardusdiskdurumtxt
biçiminde bir satır yazıdğımızda temmuz(7) ayının 10 ’u Çarşamba(3) günü saat 16:55 de, “homepardus dizini aşağıda “diskdurumtxt adında bir txt dosyası oluşturur Ve içerisine disk durumu hakkında bilgi veren “df komutu ile aldığı sonucu yazdırır
Crontab dosyasında verilebilecek altı değişkene ait bazı parametreler vardır Bunlar;
* yıldız işareti
, virgül işareti
– orta çizgi işareti ’dir
* ile gösterilen alanların aldığı değerler ayrı olduğu gibi bu kısma istikrarsız tanımlanmadığında yapılacak görevlerde farklılaşır
Birinci alana sayısal bir değişken tanımlanmadığında her dakika operasyon devam eder Örneği belirlenen vakit aralığında sistem loglarını her dakika bir dosyaya kopyalamasını istediğinizde bu alana * değişkenini atayabilirsiniz
İkinci bölge dakika da olduğu gibi, akıcı tanımlanmadığında her saat çalışır
Üçüncü alan * değişkenini aldığında belirlenen aralıkta her gün işlem tekrar edilir
Dördüncü alan * değişkenini aldığında her ay tahsis tekrar edilir
Beşinci alan * değişkenini aldığında belirlenen tayin haftanın her günü çalışır
Altıncı alanın * bölge abes olamaz Bir atama tanımı yapılmalıdır
, parametresi kullanıldığında değişkenlerin alabileceği değerleri örneklendirelim;
Yapılacak işlemin kayıtlı dakikalarda tekrarı isteniyorsa bu alana , parametresi kullanılarak bedel ataması yapılır Mesela;
0,10,20,30,40,50 16 10 7 3 df m homepardusdiskdurumtxt
biçiminde bir görev tanınmlandığında tahsis 10 ’ar dakika ara ile çalıştırılır Aynı şekilde saat alanına;
* 7,12,19,23 10 7 3 df m homepardusdiskdurumtxt
yazarak saat 7 ’den itibaren gün içerisinde 5 ’er saat ile tahsis çalıştırılır Gün alanına;
* * 1,15,30 7 3 df m homepardusdiskdurumtxt
yazıldığında ayın 1,15 ve 30 günleri ,ay alanına;
* * * 1,6,12 3 df m homepardusdiskdurumtxt
yazıldığında yılın 1(Ocak), 6(Haziran) ve 12(Aralık) ayları, iş günü alanına;
* * * * 0,3 df m homepardusdiskdurumtxt
yazarak hatfanın Pazar ve Çarşamba günlerinde tanımlanan görevin yerine getirilmesi istenebilir
Altıncı alana , parametresi ile aniden fazla devir yüklenebilir Mesela;
* 7,12,19 * * * ps ax homeparduscalisansureclertxt, df m homepardusdiskdurumtxt
yazarak ayrıca disk durumundan hemde işletim sisteminde çalışan süreçlerin bilgisi alınabilir
Üçüncü parametre olan – orta çizgi ile değerlere belirtilmiş bir aralık atanabilir Örneğin dakika alanına;
4560 16 10 7 3 df m homepardusdiskdurumtxt
şeklinde bir devir tanınmlandığında görev 45 ile 60 dakika arasında her dakika çalıştırılır Benzer şekilde saat alanına;
* 918 10 7 3 df m homepardusdiskdurumtxt
yazıldığında sabah 09:00 ile akşam 18:00 saatleri arası çalıştırılır Gün alanına;
* * 1015 7 3 df m homepardusdiskdurumtxt
yazıldığında ayın 10 ile 15 günleri arası defalarca çalışır Ay alanına;
* * * 17 3 df m homepardusdiskdurumtxt
yazıldığında yılın ocak ayı ile Temmuz ayları arası iş günü alanına;
* * * * 15 df m homepardusdiskdurumtxt
yazarak hafta içi yani Pazartesi ve Cuma günleri arası ödev her zaman çalışır Son layık olan operasyon alanında bu parametre kullanılmaz
Her kullanıcının oluşturduğu cron grörevleri “varspoolcron dizini altındaki crontab klasöründe kullanıcı adı ile barındırırlır Görsel olarak da bu dosyalara erişerek değiştirme yapılabilir
Küçük bir örnek fakat BÜYÜK bir tayin !
Gerçekte crontab ’ın en fazla başvuru alanlarından biri yedekleme işlemleridir Dosya ya da dizinleri belirtilmiş süre da belirlenen yere yedekleme yaptırılabilir Mesela;
00 16 1 * 1 cp R homepardusResimler homepardusyerine geçen kimse
şeklinde yazdığınızda her ayın 1 ’inde saat 16:00 da resimler klasörünüzü yerine koyma klasörüne tüm daha alçak klasörleri ile beraber kopyalar Bu ve bunun gibi cron görevleri kullanıcıların ihtiyaçlarına karşılayacak ufak görevlerdir
Kaynakça:
http:enwikipediaorgwikiCron
Unix işletim sistemlerinde, zamanlanmış ödev oluşturma aracı cron ’dur Zamanlanan görevler bir crontab dosyasına yazılır*Kullanıcı zamanlanmış ödev oluşturabilmesi için crontab dosyasına cron görevi tanımlamalıdır İsterseniz ilk önce bir cron görevinin yazılımını görelim
Bir cron kadar altı(6) adet değişkenden oluşur Varsayılan değerler * “ karakteri ile temsilcilik edilir
* * * * * *
1 2 3 4 5 6
1 (*) *Dakika : Girilebilecek değer aralığı ve türü 059 arasıdır
2 (*) Saat : Değer aralığı 023 ’dür
3 (*) Gün : Sayısal olarak 131 girilmelidir
4 (*) Ay : 112 (Ocak 1… Aralık 12 gibi)
5 (*) İşgünü : 06 arası rakamlar girilmelidir (Pazar 0…Cumartesi 6 gibi)
6 (*) Operasyon : Komut ya da komutlar
Öncelikle; bilgisayarımızda daha önce tanımlanmış bir crontab dosyası var mı değil mu kontrolu için komut satırına;
$ crontab l
yazalım Eğer ekrana no crontab for kullaniciadi şeklinde bir çıktı veriyorsa daha önce bir açıklama yoktur Tanımlı bir crontab dosyası varsa içeriği ekranda görüntülenir Olmadığını varsayarak bir crontab dosyası oluşturalım Crontab dosyası oluşturmak için komut satırına;
$ crontab e
yazdılmalıdır Açılan ekranda # işareti ile başlayan satırlar bulunur Bunlar yorumlama satırlarıdır Bizde oluşturduğumuz görevlerin üstüne # işareti taşıyan satırlar ekleyerek tanımladığımız devir hakkında izah etme yazabiliriz Bu şekilde bizden sonra bu alana giren kullanıcılar yazılanları dikkate alarak ve ne tamamlanmak istendiğini bile bile hareket ederler
Misal olarak crontab dosyasına;
# Disk durumunu bildiren bir dosya oluşturma
55 16 10 7 3 df m homepardusdiskdurumtxt
biçiminde bir satır yazıdğımızda temmuz(7) ayının 10 ’u Çarşamba(3) günü saat 16:55 de, “homepardus dizini aşağıda “diskdurumtxt adında bir txt dosyası oluşturur Ve içerisine disk durumu hakkında bilgi veren “df komutu ile aldığı sonucu yazdırır
Crontab dosyasında verilebilecek altı değişkene ait bazı parametreler vardır Bunlar;
* yıldız işareti
, virgül işareti
– orta çizgi işareti ’dir
* ile gösterilen alanların aldığı değerler ayrı olduğu gibi bu kısma istikrarsız tanımlanmadığında yapılacak görevlerde farklılaşır
Birinci alana sayısal bir değişken tanımlanmadığında her dakika operasyon devam eder Örneği belirlenen vakit aralığında sistem loglarını her dakika bir dosyaya kopyalamasını istediğinizde bu alana * değişkenini atayabilirsiniz
İkinci bölge dakika da olduğu gibi, akıcı tanımlanmadığında her saat çalışır
Üçüncü alan * değişkenini aldığında belirlenen aralıkta her gün işlem tekrar edilir
Dördüncü alan * değişkenini aldığında her ay tahsis tekrar edilir
Beşinci alan * değişkenini aldığında belirlenen tayin haftanın her günü çalışır
Altıncı alanın * bölge abes olamaz Bir atama tanımı yapılmalıdır
, parametresi kullanıldığında değişkenlerin alabileceği değerleri örneklendirelim;
Yapılacak işlemin kayıtlı dakikalarda tekrarı isteniyorsa bu alana , parametresi kullanılarak bedel ataması yapılır Mesela;
0,10,20,30,40,50 16 10 7 3 df m homepardusdiskdurumtxt
biçiminde bir görev tanınmlandığında tahsis 10 ’ar dakika ara ile çalıştırılır Aynı şekilde saat alanına;
* 7,12,19,23 10 7 3 df m homepardusdiskdurumtxt
yazarak saat 7 ’den itibaren gün içerisinde 5 ’er saat ile tahsis çalıştırılır Gün alanına;
* * 1,15,30 7 3 df m homepardusdiskdurumtxt
yazıldığında ayın 1,15 ve 30 günleri ,ay alanına;
* * * 1,6,12 3 df m homepardusdiskdurumtxt
yazıldığında yılın 1(Ocak), 6(Haziran) ve 12(Aralık) ayları, iş günü alanına;
* * * * 0,3 df m homepardusdiskdurumtxt
yazarak hatfanın Pazar ve Çarşamba günlerinde tanımlanan görevin yerine getirilmesi istenebilir
Altıncı alana , parametresi ile aniden fazla devir yüklenebilir Mesela;
* 7,12,19 * * * ps ax homeparduscalisansureclertxt, df m homepardusdiskdurumtxt
yazarak ayrıca disk durumundan hemde işletim sisteminde çalışan süreçlerin bilgisi alınabilir
Üçüncü parametre olan – orta çizgi ile değerlere belirtilmiş bir aralık atanabilir Örneğin dakika alanına;
4560 16 10 7 3 df m homepardusdiskdurumtxt
şeklinde bir devir tanınmlandığında görev 45 ile 60 dakika arasında her dakika çalıştırılır Benzer şekilde saat alanına;
* 918 10 7 3 df m homepardusdiskdurumtxt
yazıldığında sabah 09:00 ile akşam 18:00 saatleri arası çalıştırılır Gün alanına;
* * 1015 7 3 df m homepardusdiskdurumtxt
yazıldığında ayın 10 ile 15 günleri arası defalarca çalışır Ay alanına;
* * * 17 3 df m homepardusdiskdurumtxt
yazıldığında yılın ocak ayı ile Temmuz ayları arası iş günü alanına;
* * * * 15 df m homepardusdiskdurumtxt
yazarak hafta içi yani Pazartesi ve Cuma günleri arası ödev her zaman çalışır Son layık olan operasyon alanında bu parametre kullanılmaz
Her kullanıcının oluşturduğu cron grörevleri “varspoolcron dizini altındaki crontab klasöründe kullanıcı adı ile barındırırlır Görsel olarak da bu dosyalara erişerek değiştirme yapılabilir
Küçük bir örnek fakat BÜYÜK bir tayin !
Gerçekte crontab ’ın en fazla başvuru alanlarından biri yedekleme işlemleridir Dosya ya da dizinleri belirtilmiş süre da belirlenen yere yedekleme yaptırılabilir Mesela;
00 16 1 * 1 cp R homepardusResimler homepardusyerine geçen kimse
şeklinde yazdığınızda her ayın 1 ’inde saat 16:00 da resimler klasörünüzü yerine koyma klasörüne tüm daha alçak klasörleri ile beraber kopyalar Bu ve bunun gibi cron görevleri kullanıcıların ihtiyaçlarına karşılayacak ufak görevlerdir
Kaynakça:
http:enwikipediaorgwikiCron