CyStack logo
  • Sản phẩm & Dịch vụ
  • Giải pháp
  • Bảng giá
  • Công ty
  • Tài liệu
Vi

vi

Trang chủHướng dẫnCách xem và cấu hình Log Linux trên Ubuntu, Debian và CentOS
Chuyên gia

Cách xem và cấu hình Log Linux trên Ubuntu, Debian và CentOS

CyStack blog 13 phút để đọc
CyStack blog21/07/2025
Locker Avatar

Chris Pham

Technical Writer

Locker logo social
Reading Time: 13 minutes

Các quản trị viên hệ thống Linux thường xuyên phải xem xét các file log để xử lý sự cố. Đây là một trong những công việc đầu tiên mà một quản trị viên sẽ thực hiện.

cấu hình Log Linux trên Ubuntu, Debian và CentOS

Linux và các ứng dụng chạy trê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 nhiều tập tin log khác nhau. Hệ điều hành này sử dụng một tập hợp các tập tin cấu hình, thư mục, chương trình, lệnh và cácdaemon để tạo, lưu trữ và xoay vòng các thông điệp log. Do đó, việc biết hệ thống lưu giữ file log ở đâu và cách sử dụng các lệnh liên quan có thể giúp tiết kiệm đáng kể thời gian khi cần xử lý sự cố.

Trong bài hướng dẫn này, chúng ta sẽ cùng tìm hiểu các thành phần khác nhau trong cơ chế ghi log của Linux và cách cấu hình log Linux trên các hệ điều hành phổ biến như Ubuntu, Debian và CentOS.

∗Lưu ý:

Các lệnh trong bài hướng dẫn này đã được kiểm tra trên các bản cài đặt gốc của CentOS 9, Ubuntu 22.10 và Debian 11.

Bước 1: Kiểm tra vị trí file log mặc định

Vị trí mặc định cho các file log trong Linux là /var/log. Bạn có thể xem danh sách các file log trong thư mục này bằng lệnh sau:

ls -l /var/log

Bạn sẽ thấy kết quả tương tự như sau trên hệ thống CentOS của mình:

[root@centos-9-trim ~]# ls -l /var/log
total 49316
drwxr-xr-x. 2 root   root          6 Sep 27 19:17 anaconda
drwx------. 2 root   root         99 Jan  3 08:23 audit
-rw-rw----. 1 root   utmp    1234560 Jan  3 16:16 btmp
-rw-rw----. 1 root   utmp   17305344 Jan  1 00:00 btmp-20230101
drwxr-x---. 2 chrony chrony        6 Aug 10  2021 chrony
-rw-r--r--. 1 root   root     130466 Dec  8 22:12 cloud-init.log
-rw-r-----. 1 root   adm       10306 Dec  8 22:12 cloud-init-output.log
-rw-------. 1 root   root      36979 Jan  3 16:03 cron
-rw-------. 1 root   root      27360 Dec 10 23:15 cron-20221211
...

Bước 2: Xem nội dung file log

Dưới đây là một số file log phổ biến bạn sẽ tìm thấy trong /var/log:

  • wtmp
  • utmp
  • dmesg
  • messages
  • maillog hoặc mail.log
  • spooler
  • auth.log hoặc secure

Các file wtmputmp theo dõi quá trình người dùng đă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 lệnh cat trong terminal vì bạn sẽ cần dùng những lệnh cụ thể khác cho việc này.

Sử dụng lệnh who giúp bạn xem ai hiện đang đăng nhập vào máy chủ Linux. Lệnh này lấy giá trị từ file /var/run/utmp (đối với CentOS và Debian) hoặc /run/utmp (đối với Ubuntu).

Đây là một ví dụ từ Ubuntu:

root@ubuntu-22:~# who
root      pts/0        2023-01-03 16:23 (198.211.111.194)

Trong trường hợp cụ thể này, chúng ta là người duy nhất sử dụng hệ thống.

Lệnh last cho bạn biết lịch sử đăng nhập của người dùng:

root@ubuntu-22:~# last
root      pts/0        198.211.111.194  Tue Jan  3 16:23   still logged in
reboot   system boot  5.19.0-23-generi Thu Dec  8 21:48   still running

wtmp begins Thu Dec  8 21:48:51 2022

Bạn cũng có thể sử dụng lệnh last kết hợp với dấu gạch dọc (|) và grep để tìm kiếm người dùng cụ thể.

