Bài viết này giải thích chi tiết về việc sử dụng logging trong shell script và cách sử dụng syslog để ghi lại các sự kiện.
Xem thêm:
1. Tại sao nên sử dụng logging trong shell scripts
- Lưu lại quá trình thực thi: Khi chạy một script, việc ghi lại các sự kiện giúp theo dõi những gì đã xảy ra, khi nào và vì sao xảy ra. Điều này hữu ích khi script thực hiện nhiều hành động hoặc khi bạn muốn kiểm tra lại quá trình sau khi script chạy.
- Lưu lại các thông tin quan trọng: Logging thường trả lời cho câu hỏi “Who”, “What”, “When”, “Where”, và “Why” một sự kiện xảy ra, giúp dễ dàng kiểm soát và gỡ lỗi.
2. Tiêu chuẩn syslog
- Syslog là được sử dụng trên hệ điều hành Linux để ghi nhật ký các thông báo từ các chương trình hoặc ứng dụng. Thay vì mỗi ứng dụng phải tự phát triển cơ chế ghi log riêng, chúng có thể tận dụng hệ thống ghi log có sẵn.
- Facilities và Severities: Mỗi thông báo được gán với mã facility (loại ứng dụng) và severity (mức độ nghiêm trọng). Ví dụ:
- Facilities:
kern
(kernel),mail
(ứng dụng email),user
(người dùng), hoặclocal0
–local7
(tùy chỉnh cho script). - Severities:
emergency
,alert
,critical
,error
,warning
,notice
,info
,debug
.
- Facilities:
- Hệ thống logger: Các thông báo sẽ được hệ thống logger xử lý và lưu trữ, thường nằm trong tệp như
/var/log/messages
hoặc/var/log/syslog
.
3. Sử dụng lệnh logger trong shell scripts
- Lệnh
logger
: Dùng để tạo các thông báo syslog từ shell script. Mặc định, nó sử dụng facilityuser
và mức độ severity lànotice
. - Tùy chỉnh
logger
:- Sử dụng
-p
để chỉ định facility và severity (ví dụ:logger -p local0.info
). - Sử dụng
-t
để gán tag (thường là tên script), giúp dễ tìm các thông báo liên quan. - Sử dụng
-i
để ghi PID của tiến trình vào log.
- Sử dụng
logger "Message" logger -p local0.info "Message" logger -t myscript -p local0.info "Message" logger -i -t myscript "Message"
4. Tạo hàm ghi log tùy chỉnh
- Hàm
logit
: Đây là một ví dụ về hàm tùy chỉnh trong shell script để xử lý việc ghi log. Hàm này nhận mức độ log và thông báo, sau đó in thông tin ra màn hình hoặc sử dụng lệnhlogger
để ghi lại. - Ví dụ sử dụng:
logit INFO "Processing data."
- Nếu một lệnh như
fetch-data $HOST
thất bại, hàmlogit
sẽ ghi một thông báo lỗi với mức độERROR
.
Kết luận
Qua bài viết này, bạn đã học được cách sử dụng cơ chế logging trong shell script, cách hoạt động của tiêu chuẩn syslog, và cách tạo ra các thông báo log bằng lệnh logger
. Cảm ơn bạn đã tham khảo trên ttnguyen.net.
Bài viết liên quan: