no / var / log / cron, no /var/log/cron.log trên debian7 của tôi, logfile của crontab của tôi ở đâu?
ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
no / var / log / cron, no /var/log/cron.log trên debian7 của tôi, logfile của crontab của tôi ở đâu?
ls /var/log/cron*
ls: cannot access /var/log/cron*: No such file or directory
Câu trả lời:
Tôi nghĩ về việc debian
cron
viết nhật ký /var/log/syslog
.
Nếu hệ thống của bạn phụ thuộc vào rsyslog
hoặc syslogd
bạn có thể kiểm tra và bỏ ghi chú trong /etc/rsyslog.conf
hoặc /etc/syslog.conf
cho dòng:
# cron.* /var/log/cron.log
và sau đó khởi động lại dịch vụ.
Nếu hệ thống của bạn phụ thuộc vào systemd
ví dụ, bạn có thể kiểm tra bằng lệnh sau:
journalctl _COMM=cron
hoặc là
journalctl _COMM=cron --since="date" --until="date"
Đối với định dạng ngày, bạn có thể kiểm tra tạp chí .
sudo journalctl --since yesterday -u cron.service
? Là _COMM
gì
Theo mặc định, đầu ra từ các crontab
công việc được gửi đến địa chỉ email cục bộ của người dùng sở hữu. ví dụ: Đầu crontab
ra cho aUser trên máy chủ www.aDomain.com sẽ được gửi đến aUser@www.aDomain.com . Hệ thống sử dụng trình gửi thư mặc định của nó để hoàn thành nhiệm vụ.
Bạn có thể chuyển hướng đầu ra này sang một địa chỉ email thay thế bằng cách thêm một MAILTO
câu lệnh trong tệp crontab. Ví dụ:
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh
Hãy cẩn thận khi sử dụng địa chỉ email bên ngoài để nhận nhật ký crontab. Tin nhắn thường xuyên gửi có thể bị bắt trong một bộ lọc thư rác. Sau đó, bạn sẽ phải đánh dấu các tin nhắn là Không phải Spam đối với các dịch vụ như Yahoo, HotMail hoặc Gmail.
Một giải pháp thay thế sẽ là chuyển hướng đầu ra của các lệnh crontab của bạn sang một tệp bạn chọn. Trong ví dụ dưới đây stdout
và stderr
đầu ra được gửi đến /tmp/aJob.log
. Phương pháp này giúp loại bỏ khả năng thư email được gửi.
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh >> /tmp/aJob.log 2>&1
Một cách khác là gửi stderr
nhật ký đến email và stdout
nhật ký vào một tệp. Trong trường hợp này, bạn sẽ được thông báo qua email khi các crontab
lệnh của bạn tạo ra các thông báo lỗi không mong muốn. Sự khác biệt với ví dụ trước 2>&1
là loại bỏ để cho phép stderr
đầu ra đi đến bàn điều khiển và do đó gửi email.
# Mail any output to myuser@gmail.com, no matter whose crontab this is
MAILTO=myuser@gmail.com
# Run the following command ten minutes after midnight, every day
10 0 * * * $HOME/bin/aJob.sh >> /tmp/aJob.log
Đọc thêm bảng crontab và lệnh crontab
Vì đây không phải là thẻ debian và cũng xuất hiện trong các tìm kiếm của fedora, nên đây là cách kiểm tra các fedora gần đây (dựa trên hệ thống):
sudo systemctl status crond
Sản lượng tiêu biểu
● 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)
và all
các bản ghi với
journalctl --unit crond -n all