Để tìm ra lần cuối cùng hệ thống được khởi động lại, bạn có thể chạy lệnh sau:

last reboot

Đây là kết quả trên hệ điều hành Debian:

Output
root@debian-11-trim:~# last reboot
reboot   system boot  5.10.0-11-amd64  Thu Dec  8 21:49   still running

wtmp begins Thu Dec  8 21:49:39 2022

Sử dụng lệnh lastlog khi cần xem lần cuối cùng có người đăng nhập vào hệ thống:

lastlog

Kết quả trên hệ điều hành Debian như sau:

Output
root@debian-11-trim:~# lastlog
Username         Port     From             Latest
root             pts/0    162.243.188.66   Tue Jan  3 16:23:03 +0000 2023
daemon                                     **Never logged in**
bin                                        **Never logged in**
sys                                        **Never logged in**
sync                                       **Never logged in**
games                                      **Never logged in**
man                                        **Never logged in**
lp                                         **Never logged in**
mail                                       **Never logged in**
news                                       **Never logged in**
uucp                                       **Never logged in**
proxy                                      **Never logged in**
www-data                                   **Never logged in**
backup                                     **Never logged in**
list                                       **Never logged in**
irc                                        **Never logged in**
gnats                                      **Never logged in**
nobody                                     **Never logged in**
_apt                                       **Never logged in**
messagebus                                 **Never logged in**
uuidd                                      **Never logged in**
…

Đối với các file log dạng văn bản khác, bạn có thể sử dụng các lệnh cat, head hoặc tail để đọc nội dung.

Ví dụ bên dưới là cách xem 10 dòng cuối cùng của file /var/log/messages trên một máy chủ Debian:

sudo tail /var/log/messages

Bạn sẽ nhận được kết quả như sau:

Output
root@debian-11-trim:~# tail /var/log/messages
Jan  1 00:10:14 debian-11-trim rsyslogd: [origin software="rsyslogd" swVersion="8.2102.0" x-pid="30025" x-info="<https://www.rsyslog.com>"] rsyslogd was HUPed
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 ssh_watcher.go:65: [SSH Watcher] Port knocking detected.
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:43: [DO-Managed Keys Actioner] Metadata contains 1 ssh keys and 1 dotty keys
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:49: [DO-Managed Keys Actioner] Attempting to update 1 dotty keys
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:70: [DO-Managed Keys Actioner] Updating 2 keys
Jan  3 16:23:01 debian-11-trim DropletAgent[808]: INFO:2023/01/03 16:23:01 do_managed_keys_actioner.go:75: [DO-Managed Keys Actioner] Keys updated

Bước 3: Sử dụng Rsyslog Daemon

Trung tâm của cơ chế ghi log là rsyslog ****daemon. Dịch vụ này chịu trách nhiệm lắng nghe các thông điệp log từ các phần khác nhau của hệ thống Linux và định tuyến thông điệp đến file log thích hợp trong thư mục /var/log. Nó cũng có thể chuyển tiếp thông điệp log giữa các máy chủ Linux.

File cấu hình Rsyslog

rsyslog daemon lấy thông tin cấu hình từ file rsyslog.conf, nằm trong thư mục /etc.

File rsyslog.conf chỉ cho rsyslog daemon biết nơi lưu các thông điệp log của nó. Các chỉ dẫn này được định nghĩa thông qua một chuỗi các dòng gồm hai phần, nằm trong file.

Trên Ubuntu, file này thường được tìm thấy tại: /etc/rsyslog.d/50-default.conf

Câu lệnh gồm hai phần này bao gồm hai thành phần là selector (bộ chọn) và action (hành động), được phân tách bằng khoảng trắng.

Phần selector xác định nguồn gốc và mức độ quan trọng của thông điệp log, còn phần action chỉ định hành động sẽ thực hiện với thông điệp đó.

Bản thân selector 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 được gọi là facility (nguồn gốc của thông điệp) và phần thứ hai được gọi là priority (mức độ nghiêm trọng của thông điệp).

Cặp facility/priorityaction cho rsyslog biết phải làm gì khi một thông điệp log phù hợp với tiêu chí được tạo ra.

Bạn có thể xem một đoạn trích từ file /etc/rsyslog.conf của CentOS bằng lệnh này:

cat /etc/rsyslog.conf

Kết quả sẽ như sau:

Output
# rsyslog configuration file

