Makinemdeki tüm zamanlanmış cron işlerinin bir listesini nasıl alabilirim?


201

Benim sistemim makinemde bir sürü cron işi ayarladı. Tam olarak ne zaman planlandığını bilmek istiyorum. Bu listeyi nasıl alabilirim?


3
Bu sorunun cevabı değil, sadece en iyi uygulamalar hakkında bir not. Bir edebilir için kullanıcı başına cron işleri gibi yapılandırabilir rootveya apacheya da her türlü, ama bir gerekir kullanmak /etc/crontabveya (daha iyi, en dağıtımlardan) /etc/cron.dve /etc/cron.[timeframe].
mattdm


Bunu yararlı bir dereceye kadar otomatikleştiren bir senaryo yayınladım: - stackoverflow.com/questions/134906/… Mükemmel değil ama muhtemelen ihtiyaçların% 90'ını kapsıyor. Bash yazmamak için iyi bir örnek.
david collier,

Yanıtlar:


143

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/anacrontabve /var/spool/anacron/*) ve muhtemelen de unuttuğum başkalarında olabilirsiniz.


4
Teşekkürler, onları buldum /etc/cron.daily. Bu dailydosya 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.
Frank,

5
cron.daily denir /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.
Kowh

Daha fazla veri noktası istiyorsanız cron.daily, RHEL5 sistemimde / etc / crontab adresinden de çağrılıyor.
jsbillings

Daha yeni Fedora'da (ve muhtemelen RHEL6 - henüz bakmamıştım), croniearka plan programı, yapılandırmayı kullananlarla ilgileniyor /etc/anacrontab.
mattdm

Bazen de var /var/cron.
CMCDragonkai,

135

Ç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 .dyanı sistem cron işleri, stil yapılandırma dizini:

/etc/cron.d

(Her zaman olduğu gibi, .ddizin 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-partssistem 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-timersKomutu 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:


Oy vermedim Ama az önce denedim 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.
Frank,

3
Öyleyse, bunu yeterli ayrıcalıklarla - yani rootkullanıcı olarak çağırmanız gerekir .
maxschlepzig

2
Yine de tamamlanmadı - cron'un bazı sürümleri /etc/cron.d ve /etc/cron.{daily,hourly,monthly,weekly} adresinden / etc / crontab adlı bir yardımcı program olmadan işleri çalıştırır.
mattdm

2
@ maxschlepzig - ama her zaman değil. Ve soru şu ki, " tüm cron işlerinin listesini nasıl alabilirim "; Cevabı "iyi, işte bunlardan bazıları" olan bir cevap.
mattdm

1
@ maxschlepzig - cronieFedora ve RHEL6'da gönderildiği gibi, içindekilere atıfta bulunmaz, /etc/crontabbunun 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.)
mattdm

5

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

1
OP tüm cron işlerinin bir listesini istiyor .
Drav Sloan

1
Nedense /etc/cron.d/ işleri göstermiyor.
jamshid

Çalışmıyor. msgstr "www-data için crontab yok". ancak kullanıcı adı www-data var.
mishanon
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.