CRON(8) | Sistem Yönetim Komutları | CRON(8) |
İSİM
cron — zamanlanmış komutları çalıştıran süreç (Debian Cron)
KULLANIM
cron |
[-f ] [-l ] [-L DÜZEY ] |
AÇIKLAMA
cron, çok kullanıcılı çalışma düzeyine girerken /etc/init.d tarafından otomatik olarak çalıştırılır.
SEÇENEKLER
-
-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.
EK BİLGİ
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.
ORTAM DEĞİŞKENLERİ
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’A ÖZEL
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 (paketcrontab
’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.
YAZAN
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.
ÇEVİREN
* Vixie Cron Lisans ve Telif Hakkı bilgileri: * * Copyright 1988,1990,1993 by Paul Vixie * All rights reserved * * Distribute freely, except: don’t remove my name from the source or * documentation (don’t take credit for my work), mark your changes (don’t * get me blamed for your possible bugs), don’t alter or remove this * notice. May be sold if buildable source is provided to buyer. No * warrantee of any kind, express or implied, is included with this * software; use at your own risk, responsibility for damages (if any) to * anyone resulting from the use of this software rests entirely with the * user. * * Send bug reports, bug fixes, enhancements, requests, flames, etc., and * I’ll try to keep a version up to date. I can be reached as follows: * Paul Vixie (paul (at) vix.com) uunet!decwrl!vixie!paul