# For more information see /usr/share/doc/rsyslog-*/rsyslog_conf.html
# or latest version online at <http://www.rsyslog.com/doc/rsyslog_conf.html> 
# If you experience problems, see <http://www.rsyslog.com/doc/troubleshoot.html>

#### GLOBAL DIRECTIVES ####

# Where to place auxiliary files
global(workDirectory="/var/lib/rsyslog")

# Use default timestamp format
module(load="builtin:omfile" Template="RSYSLOG_TraditionalFileFormat")

# Include all config files in /etc/rsyslog.d/
include(file="/etc/rsyslog.d/*.conf" mode="optional")

#### MODULES ####

module(load="imuxsock"    # provides support for local system logging (e.g. via logger command)
       SysSock.Use="off") # Turn off message reception via local log socket; 
                          # local messages are retrieved through imjournal now.
module(load="imjournal"             # provides access to the systemd journal
       StateFile="imjournal.state") # File to store the position in the journal
#module(load="imklog") # reads kernel messages (the same are read from journald)
#module(load="immark") # provides --MARK-- message capability

# Provides UDP syslog reception
# for parameters see <http://www.rsyslog.com/doc/imudp.html>
#module(load="imudp") # needs to be done just once
#input(type="imudp" port="514")
…

Để hiểu ý nghĩa của tất cả những điều này, chúng ta sẽ cùng xem xét các loại facility được Linux công nhận như sau:

  • auth hoặc authpriv: Thông điệp từ các sự kiện liên quan đến ủy quyền và bảo mật.
  • kern: Bất kỳ thông điệp nào đến từ kernel Linux.
  • mail: Các thông điệp được tạo ra từ hệ thống con xử lý mail (mail subsystem)
  • cron: Thông điệp liên quan đến cron daemon.
  • daemon: Thông điệp đến từ các daemon.
  • news: Thông điệp từ hệ thống con tin tức mạng.
  • lpr: Thông điệp log liên quan đến việc in ấn.
  • user: Thông điệp log đến từ các chương trình người dùng.
  • local0 đến local7: Dành riêng cho sử dụng cục bộ.

Và đây là danh sách các priority theo thứ tự tăng dần:

  • debug: Thông tin gỡ lỗi từ các chương trình.
  • info: Thông điệp thông tin đơn giản – không cần can thiệp.
  • notice: Tình trạng có thể cần chú ý.
  • warn: Cảnh báo.
  • err: Lỗi.
  • crit: Tình trạng nghiêm trọng.
  • alert: Tình trạng cần can thiệp ngay lập tức.
  • emerg: Tình trạng khẩn cấp.

Bây giờ hãy xem xét dòng sau từ file:

# Log cron stuff
cron.* /var/log/cron

Dòng này chỉ cho rsyslog daemon biết phải lưu tất cả các thông điệp đến từ cron daemon vào một file có tên /var/log/cron. Dấu hoa thị (*) sau dấu chấm có nghĩa là các thông điệp của tất cả các priority sẽ được ghi lại. Tương tự, nếu trường facility được chỉ định là dấu hoa thị, nghĩa là áp dụng cho mọi nguồn.

Các facilitypriority có thể được kết hợp theo nhiều cách.

Trong dạng cấu hình mặc định, khi chỉ có một priority được chỉ định sau dấu chấm thì tất cả các sự kiện có mức độ ưu tiên bằng hoặc cao hơn sẽ được ghi lại. Vì vậy, chỉ thị sau đây sẽ khiến mọi thông điệp đến từ hệ thống con xử lý mail có mức độ ưu tiên từ warn trở lê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 điệp có mức độ ưu tiên bằng hoặc cao hơn warn và bỏ qua các mức thấp hơn. Vì vậy, các thông điệp với err, crit, alert, hoặc emerg cũng sẽ được ghi vào file này.

Nếu sử dụng dấu bằng (=) sau dấu chấm thì sẽ chỉ ghi lại priority được chỉ định. Vì vậy, nếu chúng ta chỉ muốn ghi lại các thông điệp info từ hệ thống con mail, cú pháp sẽ như sau:

mail.=info			/var/log/mail.info

Ngược lại, nếu chúng ta muốn ghi lại mọi thứ từ hệ thống con mail ngoại trừ các thông điệp info, cú pháp sẽ như sau:

mail.!info			/var/log/mail.info

hoặc

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 info. Còn trong trường hợp thứ hai, file sẽ chứa tất cả các thông điệp có mức độ ưu tiên cao hơn info.

