Làm quản trị hệ thống Linux nhiều năm, đôi khi mình nhìn lại và chỉ ước: Giá mà mình biết cái này sớm hơn. Hệ sinh thái Linux nó rộng lớn kinh khủng, đầy những công cụ mạnh mẽ và những mẹo hay ho mà không phải lúc nào cũng được nói đến.

Đây không phải là bài viết liệt kê mấy lệnh cơ bản, mà là những thứ mình thấy cực kỳ hữu ích cho anh em nào đã ăn dầm nằm dề trong terminal rồi nhưng muốn làm việc hiệu quả hơn.
Ví dụ như chuyện đặt lịch. Ai cũng biết cron, nhưng có hai người anh em của nó là at và batch lại ít được nhắc tới. Chúng cực kỳ tiện cho những tác vụ chỉ cần chạy một lần. Mình chỉ cần gõ echo "shutdown -h now" | at 11:00 PM
là xong, không cần phải vào sửa file crontab lằng nhằng.
Một công cụ khác của systemd mà mình rất thích là systemd-run. Nó cho phép anh em chạy một lệnh bất kỳ như một dịch vụ tạm thời mà không cần phải viết file .service phức tạp. Rất tiện để thử nghiệm hoặc chạy các tác vụ bảo trì nhanh.
Nói về tối ưu hiệu năng, trước đây mình hay phải tự tay tinh chỉnh các thông số hệ thống. Nhưng từ khi biết đến tuned, công việc này nhàn hơn hẳn. Nó tự động điều chỉnh hệ thống dựa trên loại công việc anh em đang làm, ví dụ như tối ưu cho máy ảo, cho database, hay cho lưu lượng mạng cao.
Khi gỡ lỗi mạng, thay vì dùng netstat đã cũ, mình hay kết hợp lsof -i
và ss
. Cặp đôi này giúp mình ngay lập tức xác định được tiến trình nào đang sử dụng một cổng và trạng thái kết nối của nó.
Việc đọc log cũng từng là một nỗi ám ảnh. Nhưng với journalctl -xeu [tên-dịch-vụ]
, mình có thể xem ngay các log gần nhất liên quan đến dịch vụ đó, lại còn được tô màu lỗi rất dễ nhìn, không cần phải cuộn qua hàng ngàn dòng log nữa.
Để bảo vệ các file hệ thống quan trọng, có một lệnh rất lợi hại là chattr +i
. Sau khi chạy lệnh này lên một file, ví dụ /etc/passwd
, thì ngay cả tài khoản root cũng không thể sửa hay xóa file đó trừ khi gỡ thuộc tính bất biến này đi.
Một mẹo nhỏ khác là tùy chỉnh các file /etc/motd và /etc/issue. Anh em có thể thêm các thông báo cảnh báo hoặc thông tin hệ thống, và nó sẽ hiện ra mỗi khi có người đăng nhập SSH.
Để theo dõi sự thay đổi của một file theo thời gian thực, mình hay dùng watch -d
kết hợp với diff
. Nó cực kỳ hữu ích khi anh em muốn xem một file log đang thay đổi như thế nào hoặc so sánh hai file cấu hình.
Khi một chương trình bị treo hoặc hoạt động không đúng ý, strace và ltrace là vị cứu tinh. Chúng cho phép mình soi từng lệnh gọi hệ thống syscall hoặc thư viện mà tiến trình đó đang thực hiện, giúp tìm ra nguyên nhân gốc rễ của vấn đề.
Cuối cùng, một câu hỏi mà nhiều anh em hay thắc mắc là làm sao để biết cron job của mình có chạy hay không. Thay vì phải tự chuyển hướng output ra file log, anh em có thể kiểm tra trực tiếp trong log hệ thống bằng lệnh journalctl | grep CRON
hoặc grep CRON /var/log/syslog
.
Nhìn lại, mình thấy đã lãng phí khá nhiều thời gian để xử lý các vấn đề một cách thủ công. Nếu biết những công cụ này sớm hơn, có lẽ mình đã tiết kiệm được không biết bao nhiêu giờ làm việc và những cơn đau đầu không đáng có. Đây không chỉ là những lệnh hay ho, mà chúng thật sự giúp tăng năng suất, đặc biệt là khi anh em phải quản lý nhiều máy chủ cùng lúc.
Mình có một thói quen là tự tạo một sổ tay cho riêng mình. Mỗi khi phát hiện ra một lệnh hay, một mẹo vặt nào đó, mình đều ghi lại. Cuộc đời sysadmin là một chặng đường dài, và bản thân tương lai của anh em sẽ cảm ơn vì điều đó.