cron - zamanlanmış komutları
çalıştıran süreç (Debian Cron)
- cron
- [-f] [-l] [-L DÜZEY]
cron, çok kullanıcılı
çalışma düzeyine girerken
/etc/init.d
tarafından otomatik olarak
çalıştırılır.
- -f
- Önalanda kalır, ardalan süreci haline
gelmez.
- -l
-
/etc/cron.d dosyaları için LSB uyumlu
isimler etkin olur. Bunun /etc/cron.hourly (saatlik),
/etc/cron.daily (günlük), /etc/cron.weekly
(haftalık) veya /etc/cron.monthly (aylık)
altındaki dosyaların çözümlenmesinde
bir etkisi olmaz.
- -n
- Epostaları gönderirken konu alanında
tam nitelenmiş alan adları yer almaz. cron
öntanımlı olarak konak adını
kısaltır.
-
-L DÜZEY
- İşler hakkında turulacak
günlükleri aşağıdaki değerlerin
toplamı olarak belirler (hatalar bu seçeneğe
bakılmaksızın günlüklenir):
1 tüm cron işlerinin başlangıcını günlüğe kaydeder
2 tüm cron işlerinin bitişini günlüğe kaydeder
4 tüm başarısız (çıkış durumu != 0) cron işlerini günlüğe kaydeder
8 tüm cron işlerinin süreç kimliklerini günlüğe kaydeder
- Tüm cron işlerinin
başlangıcının günlüğe
kaydedilmesi öntanımlıdır. DÜZEY
0 olursa günlükleme devre dışı
bırakılır. 15 değeri tüm
seçeneklerin seçilmesini sağlar.
cron biriktirme alanını (
/var/spool/cron/crontabs)
crontab dosyaları için (
/etc/passwd
içindeki hesaplara göre adlandırılır) arar;
bulunan
crontab dosyaları belleğe yüklenir. Bu
dizindeki
crontab dosyalarına doğrudan
erişilmemeli, bunlara erişmek ve güncellemek için
crontab(1) komutu kullanılmalıdır.
cron ayrıca biraz farklı bir biçimde olan
/etc/crontab’ı da okur (bkz.
crontab(5)).
Debian’da
/etc/crontab içeriği,
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly ve
/etc/cron.monthly altında uygulama
çalıştırmak için önceden
tanımlanmıştır. Bu yapılandırma
Debian’a özeldir, bkz:
DEBIAN’A ÖZEL.
Ek olarak, Debian’da
cron,
/etc/cron.d dizinindeki
dosyaları okur.
cron,
/etc/cron.d içindeki
dosyalara
/etc/crontab dosyasına davrandığı
gibi davranır (bu dosyanın özel biçimini izler,
yani kullanıcı alanını içerir). Ancak,
/etc/crontab’dan bağımsızdır:
örneğin, ortam değişkenlerini ondan devralmaz. Bu
değişiklik Debian’a özeldir, bkz:
DEBIAN’A ÖZEL.
/etc/crontab gibi,
/etc/cron.d dizinindeki dosyalar da
değişiklikler için izlenir. Genel olarak, sistem
yöneticisi
/etc/cron.d/ kullanmamalı, standart sistem
geneli
crontab’ı
/etc/crontab
dosyasını kullanmalıdır.
/etc/crontab ve
/etc/cron.d içindeki dosyalar
root
kullanıcısına ait olmalı, grup veya
başkaları tarafından yazılabilir
olmamalıdır. Biriktirme alanının aksine,
/etc/cron.d altındaki dosyalar veya
/etc/cron.hourly,
/etc/cron.daily,
/etc/cron.weekly ve
/etc/cron.monthly
altındaki dosyalar sembolik bağ olabilir, ancak hem sembolik
bağın hem de hedefinin
root iyeliğinde
olması şarttır.
/etc/cron.d altındaki
dosyaların çalıştırılabilir
olması gerekmezken,
/etc/cron.hourly, /etc/cron.daily,
/etc/cron.weekly ve
/etc/cron.monthly altındaki
dosyaların
run-parts(8) tarafından
çalıştırılabilir olması gerekir.
cron daha sonra her dakika uyanır, saklanan tüm
crontab dosyalarını inceler, her komutun o dakika
çalıştırılıp
çalıştırılmayacağına bakar.
Komutları yürütürken, her
çıktı
crontab dosyasının sahibinden
(veya -varsa -
crontab dosyasındaki
MAILFROM ortam
değişkeninde belirtilen e-posta adresinden)
crontab
dosyasının sahibine (veya varsa
crontab
dosyasındaki
MAILTO ortam değişkeninde adı
geçen kullanıcıya) postalanır. Bu
süreçleri çalıştıran
cron’un alt süreçlerinin adları,
syslog(2) ve
ps(1) çıktısında
görüleceği gibi, büyük harfe
dönüşmeye zorlanır.
Ek olarak,
cron, biriktirme dizininin değişiklik
zamanını (veya
/etc/crontab dosyasındaki
değişiklik zamanını) değişip
değişmediğini görmek için denetler ve
değiştiyse,
cron tüm
crontab
dosyalarının değişiklik zamanını
inceler ve değişenleri yeniden yükler. Bu nedenle, bir
crontab dosyası değiştirildiğinde
cron’un yeniden başlatılması gerekmez.
crontab(1) komutunun, bir
crontab dosyasını
değiştirdiğinde biriktirme dizininin
değişiklik zamanını da güncellediği
unutulmamalıdır.
Zaman 3 saatten daha az değiştiğinde, örneğin
yaz saatinin başında ve sonunda, özel durumlar söz
konusudur. Zaman ileri alınmışsa, atlanan zamanda
çalışacak olan süreçler,
değişiklikten hemen sonra
çalıştırılır. Tersine, zaman 3
saatten daha az geriye alınmışsa, tekrarlanan zamana denk
gelen işler yeniden
çalıştırılmayacaktır.
Yalnızca belirli bir zamanda çalışan işler
(saatlik olarak veya saat veya dakika belirtecinde ’*’ ile
belirtilmeyenler) etkilenir. Joker karakter ile belirtilen işler yeni
saate göre anında
çalıştırılır.
3 saatten fazla olan saat değişiklikleri, saatte yapılan
düzeltmeler olarak kabul edilir ve yeni saat hemen
kullanılır.
cron, eylemini
LOG_CRON syslog oluşumuna kaydeder ve
günlük kaydı standart
syslogd(8)
kullanılarak denetlenebilir.
Debian sistemlerinde
cron artalan sürecinin yerelleştirme
ortamı
/etc/default/cron içinde
yapılandırılırsa,
/etc/environment
kullanılarak veya önceki değerleri geçersiz
kılan sonraki değerlerle
/etc/default/locale
kullanılarak ortam yönetilebilir. Bu dosyalar okunur ve bunlar
LANG,
LC_ALL ve
LC_CTYPE ortam
değişkenlerini ayarlamak için kullanılır.
Bu değişkenler daha sonra, öntanımlı olarak
’C’ yerelinde olan postaların karakter kümesini
ayarlamak için kullanılır.
Bu,
cron altında çalışan görevlerin
ortamını ETKİLEMEZ. Görev ortamının
nasıl değiştirileceği hakkında
ayrıntılı bilgi için bkz:
crontab(5).
Artalan süreci, saat dilimi için varsa,
/etc/timezone’daki tanımı kullanır.
Ortam, kullanıcının
crontab
tanımlarında yeniden tanımlanabilir, ancak
cron,
görevleri yalnızca tek bir saat diliminde işleyecektir.
Debian,
cron’a başlangıçta mevcut olmayan
bazı değişiklikler getiriyor. Getirilen en önemli
değişiklikler şunlardır:
- •
-
/etc/crontab üzerinden,
/etc/cron.{hourly,daily,weekly,monthly} desteği,
- •
- /etc/cron.d desteği (paket
crontab’ları için özel dizin),
- •
- PAM desteği,
- •
- SELinux desteği,
- •
- auditlog desteği,
- •
- DST ve zamanla ilgili diğer
değişiklikler ve düzeltmeler,
- •
- SUID root yerine SGID crontab(1),
- •
- Debian’a özgü dosya konumları
ve komutlar,
- •
- Debian’a özgü
yapılandırma ( /etc/default/cron),
- •
- çeşitli daha küçük
özellik ve düzeltmeler.
/etc/cron.hourly, /etc/cron.daily, /etc/cron.weekly ve
/etc/cron.monthly için destek Debian’da
/etc/crontab dosyasındaki öntanımlı
yapılandırma ile sağlanır (
crontab(5)
sayfasındaki sistem çapında örneklere
bakılabilir). Sistem çapında
öntanımlı
crontab, dört görev
içerir: her saat, her gün, her hafta ve her ay
çalıştır. Bu görevlerin her birini,
dizinlerin her birini bir girdi olarak sağlayan
run-parts(8)
yürütür.
anacron(8) kuruluysa, iki artalan
süreci arasındaki çakışmaları
önlemek için bu görevler (saatlik görev
hariç) devre dışı bırakılır.
Yukarıda açıklandığı gibi, bu dizinler
altındaki dosyaların bazı uygunluk denetimlerinden
geçmesi gerekir: çalıştırılabilir
olmak, root’a ait olmak, grup veya başkaları
tarafından yazılabilir olmamak ve sembolik bağlar varsa,
root ait dosyalara işaret etmek. Ek olarak, dosya adları
run-parts(8)’ın dosya adı gereksinimlerine uygun
olmalıdır: bunlar tamamen harflerden, rakamlardan
oluşmalı, alt çizgi (’_’) ve kısa
çizgi (’-’) dışında özel
imler içermemelidir. Bu gereksinimlere uymayan hiçbir dosya
run-parts(8) tarafından yürütülmeyecektir.
Örneğin, noktalar içeren her dosya yok
sayılır. Bu,
/etc/cron.d/ içindeki
dosyaları yapılandırma dosyaları olarak
işlerken, Debian paket yönetim sistemi tarafından
bırakılan dosyalardan (yani
.dpkg-dist, .dpkg-orig,
.dpkg-old ve
.dpkg-new) herhangi birinin
cron
tarafından
çalıştırılmasını
önlemek için yapılır .
Bu özellik, sistem yöneticileri ve paketler tarafından
belirli aralıklarla çalıştırılacak
görevleri içerecek şekilde kullanılabilir. Bu
dizinlerdeki paketler tarafından oluşturulan dosyalar,
onları sağlayan paketin adını
almalıdır.
/etc/cron.d/ desteği, bu konumu sistem çapında
crontab biriktirme alanı olarak kullanan
cron artalan
sürecinin kendisinde bulunur. Bu dizin,
/etc/crontab
içinde kullanılan biçimde görevleri
tanımlayan dosyalar içerebilir, yani kullanıcı
cron biriktirme alanındakinden farklı olarak, bu
dosyaların adları, görev tanımında
olduğu gibi görevi çalıştıracak
kullanıcının adını içermelidir.
Bu dizindeki dosyaların root’a ait olması gerekir,
yürütülebilir olmaları gerekmez (bunlar
/etc/crontab gibi yapılandırma
dosyalarıdır) ve
run-parts(8) tarafından
kullanılanla aynı adlandırma kuralına
uymaları gerekir: yalnızca büyük ve
küçük harf, rakam, alt çizgi ve kısa
çizgiden oluşur. Bu, herhangi bir nokta içeremeyecekleri
anlamına gelir.
cron’a
-l seçeneği
belirtilmişse (bu seçenek /
etc/default/cron
üzerinden ayarlanabilir, aşağıya bakın),
run-parts(8)’ın
--lsbsysinit
seçeneğinde belirtildiği gibi LSB isim uzayı
belirtimine tam olarak uymaları gerekir.
Bu özelliğin amacı,
/etc/cron.{hourly,daily,weekly,monthly} dizinlerinden daha iyi
zamanlama gerektiren paketlerin
/etc/cron.d dizinine bir
crontab
dosyası eklemesine izin vermektir. Bu tür dosyalar,
onları sağlayan paketin adını
almalıdır.
Ayrıca,
cron’un öntanımlı
yapılandırması,
cron artalan sürecini
başlatan
init.d betiği tarafından okunan
/etc/default/cron dosyasında bulunur. Bu dosya,
cron’un sistemin ortam değişkenlerini okuyup
okumayacağını belirler ve
yürütülmeden önce, günlük
kaydını yapılandırmak veya
/etc/cron.d
altındaki dosyalara nasıl davranacağını
belirlemek için
cron uygulamasına seçenek eklemeyi
mümkün kılar.
crontab(1),
crontab(5),
run-parts(8)
Paul Vixie bu kılavuz sayfasının ilk metninin
yazarıdır. Bu kılavuz sayfası Debian için
Steve Greenland, Javier Fernandez-Sanguino ve Christian Kastner
tarafından yeniden yazılmıştır.
© 2003 Yalçın Kolukısa
© 2022 Nilgün Belma Bugüner
Bu çeviri özgür yazılımdır:
Yasaların izin verdiği ölçüde
HİÇBİR GARANTİ YOKTUR.
Lütfen, çeviri ile ilgili bildirimde bulunmak veya çeviri
yapmak için
https://github.com/TLBP/manpages-tr/issues adresinde
"New Issue" düğmesine tıklayıp yeni bir
konu açınız ve isteğinizi belirtiniz.