Các facility trên cùng một dòng có thể được phân tách bằng dấu phẩy (,).

Nhiều nguồn (facility.priority) trên cùng một dòng được phân tách bằng dấu chấm phẩy (;).

Khi một action được đánh dấu bằng dấu hoa thị, nghĩa là thông điệp đó sẽ được gửi đến mọi người dùng. Ví dụ như dòng này trong file rsyslog.conf của CentOS:

Output
# Everybody gets emergency messages
*.emerg

Hãy thử xem file rsyslog.conf sẽ cấu hình như thế nào trên hệ thống Linux. Dưới đây là một đoạn trích ví dụ từ một máy chủ Debian:

Output
# /etc/rsyslog.conf configuration file for rsyslog
#
# For more information install rsyslog-doc and see
# /usr/share/doc/rsyslog-doc/html/configuration/index.html

#################
#### MODULES ####
#################

module(load="imuxsock") # provides support for local system logging
module(load="imklog")   # provides kernel logging support
#module(load="immark")  # provides --MARK-- message capability

# provides UDP syslog reception
#module(load="imudp")
#input(type="imudp" port="514")

# provides TCP syslog reception
#module(load="imtcp")
#input(type="imtcp" port="514")

###########################
#### GLOBAL DIRECTIVES ####
###########################

#
# Use traditional timestamp format.
# To enable high precision timestamps, comment out the following line.
#
$ActionFileDefaultTemplate RSYSLOG_TraditionalFileFormat

#
# Set the default permissions for all log files.
#
$FileOwner root
$FileGroup adm
$FileCreateMode 0640
$DirCreateMode 0755
$Umask 0022
…

Như bạn có thể thấy, Debian lưu tất cả các thông điệp ở mức bảo mật/ủy quyền vào file /var/log/auth.log, còn CentOS lưu chúng trong file /var/log/secure.

Các cấu hình cho rsyslog cũng có thể đến từ các file cấu hình tùy chỉnh khác. Những file cấu hình tùy chỉnh này thường được đặt trong các thư mục khác nhau dưới đường dẫn /etc/rsyslog.d. file rsyslog.conf sẽ đưa các thư mục này vào bằng cách sử dụng chỉ thị $IncludeConfig.

Dưới đây là cách nó hiển thị trong Ubuntu:

