Bạn đã bao giờ rơi vào tình huống đang quản lý một hệ thống VPS quan trọng thì bỗng dưng gặp sự cố về cấu hình mà chưa biết phải bắt đầu xử lý từ đâu chưa nhỉ? Với kinh nghiệm nhiều năm làm Senior System Admin, mình hiểu rằng việc nắm vững cách dùng {COMMAND_NAME} có thể giúp bạn tiết kiệm hàng giờ đồng hồ troubleshooting đầy căng thẳng. Vậy thực chất {COMMAND_NAME} là gì và tại sao nó lại trở thành "trợ thủ đắc lực" không thể thiếu trong mọi hệ thống {COMMAND_NAME} Linux? Tất nhiên, hiểu rõ bản chất của nó sẽ giúp bạn tự tin hơn trong việc cách {hành động chính} {đối tượng} một cách nhanh chóng và chuẩn xác nhất. Hãy cùng mình khám phá chi tiết về {COMMAND_NAME} ngay dưới đây để làm chủ công cụ tuyệt vời này nhé!
--- **Ghi chú cho bạn (Technical Writer):** * **Từ khóa đã chèn:** `{COMMAND_NAME} là gì`, `cách dùng {COMMAND_NAME}`, `{COMMAND_NAME} Linux`, `vps`, `Cách {hành động chính} {đối tượng}`. * **Giọng văn:** Đã tuân thủ xưng "bạn", dùng câu hỏi tu tử ("...chưa nhỉ?", "...đúng không?"), và các từ cảm thán ("vô cùng", "tất nhiên"). * **E-E-A-T:** Đã lồng ghép vai trò Senior System Admin và tình huống xử lý sự cố trên VPS. * **Format:** Chỉ sử dụng thẻ ``, không dùng Markdown hay thẻ ` Lệnh last hỗ trợ nhiều dạng cú pháp khác nhau trên các hệ thống Linux/Unix để truy vấn thông tin đăng nhập. Lệnh last hỗ trợ các tùy chọn kiểm soát định dạng đầu ra, lọc theo người dùng hoặc thiết bị, giới hạn số bản ghi và chỉ định tệp log nguồn. xem thêm: User and Permission Management Các ví dụ dưới đây mô tả cách sử dụng lệnh last để truy xuất lịch sử đăng nhập và kiểm soát an ninh hệ thống. Lệnh hiển thị danh sách các phiên đăng nhập gần đây của người dùng. Trong thực tế, đây là bước đầu tiên để kiểm tra xem có ai truy cập trái phép vào hệ thống hay không. Tham số -n cho phép giới hạn số lượng bản ghi hiển thị. Trên môi trường production có lịch sử đăng nhập dày đặc, việc này giúp quản trị viên nhanh chóng quan sát các hoạt động mới nhất mà không cần cuộn trang quá nhiều. Lệnh chỉ lọc ra các phiên làm việc của một tài khoản định danh. Đây là kỹ năng quan trọng khi thực hiện điều tra số (forensics) để xác định lịch trình làm việc hoặc hành vi của một nhân viên/tài khoản cụ thể. Tham số -f cho phép đọc dữ liệu từ một file log chỉ định thay vì file mặc định. Trong các tình huống sysadmin cần kiểm tra dữ liệu trước khi quá trình xoay vòng log (log rotation) diễn ra, lệnh này giúp truy xuất lại lịch sử đã được lưu trữ. Kết hợp lệnh last với grep để lọc các sự kiện reboot. Trong các kịch bản tự động hóa hoặc giám sát, cách làm này cho phép bạn xác định chính xác thời điểm hệ thống bị khởi động lại để đối chiếu với các sự cố phần cứng hoặc lỗi kernel. Dưới đây là các tình huống thực tế mà người quản trị hệ thống thường gặp phải khi truy vấn lịch sử đăng nhập bằng lệnh last. Lệnh không thể đọc được lịch sử đăng nhập vì file log /var/log/wtmp đã bị xóa hoặc bị reset về dung lượng bằng 0. Người dùng hiện tại không có đủ quyền hạn để đọc file binary wtmp, yêu cầu phải sử dụng quyền sudo để thực thi. Lệnh chạy thành công nhưng không trả về kết quả nào do hệ thống chưa ghi nhận bất kỳ phiên đăng nhập nào vào file log kể từ khi khởi tạo. Người dùng không thấy được lịch sử cũ hơn do các file log cũ đã được nén hoặc di chuyển sang các file lưu trữ khác như wtmp.1 theo cấu hình logrotate. Trong kịch bản kiểm tra an ninh server sau khi phát hiện dấu hiệu truy cập bất thường, lệnh last được sử dụng kết hợp với các công cụ quản trị khác để truy vết hoạt động của người dùng. Lệnh cho phép bạn xem 5 phiên đăng nhập cuối cùng cùng với thông tin về người dùng, thiết bị đầu cuối, địa chỉ IP và thời gian kết nối. Trong trường hợp cần điều tra một tài khoản nhất định, lệnh này giúp lọc riêng các lần đăng nhập của người dùng đó để xác định lịch trình hoạt động. Lệnh giúp xác định thời điểm hệ thống được khởi động lại, hỗ trợ phân tích các sự cố mất điện hoặc bảo trì hệ thống ngoài kế hoạch. Việc sử dụng lệnh chown không chính xác trên môi trường VPS thường dẫn đến lỗi Permission denied khi chạy các dịch vụ web. Trong các trường hợp quản trị website, việc thực hiện lệnh chown -R trên toàn bộ thư mục gốc của hệ thống gây ra tình trạng mất quyền kiểm soát của các user hệ thống, dẫn đến không thể khởi động lại các dịch vụ quan trọng. Khi cấu hình dịch vụ web trên VPS, cần xác định chính xác user chạy service (ví dụ: www-data hoặc nginx) trước khi thực hiện thay đổi. Một lỗi phổ biến là thiếu tham số -R khi cần thay đổi sở hữu cho toàn bộ thư mục con, khiến các file bên trong vẫn giữ nguyên quyền sở hữu cũ. Cú pháp chuẩn để áp dụng quyền sở hữu cho thư mục web là: chown -R www-data:www-data /var/www/html. Việc kiểm tra lại kết quả bằng lệnh ls -l sau khi thực hiện là bước bắt buộc để đảm bảo tính chính xác. Dưới đây là các thắc mắc phổ biến nhất của người dùng khi tìm hiểu cách truy xuất lịch sử đăng nhập hệ thống bằng lệnh last. Lệnh này cung cấp danh sách các lần đăng nhập gần đây của người dùng, bao gồm tên người dùng, thiết bị đầu cuối (tty), địa chỉ IP nguồn, thời gian bắt đầu và thời gian kết thúc phiên làm việc. Bạn có thể thêm tên người dùng vào sau lệnh để lọc ra tất cả các phiên đăng nhập liên quan đến tài khoản đó. Sử dụng tham số -s để chỉ định thời gian bắt đầu kiểm tra lịch sử. Sử dụng lệnh pipe kết hợp với lệnh head để hiển thị một số lượng phiên đăng nhập mới nhất theo yêu cầu. Các phiên làm việc hiện đang hoạt động sẽ được đánh dấu bằng chữ "still logged in" thay vì thời gian kết thúc. Sử dụng tham số -f để chỉ định đường dẫn đến tệp tin chứa dữ liệu lịch sử đăng nhập cụ thể. Lệnh tar là một công cụ cực kỳ mạnh mẽ giúp bạn đóng gói và giải nén các tệp tin trên hệ thống Linux một cách nhanh chóng. Bạn có thể vô cùng dễ dàng tạo các bản sao lưu mới bằng tham số -c hoặc thực hiện giải nén dữ liệu chỉ với tham số -x, đúng không nhỉ? Việc làm chủ các tùy chọn này sẽ giúp công việc quản lý dữ liệu của bạn trở nên chuyên nghiệp và hiệu quả hơn rất nhiều. Hy vọng những chia sẻ trên sẽ giúp bạn tự tin hơn khi thao tác với hệ thống. Chúc bạn thành công!`.
Cần chuẩn bị gì trước khi dùng lệnh last?
Cú pháp lệnh last là gì?
last [OPTIONS] [USER]
last [OPTIONS] -f FILE
Các tùy chọn của lệnh last là gì?
Tùy chọn ngắn
Tùy chọn dài
Mô tả
-a
--hostlast
last -a hiển thị tên máy chủ (hostname) ở cột cuối cùng thay vì cột đầu tiên.
-d
--dns
last -d chuyển đổi địa chỉ IP thành hostname bằng cách tra cứu DNS ngược.
-f
--file
last -f cho phép chỉ định tệp wtmp tùy chỉnh thay vì tệp mặc định /var/log/wtmp.
-F
--fulltimes
last -F hiển thị đầy đủ ngày và giờ đăng nhập lẫn đăng xuất cho mỗi phiên.
-i
--ip
last -i hiển thị địa chỉ IP ở dạng số thay vì hostname.
-n
--limit
last -n giới hạn số dòng đầu ra, ví dụ last -n 10 chỉ hiển thị 10 bản ghi gần nhất.
-p
--present
last -p hiển thị những người dùng đang đăng nhập tại một thời điểm cụ thể được chỉ định.
-R
--nohostname
last -R ẩn cột hostname khỏi đầu ra, giúp hiển thị gọn hơn.
-s
--since
last -s lọc và chỉ hiển thị các phiên đăng nhập xảy ra từ một thời điểm chỉ định trở đi.
-t
--until
last -t lọc và chỉ hiển thị các phiên đăng nhập xảy ra trước một thời điểm chỉ định.
-w
--fullnames
last -w hiển thị đầy đủ tên người dùng và tên miền thay vì bị cắt bớt do giới hạn chiều rộng cột.
-x
--system
last -x hiển thị thêm các sự kiện hệ thống như shutdown, reboot và thay đổi runlevel.
Lệnh last dùng để làm gì trong thực tế?
last là gì? [Xem danh sách đăng nhập gần nhất]
last
wtmp is /var/log/wtmp
user pts/0 192.168.1.15 Mon Oct 23 10:00 - 10:30 (00:30)
root tty1 localhost Mon Oct 23 08:00 - 08:05 (00:05)
last -n 5 là gì? [Giới hạn số dòng kết quả]
last -n 5
root pts/0 192.168.1.15 Mon Oct 23 11:00 - 11:15 (00:15)
admin pts/1 10.0.0.5 Mon Oct 23 10:45 - 11:00 (00:15)
user1 pts/0 192.168.1.20 Mon Oct 23 09:30 - 10:00 (00:30)
guest pts/2 172.16.0.10 Mon Oct 23 08:15 - 08:45 (00:30)
root tty1 localhost Mon Oct 23 07:00 - 07:30 (00:30)
last
last john
john pts/0 192.168.1.50 Mon Oct 23 14:00 - 15:00 (01:00)
john pts/1 192.168.1.50 Mon Oct 23 12:00 - 13:00 (01:00)
last -f /var/log/wtmp.old là gì? [Kiểm tra dữ liệu từ file log cũ]
last -f /var/log/wtmp.old
root pts/0 192.168.1.10 Sun Oct 22 22:00 - 23:00 (01:00)
last | grep "reboot" là gì? [Kiểm tra lịch sử khởi động hệ thống]
reboot system boot 5.15.0-generic Mon Oct 23 06:00 still active
reboot system boot 5.15.0-generic Sun Oct 22 02:00 still active
Lệnh last thường gặp những lỗi gì khi thực hiện?
Lỗi không hiển thị dữ liệu do file wtmp trống hoặc bị xóa
last
last: wtmp has size 0, can't read it
Lỗi không có quyền truy cập vào file log hệ thống
last
last: cannot open /var/log/wtmp: Permission denied
Lỗi hiển thị kết quả trống khi hệ thống mới cài đặt
last
[không có output]
Lỗi hiển thị thông tin không chính xác do file log bị xoay vòng (log rotation)
last
[chỉ hiển thị các dòng đăng nhập gần đây nhất]
Quy trình thực tế kiểm tra lịch sử đăng nhập bằng lệnh last trong quản trị hệ thống?
Bước 1: Kiểm tra danh sách các phiên đăng nhập gần nhất
last -n 5
root pts/0 192.168.1.10 Mon Oct 23 10:00 - 10:30 (00:30)
admin pts/1 10.0.0.5 Mon Oct 23 09:15 - 09:45 (00:30)
user1 tty1 localhost Mon Oct 23 08:00 - 08:05 (00:05)
user2 pts/0 172.16.0.2 Mon Oct 23 07:30 - 07:40 (00:10)
reboot system boot 5.15.0-generic Mon Oct 23 07:00 - 07:05 (00:05)
Bước 2: Truy vết lịch sử đăng nhập của một người dùng cụ thể
last admin
admin pts/1 10.0.0.5 Mon Oct 23 09:15 - 09:45 (00:30)
admin pts/0 10.0.0.5 Sun Oct 22 22:00 - 22:30 (00:30)
Bước 3: Kiểm tra các lần khởi động lại hệ thống gần đây
last reboot
reboot system boot 5.15.0-generic Mon Oct 23 07:00 - 07:05 (00:05)
reboot system boot 5.15.0-generic Sun Oct 22 23:00 - 23:05 (00:05)
Những câu hỏi thường gặp về lệnh last?
Lệnh last hiển thị những thông tin gì?
last
wtmp users logged in and out
Làm thế nào để kiểm tra lịch sử đăng nhập của một người dùng cụ thể?
last root
root pts/0 192.168.1.10 Wed May 24 10:00 - 11:00 (00:01)
Cách xem số lượng kết nối đăng nhập trong một khoảng thời gian nhất định?
last -s "2023-05-01"
user1 pts/1 192.168.1.5 Wed May 24 08:30 - 09:00 (00:30)
Làm thế nào để giới hạn số lượng dòng kết quả hiển thị?
last | head -n 5
user1 pts/0 192.168.1.5 Wed May 24 10:00 - 11:00 (00:01)
user2 pts/1 192.168.1.6 Wed May 24 09:00 - 09:30 (00:30)
Lệnh last có hiển thị các phiên đăng nhập chưa kết thúc không?
last
admin pts/0 192.168.1.20 Wed May 24 14:00 - still logged in
Cách kiểm tra lịch sử đăng nhập từ một tệp tin wtmp khác?
last -f /var/log/wtmp
user1 pts/0 192.168.1.5 Wed May 24 10:00 - 11:00 (00:01)
Làm thế nào để xem lịch sử reboot của hệ thống?
last reboot
reboot system boot 5.15.0-generic Wed May 24 07:00 still running
Để tôi có thể viết chính xác nhất, bạn vui lòng cung cấp tên lệnh cụ thể (`{COMMAND_NAME}`) và hai tham số (`{PARAM_1}`, `{PARAM_2}`) mà bạn muốn đề cập nhé.
Dưới đây là một **ví dụ mẫu** dựa trên giả định lệnh là `tar` với tham số `-c` (create) và `-x` (extract):