Câu hỏi Nhật ký cron / crontab ở đâu?


Tôi muốn xác minh rằng công việc cron của tôi đang thực thi và vào thời điểm nào. Tôi tin rằng có một bản ghi cho tôi sudo crontab -e công việc, nhưng ở đâu?

Tôi đã tìm kiếm trên google và tìm thấy đề xuất để xem /var/log (trong đó tôi không thấy bất cứ điều gì với 'cron' trong tên) và để chỉnh sửa các tập tin /etc/syslog.conf mà tôi cũng không có.


613
2017-08-11 12:06


gốc




Các câu trả lời:


Trên cài đặt mặc định, các công việc cron được đăng nhập vào

/var/log/syslog

Bạn chỉ có thể xem các công việc cron trong logfile đó bằng cách chạy

 grep CRON /var/log/syslog

Nếu bạn chưa cấu hình lại bất cứ điều gì, các mục sẽ nằm trong đó.


722
2017-08-12 10:58



Nếu không có MTA được cài đặt, cron chỉ cần ném đầu ra công việc đi. - Barry Kelly
Nhật ký cron có thể nằm trong một tệp khác trong /var/log/ danh mục. Kiểm tra cron.log hoặc tương đương. - Navigatron
điều này không cho tôi đầu ra từ công việc. nó chỉ đưa ra một thông báo chung rằng cron đã được xử lý. - chovy
trên AWS nó là / var / log / cron - tsukimi
@shadi bạn cũng có thể grep -i CRON để tìm kiếm phân biệt chữ hoa chữ thường - nafg


Bạn có thể tạo tệp cron.log để chỉ chứa các mục nhập CRON hiển thị trong syslog. Lưu ý rằng công việc CRON sẽ vẫn hiển thị trong syslog nếu bạn làm theo các hướng dẫn sau.

Mở tập tin

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

Tìm dòng bắt đầu bằng:

#cron.*

bỏ ghi chú dòng đó, lưu tệp và khởi động lại rsyslog:

sudo service rsyslog restart

Bây giờ bạn sẽ thấy một tệp nhật ký cron ở đây:

/var/log/cron.log

Hoạt động Cron giờ đây sẽ được ghi vào tệp này (ngoài syslog).

Lưu ý rằng trong cron.log, bạn sẽ thấy các mục nhập khi cron chạy các tập lệnh trong /etc/cron.hourly, cron.daily, v.v. - ví dụ: cái gì đó như:

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

Tuy nhiên, bạn sẽ không thấy thêm thông tin về những kịch bản nào đã thực sự chạy bên trong /etc/cron.daily hoặc /etc/cron.hourly, trừ khi các tập lệnh đó trực tiếp xuất ra cron.log (hoặc có thể với một số tệp nhật ký khác).

Nếu bạn muốn xác minh xem crontab có chạy hay không và không phải tìm kiếm nó trong cron.log hoặc syslog, hãy tạo một crontab chuyển hướng đầu ra tới một tệp nhật ký mà bạn chọn - một cái gì đó như:

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

Điều này sẽ chuyển hướng tất cả các đầu ra tiêu chuẩn và các lỗi có thể được tạo ra bởi tập lệnh được chạy tới tệp nhật ký được chỉ định.


197
2018-04-13 01:36



Theo ý kiến ​​của tôi, câu trả lời này sẽ tốt hơn trong tương lai. Vì vậy, tệp nhật ký của bạn rõ ràng hơn. - shgnInc
Để loại trừ bản ghi cron khỏi syslog, bạn có thể thay đổi dòng *.*;auth,authpriv.none -/var/log/syslog đến *.*;auth,authpriv.none,cron.none -/var/log/syslog. - Koen.
Trên CentOS 6, cron. * Được định nghĩa trong /etc/rsyslog.conf, trong khi i rỗng trong thư mục rsyslog.d. - Scott Chu
những gì là 2>&1 La viêt tăt của ? - John Joe
@JohnJoe 2> & 1 được sử dụng để chuyển tiếp stderr tới stdout, theo cách này bạn cũng sẽ nhận được stderr để đăng nhập tệp. - Sampo Sarrala


Đôi khi nó có thể hữu ích để liên tục theo dõi nó, trong trường hợp đó:

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

67
2018-05-14 07:34



Vâng, bạn có thể muốn sử dụng -F, sẽ theo dõi tệp qua các thay đổi tên, để khi nó bị cắt bớt / chuyển đến, ví dụ: /var/log/syslog.1.gz, bạn vẫn đang theo dõi hiện tại /var/log/syslog tập tin. Mỗi tài liệu người đàn ông, điều này giống như chạy tail xxxx -f --retry - Momer


Bạn cũng có thể chuyển trực tiếp đầu ra của các cronjob riêng lẻ tới các nhật ký riêng của chúng để dễ đọc hơn, bạn sẽ chỉ cần nối thêm đầu ra của ngày ở đâu đó.

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

24
2018-04-01 15:26



đúng, nhưng nếu dòng này không chạy do lỗi cú pháp, sẽ không có gì được ghi trong nhật ký đầu ra được chỉ định. - Raptor
Bạn có thể giải quyết vấn đề này bằng cách thêm 2> & 1 sau khi tệp nhật ký được chỉ định. Nó cũng là phương pháp tốt nhất để kiểm tra cronjob của bạn trước khi thêm chúng vào crontab, và sau đó có mặt để chạy theo lịch trình đầu tiên để đảm bảo rằng crontab được định dạng đúng. - Andrew Meyer


Đây là một câu hỏi rất cũ, nhưng không ai trong số những câu trả lời này có vẻ thỏa đáng.

Trước tiên, hãy chạy cron job của bạn mỗi phút, sau đó chạy cron là non-daemon (tạm thời, chỉ cần giết bất kỳ crond nào có thể đã bắt đầu) với việc kiểm tra đăng nhập:

crond -nx test

Và xem nhật ký thực hiện chương trình của bạn chảy qua thiết bị đầu cuối của bạn.


7
2018-06-17 17:42



Không chạy vào ngày 14.04 - No command 'crond' found, did you mean: Command 'cron' from package 'cron' (main) - G-.


Nó là trong /var/log/syslog theo mặc định.

Nhưng nó có thể được thiết lập để tạo một cron.log riêng biệt, hữu ích hơn.

Phần Hỏi & Đáp này mô tả quy trình:

16.04: Làm thế nào để cron tạo cron.log và giám sát nó trong thời gian thực?

Cũng trong câu trả lời này là các hướng dẫn để tạo wcron lệnh hiển thị nó gần thời gian thực. Thêm vào đó, nó liên kết với một câu trả lời khác,

Làm thế nào để thay đổi cấp độ đăng nhập cron?

cho thấy cách thay đổi cấp độ nhật ký để bao gồm nhiều hơn chỉ là bắt đầu công việc - cấp 15 cũng sẽ hiển thị lỗi và thời gian kết thúc.


5
2017-10-22 06:40





Bạn có thể chuyển hướng đầu ra của cron sang một tệp tmp

Nhu la: 00 11 07 * * / bin / bash /home/ubuntu/command.sh> / tmp / đầu ra 2> & 1

Lỗi và đầu ra bình thường, cả hai sẽ được chuyển hướng đến cùng một tệp


1
2018-05-07 11:27