Output
…
#
# Include all config files in /etc/rsyslog.d/
#
$IncludeConfig /etc/rsyslog.d/*.conf
…

Kiểm tra nội dung trong thư mục /etc/rsyslog.d bằng lệnh:

ls -l /etc/rsyslog.d

Bạn sẽ thấy một kết quả tương tự như thế này trong terminal:

Output
-rw-r--r-- 1 root root  314 Sep 19  2021 20-ufw.conf
-rw-r--r-- 1 root root  255 Sep 30 22:07 21-cloudinit.conf
-rw-r--r-- 1 root root 1124 Nov 16  2021 50-default.conf

Đích đến của một thông điệp log không nhất thiết phải là một file log; thông điệp đó có thể được gửi đến màn hình console của người dùng. Trong trường hợp này, trường action sẽ chứa tên người dùng. Nếu có nhiều người dùng cần nhận thông điệp, tên đăng nhập của họ sẽ được phân tách bằng dấu phẩy. Nếu thông điệp cần được gửi đến tất cả người dùng thì dấu hoa thị sẽ được dùng trong trường action.

Vì là một phần của hệ điều hành mạng, rsyslog daemon không chỉ có thể lưu thông điệp log cục bộ mà còn có thể chuyển tiếp chúng đến một máy chủ Linux khác trong mạng hoặc đóng vai trò là kho lưu trữ log cho các hệ thống khác. Daemon lắng nghe các thông điệp log trên cổng UDP 514. Ví dụ dưới đây sẽ chuyển tiếp các thông điệp crit của kernel đến một máy chủ có tên là “texas”.

kern.crit			@texas

Bước 4: Tạo và kiểm tra thông điệp log của bạn

Bây giờ là lúc bạn cần tạo các file log của riêng mình. Hãy thực hiện theo các bước sau đây:

  1. Thêm một quy tắc chỉ định file log trong /etc/rsyslog.conf.
  2. Khởi động lại rsyslog daemon.
  3. Kiểm tra cấu hình bằng tiện ích logger.

Trong ví dụ sau, bạn sẽ thêm hai dòng mới vào file rsyslog.conf trên hệ thống CentOS của mình. Như bạn có thể thấy với lệnh dưới đây, cả hai dòng đều đến từ một nguồn (facility) có tên là local4 và chúng có các mức độ ưu tiên khác nhau.

vi /etc/rsyslog.conf

Đây là kết quả:

Output
…
# New lines added for testing log message generation  
	   
local4.crit                                             /var/log/local4crit.log  
local4.=info                                            /var/log/local4info.log

Tiếp theo, khởi động lại dịch vụ để tải lại dữ liệu file cấu hình:

/etc/init.d/rsyslog restart

Bây giờ, để tạo thông điệp log bằng cách gọi ứng dụng logger:

logger -p local4.info " This is a info message from local 4"

Khi kiểm tra thư mục /var/log lúc này, bạn sẽ thấy hai file mới vừa được tạo:

Output
…
-rw-------  1 root root      0 Jan  3 11:21 local4crit.log  
-rw-------  1 root root     72 Jan  3 11:22 local4info.log
…

Kích thước của local4info.log khác 0. Khi bạn mở nó, bạn sẽ thấy thông điệp đã được ghi lại:

cat /var/log/local4info.log
Jan  3 11:22:32 TestLinux root:  This is a info message from local 4

Bước 5 – Xoay vòng File Log (Log Rotation)

Ngày càng có nhiều thông tin được ghi vào các file log thì file sẽ ngày càng lớn. Rõ ràng điều này tiềm ẩn nguy cơ ảnh hưởng đến hiệu suất hệ thống. Đồng thời, việc quản lý các tệp cũng trở nên phức tạp và nặng nề.

Lúc này, thay vì xóa thông tin, Linux sử dụng khái niệm xoay vòng log. Khi một file log được xoay vòng, một file log mới sẽ được tạo ra, file log cũ được đổi tên và tùy chọn nén lại. Vì vậy, một tệp log có thể tồn tại nhiều phiên bản cũ trên hệ thống. Những tệp này sẽ quay ngược về một khoảng thời gian trước đó và đại diện cho phần log lưu trữ dự phòng (backlog). Khi số lượng backlog tồn đọng đạt đến một ngưỡng nhất định, một lần xoay vòng log mới sẽ tự động xóa phiên bản log cũ nhất.

Việc xoay vòng được khởi tạo thông qua tiện ích logrotate.

File cấu hình Logrotate

Giống như rsyslog, logrotate cũng phụ thuộc vào một file cấu hình tên là logrotate.conf, nằm trong /etc.

Đây là nội dung file logrotate.conf trên máy chủ Debian của bạn:

cat /etc/logrotate.conf
Output
# see "man logrotate" for details

# global options do not affect preceding include directives

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
#dateext

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may also be configured here.

Theo mặc định, các tệp log sẽ được xoay vòng hàng tuần với 4 bản log cũ được giữ lại trực tuyến tại một thời điểm. Khi chương trình xoay vòng log khởi chạy, một tệp log mới (trống) sẽ được tạo ra và nếu được cấu hình, các tệp log cũ có thể sẽ được nén lại.

Ngoại lệ duy nhất là các tệp wtmpbtmp:

  • wtmp lưu trữ lịch sử đăng nhập hệ thống.
  • btmp lưu các lần đăng nhập thất bại.

Hai tệp log này sẽ được xoay vòng theo chu kỳ hàng tháng và sẽ không có lỗi nào được trả về nếu không tìm thấy file wtmp hoặc btmp trước đó.

Các cấu hình xoay vòng log tùy chỉnh được lưu trong thư mục /etc/logrotate.d. Những cấu hình này cũng được nạp thông qua chỉ thị include trong tệp cấu hình chính logrotate.conf. Trong bản cài đặt Debian, bạn có thể xem nội dung của thư mục này như sau:

ls -l /etc/logrotate.d
Output
total 32
-rw-r--r-- 1 root root 120 Jan 30  2021 alternatives
-rw-r--r-- 1 root root 173 Jun 10  2021 apt
-rw-r--r-- 1 root root 130 Oct 14  2019 btmp
-rw-r--r-- 1 root root 160 Oct 19  2021 chrony
-rw-r--r-- 1 root root 112 Jan 30  2021 dpkg
-rw-r--r-- 1 root root 374 Feb 17  2021 rsyslog
-rw-r--r-- 1 root root 235 Feb 19  2021 unattended-upgrades
-rw-r--r-- 1 root root 145 Oct 14  2019 wtmp

Nội dung của rsyslog cho thấy cách xoay vòng một số file log như sau:

cat /etc/logrotate.d/rsyslog
Output
/var/log/syslog
/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
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

Như bạn có thể thấy, file messages sẽ được khởi tạo lại mỗi ngày, trong đó, các log được ghi nhận trong vòng 4 ngày được giữ lại trực tuyến. Các file log khác sẽ được xoay vòng hàng tuần.

Cũng đáng lưu ý là chỉ thị postrotate, chỉ thị này xác định hành động sẽ được thực thi sau khi quá trình xoay vòng log hoàn tất.

Bước 6: Kiểm tra việc xoay vòng Log

logrotate có thể được chạy thủ công để xoay vòng một hoặc nhiều file. Để thực hiện việc này, bạn cần chỉ định tệp cấu hình liên quan làm đối số cho lệnh.

Để xem cách hoạt động, dưới đây là danh sách một phần các tệp log trong thư mục /var/log trên một máy chủ CentOS thử nghiệm:

ls -l /var/log
...
-rw-------. 1 root   root     84103 Jan  3 17:20 messages
-rw-------. 1 root   root    165534 Dec 10 23:12 messages-20221211
-rw-------. 1 root   root    254743 Dec 18 00:00 messages-20221218
-rw-------. 1 root   root    217810 Dec 25 00:00 messages-20221225
-rw-------. 1 root   root    237726 Dec 31 23:45 messages-20230101
...
-rw-------. 1 root   root   2514753 Jan  3 17:25 secure
-rw-------. 1 root   root   2281107 Dec 10 23:59 secure-20221211
...

Một phần nội dung của tệp cấu hình logrotate.conf trông như sau:

cat /etc/logrotate.conf
Output
# see "man logrotate" for details

# global options do not affect preceding include directives

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may be also be configured here.Output
# see "man logrotate" for details

# global options do not affect preceding include directives

# rotate log files weekly
weekly

# keep 4 weeks worth of backlogs
rotate 4

# create new (empty) log files after rotating old ones
create

# use date as a suffix of the rotated file
dateext

# uncomment this if you want your log files compressed
#compress

# packages drop log rotation information into this directory
include /etc/logrotate.d

# system-specific logs may be also be configured here.

Tiếp theo, bạn chạy lệnh logrotate:

logrotate -fv /etc/logrotate.conf

Các thông điệp sẽ tiếp tục cuộn khi các tệp mới được tạo, khi xảy ra lỗi… Khi quá trình hoàn tất, bạn kiểm tra lại các file maillog, secure, hoặc messages mới:

ls -l /var/log/mail*
Output
-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
ls -l /var/log/messages*
Output
-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
ls -l /var/log/secure*ls -l /var/log/secure*
-rw-------  1 root root    0 Jan 3 12:34 /var/log/secure
-rw-------. 1 root root 4187 Jan 3 16:41 /var/log/secure-20230103 
-rw-------  1 root root  591 Jan 3 18:28 /var/log/secure-20230103 ```

Như chúng ta có thể thấy, các file log mới đã được tạo ra. Các tệp maillogsecure vẫn còn trống nhưng tệp messages mới thì đã có một số dữ liệu trong đó.

Kết luận

Hy vọng hướng dẫn này đã giúp bạn có thêm những hiểu biết về việc cấu hình log Linux. Bạn có thể thử kiểm tra các hệ thống phát triển hoặc thử nghiệm của riêng mình để có cái nhìn rõ hơn. Khi đã quen thuộc với vị trí của các tệp log và các thiết lập cấu hình liên quan, bạn có thể tận dụng kiến thức đó để hỗ trợ các hệ thống chạy thực tế. Sau đó, bạn cũng có thể tạo một số bí danh (alias) để trỏ đến các tệp log này nhằm tiết kiệm thời gian gõ lệnh.

0 Bình luận

Đăng nhập để thảo luận

Chuyên mục Hướng dẫn

Tổng hợp các bài viết hướng dẫn, nghiên cứu và phân tích chi tiết về kỹ thuật, các xu hướng công nghệ mới nhất dành cho lập trình viên.

Đăng ký nhận bản tin của chúng tôi

Hãy trở thành người nhận được các nội dung hữu ích của CyStack sớm nhất

Xem chính sách của chúng tôi Chính sách bảo mật.

Đăng ký nhận Newsletter

Nhận các nội dung hữu ích mới nhất