Quản lý hệ thống Linux nâng cao với cách dòng lệnh đơn giản
Với 3 năm kinh nghiệm phát triển, tôi sẽ chia sẻ những lệnh Linux mà tôi hối tiếc "giá như biết sớm hơn" từ thời mới vào nghề! Khi mới vào công ty, mỗi khi sếp bảo "kiểm tra log", tôi không biết dùng lệnh nào và phải Google mãi. Từ những trải nghiệm đó, tôi đã tuyển chọn những lệnh Linux thực sự hữu ích trong công việc thực tế. Đọc bài viết này, bạn sẽ nắm được từ xử lý sự cố đến phân tích hiệu năng, tất cả kỹ năng Linux cần thiết cho một Test Engineer!
2025-09-19 07:07:37 - Vũ Duy Lực
Bắt đầu từ những điều cơ bản nhất. Kiểm tra log file là công việc hàng ngày!
cat /etc/passwd # Hiển thị toàn bộ nội dung file more /var/log/messages # Hiển thị file lớn theo từng trang less /var/log/syslog # Có thể cuộn lên xuống, tìm kiếm head -20 /var/log/nginx.log # Hiển thị 20 dòng đầu tail -f /var/log/apache.log # Theo dõi log real-time
Mẹo chuyên nghiệp: more chỉ có thể di chuyển về phía trước, less có thể cuộn hai chiều và có chức năng tìm kiếm (/từ_khóa). Sử dụng ít bộ nhớ hơn nên với file lớn nên dùng less!
Lệnh tìm kiếm file"File đó ở đâu nhỉ?" - Những lệnh này sẽ phát huy sức mạnh trong tình huống đó.
find /var/log -name "*.log" -mtime -7 # File log được sửa trong 7 ngày
find /home -type f -size +100M # File lớn hơn 100MB
find /etc -name "*.conf" -exec grep -l "port" {} \; # File config chứa "port"
updatedb # Cập nhật database locate
locate nginx.conf # Tìm kiếm file nhanh
which python3 # Hiển thị đường dẫn lệnh
whereis nginx # Vị trí binary, source, manual
Quản lý quyềnCơ bản của bảo mật! Cài đặt quyền sai có thể gây ra vấn đề lớn.
ls -la /etc/passwd # Hiển thị thông tin quyền chi tiết chmod 755 /usr/local/bin/script.sh # Đặt quyền rwxr-xr-x chmod u+x,g+r,o-w filename # Thay đổi quyền bằng symbol mode chown nginx:nginx /var/www/html # Thay đổi owner và group chgrp www-data /var/log/nginx/ # Thay đổi group ownership chmod +t /tmp # Đặt sticky bit chmod +s /usr/bin/passwd # Đặt SUID
Điểm quan trọng: Quản lý quyền là nền tảng bảo mật Linux. Hãy thành thạo cách sử dụng chmod/chown/chgrp!
Giám sát hệ thống và Phân tích hiệu năngGiám sát tài nguyênNhững lệnh cần thiết để kiểm tra tình trạng hệ thống.
top # Tình trạng hệ thống real-time htop # Giao diện đẹp hơn của top ps aux | grep nginx # Kiểm tra process cụ thể ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head -10 # Ranking sử dụng CPU free -h # Tình trạng sử dụng memory cat /proc/meminfo # Thông tin memory chi tiết vmstat 1 5 # Hiển thị tình trạng hệ thống mỗi 1 giây, 5 lầnQuản lý dung lượng đĩa
Cách xử lý khi nhận cảnh báo "Dung lượng đĩa không đủ"!
df -h # Kiểm tra tỷ lệ sử dụng đĩa du -sh /var/log/* # Kiểm tra kích thước thư mục du -ah /home | sort -rh | head -20 # TOP20 file/thư mục lớn nhất iostat -x 1 # Thống kê I/O đĩa mỗi 1 giây iotop # Sử dụng I/O theo processGiám sát mạng
Những lệnh cần thiết để giải quyết vấn đề kết nối.
netstat -tulpn # Tình trạng giám sát port ss -tulpn # Thay thế nhanh hơn cho netstat lsof -i :80 # Process đang sử dụng port 80 iftop # Giám sát lưu lượng real-time nethogs # Sử dụng mạng theo process tcpdump -i eth0 port 80 # Bắt gói tinXử lý văn bản và Phân tích logBa công cụ xử lý văn bản
Công cụ cơ bản để phân tích log. Không biết thì không xứng đáng làm Test Engineer!
grep -r "error" /var/log/ # Tìm kiếm error log đệ quy
sed 's/old/new/g' file.txt # Thay thế văn bản
awk '{print $1}' /var/log/nginx/access.log # Trích xuất cột 1
Phân tích log thực tếNhững one-liner thực dụng thường dùng trong công việc.
awk '{print $1}' access.log | sort | uniq -c | sort -nr | head -10 # TOP10 IP có nhiều truy cập nhất
awk '$9 == 404 {print $0}' access.log | wc -l # Số lượng lỗi 404
Mẹo thực tế: Kỹ năng phân tích log ảnh hưởng trực tiếp đến hiệu quả xử lý sự cố. Hãy thành thạo kết hợp grep/sed/awk!
Quản lý Process và Điều khiển ServiceQuản lý ProcessLệnh cần thiết khi muốn dừng process đang chạy bất thường!
kill -9 PID # Buộc dừng process killall nginx # Dừng process theo tên pkill -f "python script" # Dừng process theo pattern matching pgrep -f nginx # Tìm kiếm process ID nohup command & # Chạy ở background jobs # Danh sách job bg %1 # Đưa job vào background fg %1 # Đưa job ra foregroundQuản lý service systemd
Phương pháp quản lý service tiêu chuẩn của Linux hiện đại.
systemctl start nginx # Khởi động service systemctl stop nginx # Dừng service systemctl restart nginx # Khởi động lại service systemctl reload nginx # Đọc lại cấu hình systemctl enable nginx # Kích hoạt tự động khởi động systemctl disable nginx # Vô hiệu hóa tự động khởi động systemctl status nginx # Kiểm tra trạng thái service journalctl -u nginx # Kiểm tra log service journalctl -f -u nginx # Giám sát log real-timeCấu hình mạng và Xử lý sự cốCấu hình mạng
Cách kiểm tra thông tin mạng.
ip addr show # Thông tin địa chỉ IP ip route show # Thông tin routing ip link show # Thông tin network interface ifconfig eth0 # Kiểm tra cấu hình mạng truyền thống route -n # Bảng routing arp -a # Bảng ARPXử lý sự cố mạng
Lệnh cơ bản để giải quyết vấn đề kết nối.
ping -c 4 google.com # Kiểm tra kết nối (4 lần) traceroute google.com # Kiểm tra đường đi mtr google.com # Kiểm tra đường đi liên tục telnet 192.168.1.1 80 # Kiểm tra kết nối port nc -zv 192.168.1.1 80 # Quét portNén và Sao lưuNén file
Kỹ năng cần thiết cho việc sao lưu và truyền dữ liệu.
tar -czf backup.tar.gz /var/www/ # Tạo archive với nén gzip tar -xzf backup.tar.gz # Giải nén archive tar -tzf backup.tar.gz # Xem nội dung archive tar -czf backup-$(date +%Y%m%d).tar.gz /etc/ # Sao lưu có ngày tháng zip -r backup.zip /var/www/ # Nén định dạng ZIP unzip backup.zip # Giải nén ZIP gzip file.txt # Nén file đơn gunzip file.txt.gz # Giải nén fileĐồng bộ dữ liệu
Lệnh rsync tiện lợi để đồng bộ dữ liệu với server từ xa.
rsync -avz /var/www/ user@remote:/backup/ # Đồng bộ từ xa rsync -avz --delete /var/www/ /backup/ # Đồng bộ cả việc xóa rsync -avz --exclude='*.log' /var/www/ /backup/ # Loại trừ file logBảo mật hệ thống và Quản lý người dùngQuản lý người dùng
Thao tác cơ bản mà quản trị viên hệ thống cần biết.
useradd -m -s /bin/bash username # Tạo người dùng usermod -aG sudo username # Thêm vào nhóm sudo passwd username # Đặt mật khẩu userdel -r username # Xóa người dùng (cả home directory) id username # Kiểm tra thông tin người dùng who # Kiểm tra người dùng đang đăng nhập w # Thông tin chi tiết người dùng đăng nhập last # Lịch sử đăng nhậpGiám sát bảo mật
Lệnh để phát hiện truy cập bất hợp pháp.
tail -f /var/log/auth.log # Giám sát log xác thực real-time grep "Failed password" /var/log/auth.log # Log mật khẩu sai grep "sudo" /var/log/auth.log # Log sử dụng sudo md5sum file.txt # Tính giá trị hash MD5 sha256sum file.txt # Tính giá trị hash SHA256Kỹ thuật lệnh nâng caoKết hợp lệnh và Pipeline
Những one-liner thực dụng kết hợp nhiều lệnh.
# Dừng tất cả process nginx
ps aux | grep nginx | grep -v grep | awk '{print $2}' | xargs kill -9
# TOP10 địa chỉ IP từ access log của GET request
cat /var/log/nginx/access.log | grep "GET" | awk '{print $1}' | sort | uniq -c | sort -nr | head -10
# Thông tin chi tiết của file log chứa error
find /var/log -name "*.log" -exec grep -l "error" {} \; | xargs ls -la
Script tự động hóa vận hànhVí dụ shell script để tăng hiệu quả công việc hàng ngày.
#!/bin/bash echo "=== Thông tin hệ thống ===" > system_info.txt uname -a >> system_info.txt free -h >> system_info.txt df -h >> system_info.txt ip addr show >> system_info.txtĐối phó với câu hỏi phỏng vấn thường gặpLiên quan đến điều tra hiệu năng
Những lệnh thường xuất hiện trong phỏng vấn kỹ thuật.
uptime # Thời gian hoạt động và tải hệ thống cat /proc/loadavg # Giá trị tải trung bình top -p PID # Giám sát process cụ thể strace -p PID # Theo dõi system call perf top # Phân tích hiệu năngLiên quan đến quản lý storage
Thường được hỏi về cách xử lý vấn đề dung lượng.
du -ah /var | sort -rh | head -20 # TOP20 sử dụng dung lượng
find /var -type f -size +100M -exec ls -lh {} \; # Tìm file lớn hơn 100MB
df -h # Tỷ lệ sử dụng đĩa
inotifywait -m /var/log/ # Giám sát thay đổi file
Luyện tập kịch bản thực tếQuy trình xử lý sự cố serverBộ lệnh ứng phó ban đầu khi xảy ra sự cố.
uptime && free -h && df -h # Kiểm tra thông tin cơ bản hệ thống ps aux | head -20 # Kiểm tra tình trạng process top -n 1 | head -20 # Tình trạng sử dụng CPU/memory netstat -tulpn | grep LISTEN # Kiểm tra port đang chờ ss -tulpn # Kiểm tra port nhanh hơn tail -50 /var/log/messages # Kiểm tra system log journalctl -xe # Kiểm tra systemd log
Kịch bản sử dụng Apidog:
- Xử lý sự cố: Kiểm tra phản hồi API bằng Apidog và đối chiếu với server log
- Test hiệu năng: Gửi request bằng Apidogvà giám sát sử dụng tài nguyên bằng lệnh Linux
- Test tự động: Kết hợp kết quả test Apidogvới Linux log để kiểm tra chất lượng tổng thể
Ví dụ script health check chạy định kỳ.
#!/bin/bash
LOG_FILE="/var/log/health_check.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo "[$DATE] Bắt đầu kiểm tra sức khỏe hệ thống" >> $LOG_FILE
# Kiểm tra tỷ lệ sử dụng đĩa
DISK_USAGE=$(df -h | grep -E "8[0-9]%|9[0-9]%|100%")
[ ! -z "$DISK_USAGE" ] && echo "[$DATE] Cảnh báo: Tỷ lệ sử dụng đĩa cao" >> $LOG_FILE
# Kiểm tra tỷ lệ sử dụng memory
MEM_USAGE=$(free | grep Mem | awk '{print ($3/$2) * 100.0}')
(( $(echo "$MEM_USAGE > 90" | bc -l) )) && echo "[$DATE] Cảnh báo: Tỷ lệ sử dụng memory cao: $MEM_USAGE%" >> $LOG_FILE
# Kiểm tra tải hệ thống
LOAD_AVG=$(uptime | awk -F'load average:' '{print $2}' | cut -d, -f1 | tr -d ' ')
(( $(echo "$LOAD_AVG > 2.0" | bc -l) )) && echo "[$DATE] Cảnh báo: Tải hệ thống cao: $LOAD_AVG" >> $LOG_FILE
echo "[$DATE] Hoàn thành kiểm tra "chúc các bạn thành công!
Nguồn: Viblo.asi