Thông báo qua syslogd (8)
Trên máy chủ OpenBSD của tôi, tôi đăng nhập và gửi email các tin nhắn quan trọng từ các ứng dụng web của mình, sử dụng tiện ích local1 . Đây là /etc/syslog.conf của tôi để thực hiện điều đó:
local1.err /var/log/example.com
local1.err |while read log; do echo "$log" | /usr/bin/mail -s SYSLOG me@example.com; done
Lưu ý rằng vòng lặp while đọc vô hạn từng dòng từ syslogd và sau đó chuyển nó sang thư qua echo. Điều này quan trọng. Khi echo xuất ra dòng của nó, nó kết thúc đường ống, gửi thư EOF để nó có thể gửi email thông điệp tường trình.
Nói cách khác, bạn không thể chuyển trực tiếp đến thư qua syslogd như vậy:
local1.err |/usr/bin/mail -s SYSLOG me@example.com
bởi vì syslogd sẽ tiếp tục ghi vào đường ống cho đến khi chính nó bị chấm dứt hoặc gửi tín hiệu HUP, tại thời điểm đó thư sẽ gửi toàn bộ bộ thông điệp tường trình trong một email lớn.
Thông báo qua newsyslog (8)
Lập lịch tin tức trong cron là một cách khác để nhận tin nhắn ở tốc độ chậm hơn hoặc hàng loạt.
Ví dụ: nếu bạn muốn thông báo email hàng ngày về thông điệp tường trình , hãy đặt cờ M và chỉ định địa chỉ email của màn hình trong /etc/newsyslog.conf :
# logfile_name owner:group mode count size when flags monitor
/var/log/example.com root:wheel 640 7 * 24 M me@example.com
Sau đó lên lịch newsyslog trong crontab:
# minute hour mday month wday command
0 * * * * /usr/bin/newsyslog
1-59 * * * * /usr/bin/newsyslog -m
Các -m tùy chọn cho newsyslog (8) trạng thái:
Chế độ giám sát; chỉ các mục được đánh dấu bằng `M 'trong cờ được xử lý. Đối với mỗi tệp nhật ký được theo dõi, bất kỳ đầu ra nhật ký nào kể từ lần cuối newsyslog được chạy với cờ -m được gửi đến người dùng được liệt kê trong phần thông báo màn hình.