ÝSÝM
- Provided by: manpages-tr (Version: 1.0.5.1-2)
- Report a bug
Bir crontab dosyasýnda, cron(8) sürecinin hangi zamanda hangi komutu çalýþtýracaðýný belirten açýklamalar bulunur. Her kullanýcý kendi crontab dosyasýna sahip olabilir. Bu kullanýcýlara ait crontab dosyalarýndaki zamanlanmýþ komutlar, crontab dosyasýnýn sahibi hangi kullanýcý ise onun adý altýnda çalýþtýrýlýr. Uucp ve News genellikle kendi crontab dosyalarýna sahiptirler, bu sayede bir cron komutunun parçasý olarak su(1) komutunu çalýþtýrma ihtiyacý ortadan kalkmýþ olur.
Boþ satýrlar, sekmeler ve ara boþluklar yok sayýlýrlar. `#' karakteri ile baþlayan satýrlar yorum satýrlarýdýr. Dosyanýn iþletilmesi sýrasýnda sistem tarafýndan önemsenmezler. Unutmayýn ki, cron komutlarý ve yorumlar ayný satýrda olamazlar. Bir yorum satýrýnýn devamýnda, bir cron komutu yer alýyorsa, sistem burasýný da yorum olarak kabul eder ve iþleme sokmaz. Ayný þekilde; yorumlar da, ortam deðiþkeni ayarlarý biçiminde, ayný satýrda yer alamazlar.
Geçerli bir crontab satýrý, ya ortam deðiþkenidir, ya da bir cron komutudur. Bir ortam deðiþkeni þu þekilde olur:
Eþit iþaretinin yanýndaki boþluklar seçime baðlýdýr. Deðer içindeki sonraki boþluklar, isme atanan deðerin bir parçasý olarak kabul edileceklerdir. Deðer dizgesi, önde veya arkada yer alan boþluklarý korumak için, çift ya da tek týrnak içinde olabilir. Buradaki temel nokta çift týrnak ile baþlarsanýz çift týrnak ile bitirmeniz gerektiðidir. Ayný þekilde tek týrnak ile baþlarsanýz tek týrnak ile bitirmelisiniz.
Pek çok ortam deðiþkeni, cron(8) süreci tarafýndan düzenlenir. SHELL deðiþkeni, /bin/sh'ý iþaret eder. LOGNAME ve HOME, crontab dosyasýnýn sahibinin /etc/passwd dosyasýndaki deðerlerine göre ayarlanýr. HOME ve SHELL ortam deðiþkenleri, crontab içindeki ayrýca belirtilerek önemsenmeyebilir ama LOGNAME önemsenir.
UYARI: BSD sistemlerde, LOGNAME deðiþkeni bazen USER olarak adlandýrýlabilir. Bu tür sistemlerde, USER deðiþkeni de ayarlanmalýdýr.
LOGNAME, HOME ve SHELL'e ek olarak; cron(8), bu crontab dosyasýndaki komutlarýn çalýþmasý sonucu e-posta göndermeyi gerektirecek bir durum ortaya çýkmýþsa, MAILTO deðiþkenini de arar. Þayet MAILTO tanýmlý ve içeriði boþ deðil ise, posta burada belirtilen kullanýcýya gönderilir. Þayet MAILTO belirtilmiþ ama içeriði boþ ise, (MAILTO="" gibi) e-posta gönderilmez. Diðer durumlarda, e-posta, crontab dosyasýnýn sahibi olan kullanýcýya gönderilir. Bu seçenek, cron'u yüklerken postacý olarak /usr/lib/sendmail yerine /bin/mail kullanmaya karar verdiðiniz durumlarda oldukça faydalý olur -- /bin/mail sahte isme izin vermez ve UUCP genellikle onun e-postalarýný okumaz.
Bir cron komutunun yapýsý V7 standartý ile oldukça uyumludur. Her satýr, sonunda bir komut olan, beþ adet zaman ve tarih alanýna sahiptir. Þayet bu bir sistem crontab dosyasý ise kullanýcý adý da belirtilir. Komutlar cron(8) tarafýndan iþletilir. Burada belirtilen bir komutun iþletilmesi için: dakika, saat ve ay bölümünün gerçek zaman ile ayný olmasý ve haftanýn günü ya da ayýn günü bölümününden en az birisinin gerçek zaman ile ayný olmasý gerekir (açýklama için aþaðýdaki NOT'a bakýnýz). Burada unutulmamasý gereken bir nokta vardýr: kayýp saatler diye adlandýrabileceðimiz zaman (yaz saati, kýþ saati uygulamalarýnda geçiþlerde yaþanan saat kaybý gibi) için ayarlanmýþ görevler asla çalýþmayacaktýr. Benzer þekilde, bir seferden daha fazla yaþanan saatler için ayarlanmýþ görevlerde iki kez çalýþtýrýlacaktýr (yaz saati kýþ saati deðiþimlerinde saatin geriye alýnýp, iki kere ayný saat diliminin yaþanmasý).
cron(8), her dakika baþý cron giriþlerini gözden geçirir.
Zaman ve tarih alanlarý:
Alan adý izin verilen deðerler -------- --------------------- minute 0-59 (dakika) hour 0-23 (saat) day of month 1-31 (ayýn günü) month 1-12 (veya ay isimleri) day of week 0-7 (Pazar günü için 0, 7; isim kullanýlabilir.)
Yýldýz (*) ile iþaretlenmiþ bir alan baþtan sona (=hepsi) anlamýna gelir.
Sayý aralýklarý belirtilebilir. Aralýklar, `-' iþareti ile ayrýlmýþ iki sayýdan oluþur. Belirtilen bir aralýða baþlangýç ve bitiþ sayýlarý da dahildir. Örneðin; 8-11 saat aralýðý: 8,9,10 ve 11 saatlerini kapsar.
Listeler kullanýlabilir. Liste; virgül ile ayrýlmýþ sayýlar dizesidir. Örneðin: ``1,2,5,9'' ve ``0-4,8-12''.
Adým deðerleri aralýklarla birlikte kullanýlabilir. Bir aralýktan sonra `/<sayý>' þeklinde ifade edilir. Buradaki sayý adýmlama deðeridir. Örneðin; "0-23/2" saat ifadesi, V7 standartýnda "0,2,4,6,8,10,12,14,16,18,20,22" deðerlerini ifade etmektedir. Adýmlama bir yýldýzdan `*'sonra da yapýlabilir. "*/2" nin anlamý; her iki saatte bir demektir.
"month" ve "day of week" alan adlarý için isimler de kullanýlabilir. Büyük/küçük harf ayrýmý olmaksýzýn ingilizce ismin ilk üç harfini kullanabilirsiniz. Ýsim aralýklarý ve isim listelerini kullanamazsýnýz.
6. alan (satýrýn geri kalaný kýsmý) çalýþtýrýlacak komutu belirtir. Satýrsonu karakterine veya "%" iþaretine kadar olan kýsým, /bin/sh ya da crontab'ýn SHELL ortam deðiþkenince tanýmlanmýþ olan kabuk tarafýndan çalýþtýrýlýr. Yüzde iþareti `%', `\' iþareti ile öncelenmedikçe, satýrsonu karakteri haline dönüþür ve ilk `%' den sonraki tüm bilgi, standart girdiye komut olarak gönderilir.
Not - komutun çalýþtýrýlacaðý gün iki alandan ayarlanabilir: ayýn günü ve haftanýn günü. Her iki alanda belirli bir gün ile sýnýrlýysa (yani `*' deðilse, yani belirtilmiþ bir gün varsa), gerçek zaman bu iki deðerden biri ile eþleþince, komut çalýþtýrýlýr. Örneðin; ``30 4 1,15 * 5'' dizgesi bir komutu her ayýn 1. ve 15. günleri saat 4:30'da, artý her Cuma çalýþtýrýlýr.
# komutlarý çalýþtýrmak için /bin/sh kullanýlsýn, # /etc/passwd'de belirtilen önemsizdir SHELL=/bin/sh # kimin crontab'ý olduðunu boþver, bütün çýktýlarý `paul'e postala MAILTO=paul # # hergün gece yarýsýndan sonra beþ dakika çalýþtýr 5 0 * * * $HOME/bin/daily.job >> $HOME/tmp/out 2>&1 # her ayýn ilk günü saat 14:15 de çalýþtýr -- çýktýlar paul'e postalansýn 15 14 1 * * $HOME/bin/monthly # hafta içi (Pazartesi-Cuma) hergün saat 22:00'da çalýþtýr ve Joe'yu kýzdýr 0 22 * * 1-5 mail -s "Saat 22:00" joe%Joe,%%Çocuklarýn nerede?% 23 0-23/2 * * * echo "her gün 00:23, 02:23, 04:23 de çalýþýr" 5 4 * * sun echo "her Pazar 4:05'de çalýþýr"
/etc/crontab Sistem crontab dosyasý
Haftanýn günlerini belirtirken; hem 0. gün, hem de 7. gün Pazar olarak kabul edilecektir. BSD ve ATT bu konuda anlaþamamýþlar gibi görünüyor.
Listeler ve aralýklar ayný alan içinde birlikte olamazlar. "1-3,7-9" dizgesi ATT veya BSD cron'u tarafýndan reddedilecektir. cron komutu, bu dizge yerine "1-3" veya "7,8,9" þeklinde tanýmlamalarý kabul edecektir.
Aralýklar adýmlama içerebilir. "1-9/2" , "1,3,5,7,9" ile ayný anlamdadýr.
Ay ve haftanýn günleri isim olarak belirtilebilir.
Ortam deðiþkenleri crontab içinden ayarlanabilir. BSD veya ATT'de alt süreçlere aktarýlan ortam, /etc/rc içindekilerden birisidir.
Komut çýktýsý; crontab'ýn sahibine postalanabilir (BSD bunu beceremez), crontab'ýn sahibinden baþkasýna postalanabilir (SysV bunu beceremez) veya bu özellik kapatýlabilir ve kimseye posta gönderilmez (SysV bunu da yapamaz).
Paul Vixie <paul (at) vix.com> tarafýndan yazýlmýþtýr.
Yalçýn Kolukýsa <yalcink01 (at) yahoo.com>, Kasým 2003