CRON(8) | Sistem Yönetim Komutları | CRON(8) |
cron - zamanlanmış komutları çalıştıran süreç (Debian Cron)
cron, çok kullanıcılı çalışma düzeyine girerken /etc/init.d tarafından otomatik olarak çalıştırılır.
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
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:
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.
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.
Nisan 2010 | Debian Cron |