Di mana file log saya dari crontab?

9

no / var / log / cron, no /var/log/cron.log di debian7 saya, Di manakah logfile saya dari crontab?

ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
it_is_a_literature
sumber

Jawaban:

13

Saya pikir pada debian cronmenulis log di /var/log/syslog.
Jika sistem Anda bergantung pada rsyslogatau syslogdAnda dapat memeriksa dan menghapus komentar baik dalam /etc/rsyslog.confatau /etc/syslog.confuntuk baris:

# cron.* /var/log/cron.log

dan kemudian restart layanan.

Jika sistem Anda bergantung pada systemdmisalnya, Anda dapat memeriksa dengan perintah berikut:

journalctl _COMM=cron

atau

journalctl _COMM=cron --since="date" --until="date"

Untuk format tanggal Anda dapat memeriksa jurnalctl .

taliezin
sumber
tidak ada /etc/rsyslog.con dan /etc/syslog.conf di debian7 saya.
it_is_a_literature
Untuk file pertama itu adalah salah ketik harus /etc/rsyslog.conf jika Anda tidak dengan systemd.
taliezin
bagaimana sudo journalctl --since yesterday -u cron.service? Apa _COMM?
gagah
4

Secara default, output dari crontabpekerjaan dikirim ke alamat email lokal pengguna yang memiliki. misalnya:crontab Output untuk aUser di host www.aDomain.com akan dikirim ke [email protected] . Sistem menggunakan mailer default untuk menyelesaikan tugas.

Anda dapat mengalihkan output ini ke alamat email alternatif dengan menambahkan MAILTOpernyataan di dalam file crontab. Sebagai contoh:

# Mail any output to [email protected], no matter whose crontab this is
[email protected]
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh 

Hati-hati saat menggunakan alamat email eksternal untuk menerima log crontab. Pesan yang sering dikirim mungkin terperangkap dalam filter spam. Anda kemudian harus menandai pesan sebagai Bukan Spam untuk layanan seperti Yahoo, HotMail, atau Gmail.

Solusi alternatif adalah mengarahkan output perintah crontab Anda ke file pilihan Anda. Pada contoh di bawah ini stdoutdanstderr output dikirim ke /tmp/aJob.log. Metode ini menghilangkan kemungkinan pesan email yang dikirim.

# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1

Alternatif lain adalah mengirim stderrlog ke email dan stdoutlog ke file. Dalam hal ini Anda akan diperingatkan melalui email ketika crontabperintah Anda menghasilkan pesan kesalahan yang tidak terduga. Perbedaannya dengan contoh sebelumnya adalah yang 2>&1dihapus untuk memungkinkan stderrkeluaran masuk ke konsol dan oleh karena itu ke email.

# Mail any output to [email protected], no matter whose crontab this is
[email protected]    
# Run the following command ten minutes after midnight, every day
10 0 * * *       $HOME/bin/aJob.sh >> /tmp/aJob.log

Baca lebih lanjut tabel crontab dan perintah crontab

ikrabbe
sumber
1

Karena ini bukan tag debian dan juga muncul di pencarian fedora, berikut ini cara memeriksa fedora terbaru (berbasis systemd):

sudo systemctl status crond

Output khas

 crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2019-09-29 16:09:21 CEST; 47min ago
 Main PID: 1167 (crond)
    Tasks: 1
   Memory: 2.8M
      CPU: 948ms
   CGroup: /system.slice/crond.service
           └─1167 /usr/sbin/crond -n

Sep 29 16:09:21 ncelrnd0216 systemd[1]: Started Command Scheduler.
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) STARTUP (1.5.4)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (Syslog will be used instead of sendmail.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (RANDOM_DELAY will be scaled with factor 31% if used.)
Sep 29 16:09:21 ncelrnd0216 crond[1167]: (CRON) INFO (running with inotify support)

dan alllog dengan

journalctl --unit crond -n all
eddygeek
sumber