Cron / crontab günlüğü nerede?


753

Cron işimin ne zaman ve ne zaman yürüdüğünü doğrulamak istiyorum. İşlerim için bir kayıt olduğuna inanıyorum sudo crontab -e, ama nerede?

Google’ı aradım ve bakmak için /var/log(adında 'cron' ile bir şey görmedim) ve /etc/syslog.confsahip olmadığım dosyayı düzenlemek için önerilerde bulundum.

Yanıtlar:


895

Varsayılan kurulumda cron işleri giriş yaptı

/var/log/syslog

Çalıştırarak bu günlük dosyasında sadece cron işleri görebilirsiniz

 grep CRON /var/log/syslog

Herhangi bir şeyi yeniden yapılandırmadıysanız, girişler orada olacak.


46
Yüklenmiş MTA yoksa, cron iş çıktısını çöpe atar.
Barry Kelly

11
Cron günlüğü /var/log/dizinde başka bir dosyada olabilir . Cron.log veya eşdeğeri için kontrol edin.
Navigatron

4
bu bana işten çıktı vermiyor. sadece cronun işlendiğine dair genel bir mesaj verir.
Chovy

2
AWS üzerinde / var / log / cron
tsukimi

5
@shadi ayrıca büyük / grep -i CRONküçük harfe duyarsız da arama yapabilirsiniz
nafg

236

Yalnızca syslog'da görünen CRON girişlerini içeren bir cron.log dosyası oluşturabilirsiniz. Aşağıdaki yönergeleri izlerseniz, CRON işlerinin syslog'da görünmeye devam edeceğini unutmayın.

Dosyayı aç

/etc/rsyslog.d/50-default.conf

İle başlayan satırı bulun:

#cron.*

bu satırı uncomment, dosyayı kaydedin ve rsyslog yeniden başlatın:

sudo service rsyslog restart

Şimdi burada bir cron günlük dosyası görmelisiniz:

/var/log/cron.log

Cron etkinliği şimdi bu dosyaya kaydedilecek (syslog'a ek olarak).

Cron.log'da, cronun /etc/cron.hourly, cron.daily, vb. Komut dosyalarını çalıştırdığı zamanki girişleri göreceğinizi unutmayın - örneğin:

Apr 12 14:17:01 cd CRON[14368]: (root) CMD (   cd / && run-parts --report /etc/cron.hourly)

Ancak, hangi komut dosyalarının gerçekten /etc/cron.daily veya /etc/cron.hourly içinde çalıştırıldığı hakkında daha fazla bilgi göremezsiniz, bu komut dosyaları cron.log'a (veya belki de başka bir günlük dosyasına) doğrudan çıktı vermiyorsa.

Bir crontab'ın çalıştığını ve cron.log veya syslog'da onu aramak zorunda olmadığınızı doğrulamak istiyorsanız, çıktısını istediğiniz bir günlük dosyasına yönlendiren bir crontab oluşturun - şunun gibi:

01 14 * * * /home/joe/myscript >> /home/log/myscript.log 2>&1

Bu, tüm standart çıktıları ve belirtilen günlük dosyasına çalıştırılan komut dosyası tarafından üretilebilecek hataları yönlendirecektir.


1
Bence bu cevap gelecekte daha iyi. Yani syslog dosyanız daha açık.
22gn 13

9
Ayrıca cron günlüğünü syslog'dan çıkarmak için satırı *.*;auth,authpriv.none -/var/log/syslogdeğiştirebilirsiniz *.*;auth,authpriv.none,cron.none -/var/log/syslog.
Koen.

CentOS 6'da cron. * /Etc/rsyslog.conf dosyasında tanımlanmıştır, oysa ben rsyslog.d klasöründe boşum.
Scott Chu

ne anlama geliyor 2>&1?
John Joe

2
@JohnJoe 2> & 1, stderr'i stdout'a iletmek için kullanılır, bu şekilde ayrıca stderr dosyasını günlük dosyasına kaydedersiniz.
Sampo Sarrala

79

Bazen bu durumda sürekli izlemek yararlı olabilir:

tail -f /var/log/syslog | grep CRON

10
Muhtemelen kullanmakta -F, isim değişikliği boyunca dosyayı takip edecek, böylece kesiliyor / taşındığında, örneğin /var/log/syslog.1.gzhala mevcut /var/log/syslogdosyayı takip ediyorsunuzdur . tail xxxx -f --retry
Erkek

37

Ayrıca bireysel cronjob'ların çıktılarını daha iyi okunabilirlik için kendi kayıtlarına yönlendirebilirsiniz, tarihin bir çıkışını eklemeniz gerekir.

 0 15 * * *    /home/andrew/daily-backup.sh >> /var/log/daily-backup.log 2>&1

4
true, ancak bu satır sözdizimi hatası nedeniyle çalışamazsa, belirtilen çıktı günlüğüne hiçbir şey yazılmaz.
Raptor,

11
Günlük dosyası belirtildikten sonra 2> & 1 ekleyerek bunu çözebilirsiniz. Ayrıca, cronjobs'unuzu crontab'a eklemeden önce test etmek ve ardından crontab'ın uygun şekilde biçimlendirildiğinden emin olmak için ilk zamanlanmış çalıştırma için hazır olmak en iyi yöntemdir.
Andrew Meyer,

10

Eğer varsa systemdsisteminizde yüklü, sen kullanarak cron işi günlüğünü görüntüleyebilir journalctlkomutu.

Örneğin, Ubuntu 17.10’umda:

journalctl -u cron.service

9

Bu çok eski bir soru, ancak bu cevapların hiçbiri tatmin edici görünmüyor.

Öncelikle cron işinizi her dakika çalıştırın, ardından cron'u daemon dışı olarak çalıştırın (geçici olarak, daha önce başlamış olabilecek herhangi bir crond'u öldürün) test günlüğü ile çalıştırın:

