Benim sistemim makinemde bir sürü cron işi ayarladı. Tam olarak ne zaman planlandığını bilmek istiyorum. Bu listeyi nasıl alabilirim?
Benim sistemim makinemde bir sürü cron işi ayarladı. Tam olarak ne zaman planlandığını bilmek istiyorum. Bu listeyi nasıl alabilirim?
Yanıtlar:
Linux sisteminizin nasıl kurulduğuna bağlı olarak, şunlara bakabilirsiniz:
/var/spool/cron/*
(kullanıcı crontabs)/etc/crontab
(sistem genelinde crontab)Ayrıca, birçok dağıtımda:
/etc/cron.d/*
Bu yapılandırmalar aynı sözdizimine sahiptir. /etc/crontab
/etc/cron.hourly
, /etc/cron.daily
, /etc/cron.weekly
,/etc/cron.monthly
Bunlar sadece dizin adlarına göre saatlik, günlük, haftalık veya aylık olarak yürütülen çalıştırılabilir dosyaları içeren dizinlerdir.
Bunun da /var/spool/at/*
ötesinde , işlerde (çek ), anakronda ( /etc/anacrontab
ve /var/spool/anacron/*
) ve muhtemelen de unuttuğum başkalarında olabilirsiniz.
/etc/cron.daily
. Bu daily
dosya nasıl çalışıyor? Günlük işler ne zaman çalışır? Makinemde öğlen koşuyor gibi görünüyorlar, ancak sysadmin'e bunun yerine gece yarısına nasıl değiştirileceğini söylemek istiyor.
/etc/crontab
, örneğin Ubuntu sistemimde bu: 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
saat 6:25 demek.
cronie
arka plan programı, yapılandırmayı kullananlarla ilgileniyor /etc/anacrontab
.
/var/cron
.
Çoğu Crons ile (örneğin Vixie-Cron - Debian / Ubuntu varsayılan, Cronie - Fedora varsayılan, Solaris Cron ...), geçerli kullanıcı için zamanlanmış cron işleri listesini alırsınız:
$ crontab -l
veya başka bir kullanıcı için
# crontab -l -u juser
Tüm kullanıcılar için crontabs almak için tüm kullanıcılar üzerinde döngü ve bu komutu çağırabilirsiniz.
Alternatif olarak, makara dosyalarını da arayabilirsiniz. Genellikle, /var/spool/cron
örneğin, aşağıdaki dizini vcron için altına kaydedilirler.
/var/spool/cron/crontabs
Tüm kullanıcıların yapılandırılmış crontab'larını içerir - ayrıca, sistemde bulunan crontab üzerinden işleri yapılandırabilen kök kullanıcı dışında
/etc/crontab
İle cronie (Fedora / CentOS üzerinde varsayılan), bir orada .d
yanı sistem cron işleri, stil yapılandırma dizini:
/etc/cron.d
(Her zaman olduğu gibi, .d
dizin farklı paketlerin parçası olan yapılandırma girişlerini korumayı kolaylaştırır.)
Kolaylık sağlamak için, çoğu dağıtım ayrıca bağlantılı / depolanmış komut dosyalarının düzenli aralıklarla yürütüldüğü bir dizin de sağlar, örneğin:
/etc/cron.daily
/etc/cron.hourly
/etc/cron.monthly
/etc/cron.weekly
Bu komut dosyalarının zamanında yürütülmesi genellikle run-parts
sistem crontab'daki girişler veya anakron aracılığıyla yönetilir .
İle systemd (Fedora üzerinde örneğin CentOS 7, ...) periyodik iş yürütme ayrıca aracılığıyla yapılandırılabilir zamanlayıcı ünitelerinin . Etkinleştirilmiş sistem zamanlayıcıları aşağıdakiler aracılığıyla görüntülenebilir:
$ systemctl list-timers
Kök dışındaki kullanıcıların, zamanlayıcıların da yapılandırıldığı yerlerde çalışan kullanıcı sistemi örnekleri olabileceğini unutmayın. Örneğin, Fedora’da, varsayılan olarak, oturum açmış olan her kullanıcı için bir kullanıcı sistemi örneği başlatılır.
$ ps aux | grep 'systemd[ ]--user'
Bu kullanıcı zamanlayıcılar aşağıdakiler aracılığıyla listelenebilir:
$ systemctl --user list-timers
list-timers
Komutu vermenin bir alternatifi *.timer
, normal sistemde ve user systemd config dizinlerinde zamanlayıcı birim dosyalarını (desen :) ve bunlara sembolik bağları aramaktır:
$ find /usr/lib/systemd/ /etc/systemd -name '*.timer'
$ find /home '(' -path '/home/*/.local/share/systemd/user/*' \
-o -path '/home/*/.config/systemd/*' ')' \
-name '*.timer' 2> /dev/null
(Normal servis ünitelerinde olduğu gibi, bir zamanlayıcı ünite, doğru sistemd konfigürasyon dizininde sembolik bir link oluşturarak etkinleştirilir.)
Ayrıca bakınız:
crontab -l -u root
(çünkü kaçmak hakkında bilmek istediğim cronjobs root
) ve kullanma ayrıcalığım olmadığını söylüyor -u
.
root
kullanıcı olarak çağırmanız gerekir .
cronie
Fedora ve RHEL6'da gönderildiği gibi, içindekilere atıfta bulunmaz, /etc/crontab
bunun yerine kullanılır /etc/anacrontab
. Herhangi bir config dosyasında bunlara atıfta bulunmayan gerçek uygulamalar hakkında yanılmış olabilirim. (Ama sonra, ben de aşağı oy vermedim .... Sadece söylüyorum.)
Verilen kullanıcı için tüm yayınları listelemek için.
crontab -u kullanıcı adı -l;
Tüm kullanıcıların tüm yayınlarını listelemek için
Süper kullanıcı olarak çalıştır
#!/bin/bash
#List all cron jobs for all users
for user in `cat /etc/passwd | cut -d":" -f1`;
do
crontab -l -u $user;
done
root
veyaapache
ya da her türlü, ama bir gerekir kullanmak/etc/crontab
veya (daha iyi, en dağıtımlardan)/etc/cron.d
ve/etc/cron.[timeframe]
.