Cách xem và cấu hình log Linux trên Ubuntu và Centos
Các administrator hệ thống Linux thường cần xem các file log cho các mục đích khắc phục sự cố. Trên thực tế, đây là điều đầu tiên mà bất kỳ sysadmin nào cũng làm.Linux và các ứng dụng chạy trên nó có thể tạo ra tất cả các loại thông báo khác nhau, được ghi lại trong các file log khác nhau. Linux sử dụng một tập hợp các file cấu hình, folder , chương trình, lệnh và daemon để tạo, lưu trữ và tái chế các thông báo log này. Do đó, biết hệ thống lưu giữ các file log của nó và cách sử dụng các lệnh liên quan có thể giúp tiết kiệm thời gian quý báu trong quá trình khắc phục sự cố.
Trong hướng dẫn này, ta sẽ xem xét các phần khác nhau của cơ chế ghi log Linux.
Khước từ
Các lệnh trong hướng dẫn này đã được thử nghiệm trong các bản cài đặt đơn giản của CentOS 6.4, Ubuntu 12 và Debian 7.
Vị trí file log mặc định
Vị trí mặc định cho file log trong Linux là / var / log.
Bạn có thể xem danh sách các file log trong folder này bằng lệnh ls -l / var / log đơn giản.
Đây là những gì tôi thấy trong hệ thống CentOS của bạn :
[root@TestLinux ~]# ls -l /var/log
total 1472 -rw-------. 1 root root 4524 Nov 15 16:04 anaconda.ifcfg.log -rw-------. 1 root root 59041 Nov 15 16:04 anaconda.log -rw-------. 1 root root 42763 Nov 15 16:04 anaconda.program.log -rw-------. 1 root root 299910 Nov 15 16:04 anaconda.storage.log -rw-------. 1 root root 40669 Nov 15 16:04 anaconda.syslog -rw-------. 1 root root 57061 Nov 15 16:04 anaconda.xlog -rw-------. 1 root root 1829 Nov 15 16:04 anaconda.yum.log drwxr-x---. 2 root root 4096 Nov 15 16:11 audit -rw-r--r-- 1 root root 2252 Dec 9 10:27 boot.log -rw------- 1 root utmp 384 Dec 9 10:31 btmp -rw-------. 1 root utmp 1920 Nov 28 09:28 btmp-20131202 drwxr-xr-x 2 root root 4096 Nov 29 15:47 ConsoleKit -rw------- 1 root root 2288 Dec 9 11:01 cron -rw-------. 1 root root 8809 Dec 2 17:09 cron-20131202 -rw-r--r-- 1 root root 21510 Dec 9 10:27 dmesg -rw-r--r-- 1 root root 21351 Dec 6 16:37 dmesg.old -rw-r--r--. 1 root root 165665 Nov 15 16:04 dracut.log -rw-r--r--. 1 root root 146876 Dec 9 10:44 lastlog -rw------- 1 root root 950 Dec 9 10:27 maillog -rw-------. 1 root root 4609 Dec 2 17:00 maillog-20131202 -rw------- 1 root root 123174 Dec 9 10:27 messages -rw-------. 1 root root 458481 Dec 2 17:00 messages-20131202 -rw------- 1 root root 2644 Dec 9 10:44 secure -rw-------. 1 root root 15984 Dec 2 17:00 secure-20131202 -rw------- 1 root root 0 Dec 2 17:09 spooler -rw-------. 1 root root 0 Nov 15 16:02 spooler-20131202 -rw-------. 1 root root 0 Nov 15 16:02 tallylog -rw-rw-r--. 1 root utmp 89856 Dec 9 10:44 wtmp -rw------- 1 root root 3778 Dec 6 16:48 yum.log
Xem nội dung file log
Dưới đây là một số file log phổ biến mà bạn sẽ tìm thấy trong / var / log:
wtmp
utmp
dmesg
tin nhắn
maillog hoặc mail.log
cache
auth.log hoặc bảo mật
Các file wtmp và utmp theo dõi user đăng nhập và đăng xuất khỏi hệ thống. Bạn không thể đọc trực tiếp nội dung của các file này bằng cat - có các lệnh cụ thể cho việc đó.
Bây giờ ta sẽ sử dụng một số lệnh này.
Để xem ai hiện đang đăng nhập vào server Linux, chỉ cần sử dụng lệnh who. Lệnh này nhận các giá trị của nó từ file / var / run / utmp (dành cho CentOS và Debian) hoặc / run / utmp (dành cho Ubuntu).
Đây là một ví dụ từ CentOS:
[root@TestLinux ~]# who
root tty1 2013-12-09 10:44 root pts/0 2013-12-09 10:29 (10.0.2.2) sysadmin pts/1 2013-12-09 10:31 (10.0.2.2) joeblog pts/2 2013-12-09 10:39 (10.0.2.2)
Trong trường hợp cụ thể này, tôi là user duy nhất của hệ thống. Tôi đang chạy server từ Oracle VirtualBox và truy cập nó dưới dạng root từ cả console và phiên SSH. Hai account user khác (sysadmin và joebolg) cũng đang truy cập hệ thống.
Lệnh cuối cùng cho ta biết lịch sử đăng nhập của user :
[root@TestLinux ~]# last | grep sysadmin
sysadmin pts/1 10.0.2.2 Mon Dec 9 10:31 still logged in sysadmin pts/0 10.0.2.2 Fri Nov 29 15:42 - crash (00:01) sysadmin pts/0 10.0.2.2 Thu Nov 28 17:06 - 17:13 (00:06) sysadmin pts/0 10.0.2.2 Thu Nov 28 16:17 - 17:05 (00:48) sysadmin pts/0 10.0.2.2 Thu Nov 28 09:29 - crash (06:04) sysadmin pts/0 10.0.2.2 Wed Nov 27 16:37 - down (00:29) sysadmin tty1 Wed Nov 27 14:05 - down (00:36) sysadmin tty1 Wed Nov 27 13:49 - 14:04 (00:15)
Trong ví dụ này, tôi đang cố gắng tìm lịch sử đăng nhập của user sysadmin. Như bạn thấy , đã có một vài trường hợp anh ta cố gắng làm hỏng hệ thống.
Để biết khi nào hệ thống được khởi động lại lần cuối, ta có thể chạy lệnh sau:
[root@TestLinux ~]# last reboot
Kết quả có thể trông như thế này
reboot system boot 2.6.32-358.el6.x Mon Dec 9 10:27 - 10:47 (00:19) reboot system boot 2.6.32-358.el6.x Fri Dec 6 16:37 - 10:47 (2+18:10) reboot system boot 2.6.32-358.el6.x Fri Dec 6 16:28 - 16:36 (00:08) reboot system boot 2.6.32-358.el6.x Fri Dec 6 11:06 - 16:36 (05:29) reboot system boot 2.6.32-358.el6.x Mon Dec 2 17:00 - 16:36 (3+23:36) reboot system boot 2.6.32-358.el6.x Fri Nov 29 16:01 - 16:36 (7+00:34) reboot system boot 2.6.32-358.el6.x Fri Nov 29 15:43 - 16:36 (7+00:53) ... ... wtmp begins Fri Nov 15 16:11:54 2013
Để xem lần cuối ai đó đăng nhập vào hệ thống, hãy sử dụng lastlog:
[root@TestLinux ~]# lastlog
Trong hệ thống của tôi, kết quả trông như thế này:
Username Port From Latest root tty1 Mon Dec 9 10:44:30 +1100 2013 bin **Never logged in** daemon **Never logged in** adm **Never logged in** lp **Never logged in** sync **Never logged in** shutdown **Never logged in** halt **Never logged in** mail **Never logged in** uucp **Never logged in** operator **Never logged in** games **Never logged in** gopher **Never logged in** ftp **Never logged in** nobody **Never logged in** vcsa **Never logged in** saslauth **Never logged in** postfix **Never logged in** sshd **Never logged in** sysadmin pts/1 10.0.2.2 Mon Dec 9 10:31:50 +1100 2013 dbus **Never logged in** joeblog pts/2 10.0.2.2 Mon Dec 9 10:39:24 +1100 2013
Đối với các file log dựa trên văn bản khác, bạn có thể sử dụng lệnh mèo, đầu hoặc đuôi để đọc nội dung.
Trong ví dụ bên dưới, tôi đang cố gắng xem mười dòng cuối cùng của file / var / log / messages trong hộp Debian:
debian@debian:~$ sudo tail /var/log/messages
Đầu ra:
Dec 16 01:21:08 debian kernel: [ 9.584074] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 Dec 16 01:21:08 debian kernel: [ 9.584074] Bluetooth: BNEP filters: protocol multicast Dec 16 01:21:08 debian kernel: [ 9.648220] Bridge firewalling registered Dec 16 01:21:08 debian kernel: [ 9.696728] Bluetooth: SCO (Voice Link) ver 0.6 Dec 16 01:21:08 debian kernel: [ 9.696728] Bluetooth: SCO socket layer initialized Dec 16 01:21:08 debian kernel: [ 9.832215] lp: driver loaded but no devices found Dec 16 01:21:08 debian kernel: [ 9.868897] ppdev: user-space parallel port driver Dec 16 01:21:11 debian kernel: [ 12.748833] [drm] Initialized drm 1.1.0 20060810 Dec 16 01:21:11 debian kernel: [ 12.754412] pci 0000:00:02.0: PCI INT A -> Link[LNKB] -> GSI 11 (level, low) -> IRQ 11 Dec 16 01:21:11 debian kernel: [ 12.754412] [drm] Initialized vboxvideo 1.0.0 20090303 for 0000:00:02.0 on minor 0
Daemon rsyslog
Trung tâm của cơ chế ghi log là daemon rsyslog. Dịch vụ này chịu trách nhiệm lắng nghe các thông báo log từ các phần khác nhau của hệ thống Linux và định tuyến thông báo đến một file log thích hợp trong folder / var / log. Nó cũng có thể chuyển tiếp thông báo log đến một server Linux khác.
Tệp cấu hình log rsys
Daemon rsyslog lấy thông tin cấu hình của nó từ file rsyslog.conf
. Tệp nằm trong folder / etc.
Về cơ bản, file rsyslog.conf cho daemon rsyslog biết nơi lưu thông báo log của nó. Hướng dẫn này đến từ một loạt các dòng gồm hai phần trong file .
Tệp này có thể được tìm thấy tại rsyslog.d/50-default.conf
trên ubuntu.
Hướng dẫn hai phần được tạo thành từ một bộ chọn và một hành động . Hai phần được ngăn cách bởi khoảng trắng.
Phần bộ chọn chỉ định nguồn và tầm quan trọng của thông báo log và phần hành động cho biết phải làm gì với thông báo.
Bản thân bộ chọn lại được chia thành hai phần được phân tách bằng dấu chấm (.). Phần đầu tiên trước dấu chấm được gọi là * acility (nguồn root của thông báo) và phần thứ hai sau dấu chấm được gọi là ưu tiên (mức độ nghiêm trọng của thông báo).
Cùng với nhau, cơ sở / ưu tiên và cặp hành động cho rsyslog biết phải làm gì khi một thông báo log phù hợp với tiêu chí được tạo.
Đây là đoạn trích từ file CentOS rsyslog.conf:
# rsyslog v5 configuration file ... ... # Include all config files in /etc/rsyslog.d/ IncludeConfig /etc/rsyslog.d/*.conf #### RULES #### # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;authpriv.none;cron.none /var/log/messages # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* -/var/log/maillog # Log cron stuff cron.* /var/log/cron # Everybody gets emergency messages *.emerg * # Save news errors of level crit and higher in a special file. uucp,news.crit /var/log/spooler # Save boot messages also to boot.log local7.* /var/log/boot.log ... ...
Để hiểu tất cả điều này nghĩa là gì, ta hãy xem xét các loại cơ sở vật chất khác nhau được Linux công nhận. Đây là danh sách:
- auth hoặc authpriv : Thư đến từ các sự kiện liên quan đến bảo mật và ủy quyền
- kern : Mọi thông báo đến từ nhân Linux
- thư : Thư được tạo bởi hệ thống con thư
- cron : Các thông báo liên quan đến Cron daemon
- daemon : Tin nhắn đến từ daemon
- tin tức : Tin nhắn đến từ hệ thống con tin tức mạng
- lpr : In thông báo log liên quan
- user : Ghi log thông báo đến từ các chương trình user
- local0 đến local7 : Dành riêng cho việc sử dụng local
Và đây là danh sách các ưu tiên theo thứ tự tăng dần:
- debug : Thông tin gỡ lỗi từ các chương trình
- thông tin : Thông báo thông tin đơn giản - không cần can thiệp
- chú ý : Tình trạng có thể cần chú ý
- cảnh báo : Cảnh báo
- err : Lỗi
- crit : Tình trạng nghiêm trọng
- cảnh báo : Tình trạng cần can thiệp ngay lập tức
- emerg: tình trạng khẩn cấp
Vì vậy, bây giờ ta hãy xem xét dòng sau từ file :
cron.* /var/log/cron
Điều này chỉ yêu cầu trình rsyslog lưu tất cả các thông báo đến từ trình cron trong một file có tên / var / log / cron. Asterix (*) sau dấu chấm (.) Nghĩa là các thông báo về tất cả các ưu tiên sẽ được ghi lại. Tương tự, nếu cơ sở được chỉ định là một tiểu hành tinh, nó nghĩa là tất cả các nguồn.
Cơ sở vật chất và ưu tiên có thể liên quan theo một số cách.
Ở dạng mặc định, khi chỉ có một mức độ ưu tiên được chỉ định sau dấu chấm, điều đó nghĩa là tất cả các sự kiện bằng hoặc lớn hơn mức độ ưu tiên đó sẽ bị bẫy. Vì vậy, lệnh sau khiến mọi thư đến từ hệ thống con thư có mức độ ưu tiên cảnh báo hoặc cao hơn được ghi vào một file cụ thể trong / var / log:
mail.warn /var/log/mail.warn
Điều này sẽ ghi lại mọi thông báo bằng hoặc lớn hơn mức ưu tiên cảnh báo, nhưng hãy để mọi thứ bên dưới nó. Vì vậy, các thông báo có lỗi, crit, cảnh báo hoặc khẩn cấp cũng sẽ được ghi lại trong file này.
Sử dụng dấu bằng (=) sau dấu chấm (.) Sẽ chỉ ghi lại mức độ ưu tiên đã chỉ định. Vì vậy, nếu ta chỉ muốn bẫy các thông báo thông tin đến từ hệ thống con thư, đặc điểm kỹ thuật sẽ giống như sau:
mail.=info /var/log/mail.info
, nếu ta muốn bẫy mọi thứ từ hệ thống con thư ngoại trừ thư thông tin, đặc điểm kỹ thuật sẽ giống như sau
mail.!info /var/log/mail.info
hoặc là
mail.!=info /var/log/mail.info
Trong trường hợp đầu tiên, file mail.info sẽ chứa mọi thứ có mức độ ưu tiên thấp hơn thông tin. Trong trường hợp thứ hai, file sẽ chứa tất cả các thư có thông tin ưu tiên ở trên.
Nhiều cơ sở trong cùng một dòng có thể được phân tách bằng dấu phẩy.
Nhiều nguồn ( cơ sở. Thâm niên ) trong cùng một dòng được phân tách bằng dấu chấm phẩy.
Khi một hành động được đánh dấu là asterix (*), điều đó nghĩa là tất cả user . Mục nhập này trong file CentOS rsyslog.conf của tôi nói chính xác rằng:
# Everybody gets emergency messages *.emerg *
Hãy thử xem rsyslog.conf đang nói gì trong hệ thống Linux của bạn. Đây là một đoạn trích từ server Debian mà tôi đang chạy:
# /etc/rsyslog.conf Configuration file for rsyslog. # # For more information see # /usr/share/doc/rsyslog-doc/html/rsyslog_conf.html ... ... auth,authpriv.* /var/log/auth.log *.*;auth,authpriv.none -/var/log/syslog #cron.* /var/log/cron.log daemon.* -/var/log/daemon.log kern.* -/var/log/kern.log lpr.* -/var/log/lpr.log mail.* -/var/log/mail.log user.* -/var/log/user.log # # Logging for the mail system. Split it up so that # it is easy to write scripts to parse these files. # mail.info -/var/log/mail.info mail.warn -/var/log/mail.warn mail.err /var/log/mail.err # # Logging for INN news system. # news.crit /var/log/news/news.crit news.err /var/log/news/news.err news.notice -/var/log/news/news.notice
Như bạn thấy , Debian lưu tất cả các thông báo cấp độ bảo mật / cấp quyền trong /var/log/auth.log
trong khi CentOS lưu nó trong /var/log/secure
.
Các cấu hình cho rsyslog cũng có thể đến từ các file tùy chỉnh khác. Các file cấu hình tùy chỉnh này thường nằm trong các folder khác nhau dưới /etc/rsyslog.d. Tệp rsyslog.conf bao gồm các folder này bằng cách sử dụng chỉ thị $ includeConfig.
Đây là những gì nó trông giống như trong Ubuntu:
# Default logging rules can be found in /etc/rsyslog.d/50-default.conf .... .... $IncludeConfig /etc/rsyslog.d/*.conf
Nội dung trong folder /etc/rsyslog.d trông giống như sau:
-rw-r--r-- 1 root root 311 Mar 17 2012 20-ufw.conf -rw-r--r-- 1 root root 252 Apr 11 2012 21-cloudinit.conf -rw-r--r-- 1 root root 1655 Mar 30 2012 50-default.conf
Bây giờ đích cho thông báo log không nhất thiết phải là file log ; tin nhắn có thể được gửi đến console của user . Trong trường hợp này, trường hành động sẽ chứa tên user . Nếu nhiều user cần nhận thông báo, tên user của họ được phân tách bằng dấu phẩy. Nếu tin nhắn cần được phát cho mọi user , thì nó được chỉ định bởi asterix (*) trong trường hành động.
Do là một phần của hệ điều hành mạng, nên rsyslog daemon không chỉ có thể lưu local các thông báo log mà còn có thể chuyển tiếp chúng đến một server Linux khác trong mạng hoặc hoạt động như một repository cho các hệ thống khác. Daemon lắng nghe các thông báo log trong cổng UDP 514. Ví dụ dưới đây sẽ chuyển tiếp các thông báo quan trọng của kernel tới một server có tên “texas”.
kern.crit @texas
Tạo và kiểm tra thông báo log của bạn
Vì vậy, bây giờ đã đến lúc ta tạo các file log của riêng mình.
Để kiểm tra điều này, ta sẽ làm như sau
Thêm đặc tả file log trong file /etc/rsyslog.conf
Khởi động lại daemon rsyslog
Kiểm tra cấu hình bằng tiện ích ghi log
Trong ví dụ sau, tôi đang thêm hai dòng mới trong file rsyslog.conf của hệ thống CentOS Linux của tôi. Như bạn thấy , mỗi người trong số họ đến từ một cơ sở gọi là local4 và họ có những ưu tiên khác nhau.
[root@TestLinux ~]# vi /etc/rsyslog.conf
.... .... # New lines added for testing log message generation local4.crit /var/log/local4crit.log local4.=info /var/log/local4info.log
Tiếp theo, dịch vụ được khởi động lại để dữ liệu file cấu hình được reload :
[root@TestLinux ~]# /etc/init.d/rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ] [root@TestLinux ~]#
Để tạo thông báo log ngay bây giờ, ứng dụng ghi nhật ký được gọi là:
[root@TestLinux ~]# logger -p local4.info " This is a info message from local 4"
Bây giờ, nhìn trong folder / var / log cho thấy hai file mới:
... ... -rw------- 1 root root 0 Dec 9 11:21 local4crit.log -rw------- 1 root root 72 Dec 9 11:22 local4info.log
Kích thước của local4info.log là khác 0. Vì vậy, khi nó được mở ra, tôi thấy thông báo đã được ghi lại:
[root@TestLinux ~]# cat /var/log/local4info.log
Dec 9 11:22:32 TestLinux root: This is a info message from local 4
Xoay file log
Khi ngày càng có nhiều thông tin được ghi vào các file log , chúng ngày càng lớn hơn. Điều này rõ ràng đặt ra một vấn đề hiệu suất tiềm ẩn. Ngoài ra, việc quản lý các file trở nên cồng kềnh.
Linux sử dụng khái niệm "xoay" các file log thay vì xóa hoặc xóa chúng. Khi xoay một log , một file log mới được tạo và file log cũ được đổi tên và nén tùy chọn. Do đó, một file log có thể có nhiều version cũ vẫn trực tuyến. Các file này sẽ quay trở lại trong một khoảng thời gian và sẽ đại diện cho việc tồn đọng. Sau khi một số lượng tồn đọng nhất định đã được tạo, việc xoay vòng log mới sẽ khiến file log cũ nhất bị xóa.
Vòng quay được bắt đầu thông qua tiện ích logrotate.
Tệp cấu hình logrotate
Giống như rsyslog, logrotate cũng phụ thuộc vào một file cấu hình và tên của file này là logrotate.conf. Nó nằm dưới / etc.
Đây là những gì tôi thấy trong file logrotate.conf của server Debian:
debian@debian:~$ cat /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # no packages own wtmp, or btmp -- we'll rotate them here /var/log/wtmp { missingok monthly create 0664 root utmp rotate 1 } /var/log/btmp { missingok monthly create 0660 root utmp rotate 1 } # system-specific logs may be configured here
Các dòng khá dễ hiểu. Theo mặc định, các file log phải được luân chuyển hàng tuần với bốn log tồn đọng trực tuyến cùng một lúc. Khi chương trình chạy, một file log mới, trống sẽ được tạo và tùy chọn các file cũ sẽ được nén.
Ngoại lệ duy nhất dành cho các file wtmp và btmp. wtmp theo dõi các lần đăng nhập hệ thống và btmp theo dõi các lần đăng nhập xấu. Cả hai file log này sẽ được luân chuyển hàng tháng và không có lỗi nào được trả lại nếu có thể tìm thấy các file wtmp hoặc btmp nào trước đó.
Các cấu hình xoay vòng log tùy chỉnh được giữ trong folder etc / logrotate.d. Chúng cũng có trong logrotate.conf với chỉ thị include. Cài đặt Debian hiển thị cho tôi nội dung của folder này:
debian@debian:~$ ls -l /etc/logrotate.d
total 44 -rw-r--r-- 1 root root 173 Apr 15 2011 apt -rw-r--r-- 1 root root 79 Aug 12 2011 aptitude -rw-r--r-- 1 root root 135 Feb 24 2010 consolekit -rw-r--r-- 1 root root 248 Nov 28 2011 cups -rw-r--r-- 1 root root 232 Sep 19 2012 dpkg -rw-r--r-- 1 root root 146 May 12 2011 exim4-base -rw-r--r-- 1 root root 126 May 12 2011 exim4-paniclog -rw-r--r-- 1 root root 157 Nov 16 2010 pm-utils -rw-r--r-- 1 root root 94 Aug 8 2010 ppp -rw-r--r-- 1 root root 515 Nov 30 2010 rsyslog -rw-r--r-- 1 root root 114 Nov 26 2008 unattended-upgrades
Nội dung của rsyslog cho thấy cách tái chế một số file log :
debian@debian:~$ cat /etc/logrotate.d/rsyslog
/var/log/syslog { rotate 7 daily missingok notifempty delaycompress compress postrotate invoke-rc.d rsyslog reload > /dev/null endscript } /var/log/mail.info /var/log/mail.warn /var/log/mail.err /var/log/mail.log /var/log/daemon.log /var/log/kern.log /var/log/auth.log /var/log/user.log /var/log/lpr.log /var/log/cron.log /var/log/debug /var/log/messages { rotate 4 weekly missingok notifempty compress delaycompress sharedscripts postrotate invoke-rc.d rsyslog reload > /dev/null endscript }
Như bạn thấy , file log hệ thống sẽ được khởi động lại mỗi ngày với giá trị của các log trong bảy ngày được lưu trực tuyến. Các file log khác được luân phiên hàng tuần.
Cũng đáng chú ý là chỉ thị postrotate. Điều này chỉ định hành động xảy ra sau khi hoàn tất việc xoay toàn bộ log .
Thử nghiệm xoay
Logrotate có thể được chạy theo cách thủ công để tái chế một hoặc nhiều file . Và để làm điều đó, ta chỉ cần chỉ định file cấu hình liên quan làm đối số cho lệnh.
Để xem cách này hoạt động như thế nào, đây là danh sách một phần các file log trong folder / var / log trong server CentOS thử nghiệm của tôi:
[root@TestLinux ~]# ls -l /var/log
total 800 ... -rw------- 1 root root 359 Dec 17 18:25 maillog -rw-------. 1 root root 1830 Dec 16 16:35 maillog-20131216 -rw------- 1 root root 30554 Dec 17 18:25 messages -rw-------. 1 root root 180429 Dec 16 16:35 messages-20131216 -rw------- 1 root root 591 Dec 17 18:28 secure -rw-------. 1 root root 4187 Dec 16 16:41 secure-20131216 ... ...
Nội dung một phần của file logrotate.conf trông giống như sau:
[root@TestLinux ~]# cat /etc/logrotate.conf
# see "man logrotate" for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create ... ...
Tiếp theo, ta chạy lệnh logrotate:
[root@TestLinux ~]# logrotate -fv /etc/logrotate.conf
Thư cuộn qua khi file mới được tạo, gặp lỗi, v.v. Khi bụi lắng xuống, ta cố gắng kiểm tra các file thư, bảo mật hoặc thư mới:
[root@TestLinux ~]# ls -l /var/log/mail* -rw------- 1 root root 0 Dec 17 18:34 /var/log/maillog -rw-------. 1 root root 1830 Dec 16 16:35 /var/log/maillog-20131216 -rw------- 1 root root 359 Dec 17 18:25 /var/log/maillog-20131217 [root@TestLinux ~]# ls -l /var/log/messages* -rw------- 1 root root 148 Dec 17 18:34 /var/log/messages -rw-------. 1 root root 180429 Dec 16 16:35 /var/log/messages-20131216 -rw------- 1 root root 30554 Dec 17 18:25 /var/log/messages-20131217 [root@TestLinux ~]# ls -l /var/log/secure* -rw------- 1 root root 0 Dec 17 18:34 /var/log/secure -rw-------. 1 root root 4187 Dec 16 16:41 /var/log/secure-20131216 -rw------- 1 root root 591 Dec 17 18:28 /var/log/secure-20131217 [root@TestLinux ~]#
Như ta có thể thấy, tất cả ba file log mới đã được tạo. Các file maillog và file bảo mật vẫn trống, nhưng file tin nhắn mới đã có một số dữ liệu trong đó.
Những từ cuối
Hy vọng rằng hướng dẫn này đã cung cấp cho bạn một số ý tưởng về ghi log Linux. Bạn có thể thử xem xét các hệ thống thử nghiệm hoặc phát triển của riêng mình để có ý tưởng tốt hơn. Khi bạn đã quen với vị trí của các file log và cài đặt cấu hình của chúng, hãy sử dụng kiến thức đó để hỗ trợ hệ thống production của bạn. Và sau đó, có thể bạn có thể tạo một số alias để trỏ đến các file này để tiết kiệm thời gian đánh máy.
<div class = “author”> Người gửi: Sadequl Hussain </div>
Các tin liên quan
Cách thiết lập server email Postfix với Dovecot: Dynamic Maildirs và LMTP2013-12-17
Cách cài đặt Linux Socket Monitor (LSM) trên CentOS 6.4
2013-11-26
Cách sử dụng ApacheBench để thực hiện kiểm tra tải trên VPS Arch Linux
2013-11-21
Cách thiết lập server VPN đa giao thức bằng SoftEther
2013-11-19
Cách thiết lập server e-mail Postfix với Dovecot
2013-11-14
Cách thiết lập WordPress với W3 Total Cache trên Lighttpd Server
2013-11-12
Thiết lập server ban đầu với Debian 7
2013-11-04
Cách cài đặt Linux, Nginx, MySQL, PHP (LEMP) trên Debian 7
2013-10-31
Cách sử dụng Tìm và Định vị để Tìm kiếm Tệp trên VPS Linux
2013-09-27
10 Trứng Phục sinh hàng đầu trên Linux
2013-09-18