crond -nx test

Ve terminalinizde akan program yürütme günlüğünüzü görün.


7
14.04 -No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main)
G

8

Bu ise /var/log/syslogvarsayılan olarak.

Ancak, daha faydalı olan ayrı bir cron.log oluşturmak için ayarlanabilir.

Bu soru ve cevap süreci açıklar:

16.04: cron'un cron.log oluşturmasını ve gerçek zamanlı olarak izlemesini nasıl sağlayabilirim?

Ayrıca bu cevapta wcrongerçek zamanlıya yakın olduğunu gösteren bir komut oluşturma talimatları da yer almaktadır. Ayrıca, başka bir cevaba bağlar,

Cron log seviyesi nasıl değiştirilir?

Bu, günlük seviyesinin sadece işlerin başlangıcından daha fazlasını içerecek şekilde nasıl değiştirileceğini gösterir - seviye 15 de hataları ve bitiş zamanını gösterir.


5

Fedoar 29 ve RHEL 7

journalctl -t CROND

Gönderen journalctlkılavuzda:

   -t, --identifier=SYSLOG_IDENTIFIER|PATTERN
       Show messages for the specified syslog identifier SYSLOG_IDENTIFIER, or for any of the messages with a "SYSLOG_IDENTIFIER" matched by PATTERN.

       This parameter can be specified multiple times.

3

Cron çıkışını bir tmp dosyasına yönlendirebilirsiniz

Mesela: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / çıkış 2> & 1

Hata ve normal çıktı, ikisi de aynı dosyaya yönlendirilecek


2

Daha önce de belirtildiği gibi, cron işleri giriş yaptı /var/log/syslog

Sistem günlüğünü greplemek ve CRON kütüklerini filtrelemek için filtreleyebilirsiniz, bunun gibi

less /var/log/syslog | grep CRON 

Bu şekilde crontab günlüklerinizi arayabilirsiniz.

less /var/log/syslog | grep CRON | grep <search-keyword-comes-here>

Bu gibi gz dosyalarında saklanan crontab geçmişi günlüklerini arayabilirsiniz.

less /var/log/syslog.2.gz | grep CRON | grep <search-keyword-comes-here>

Onun her zaman hızlı bir mekanizması günlüğü olması kurulum iyi olabilir kabul ELK sunucularınız için, ayrıca deneyebilirsiniz logz .

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.