+2

Người mới cũng hiểu được! Hướng dẫn thực hành lệnh Linux cho Test Engineer

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!

Thao tác File và Thư mục: Nền tảng cơ bản

Lệnh xem file

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ền

Cơ 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ăng

Giám sát tài nguyên

Nhữ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ần

Quả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 process

Giá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 tin

Xử lý văn bản và Phân tích log

Ba 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 Service

Quản lý Process

Lệ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 foreground

Quả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-time

Cấ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 ARP

Xử 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 port

Nén và Sao lưu

Né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 log

Bảo mật hệ thống và Quản lý người dùng

Quả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ập

Giá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 SHA256

Kỹ thuật lệnh nâng cao

Kế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ành

Ví 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ặp

Liê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ăng

Liê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ố server

Bộ 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 Apidog và 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 Apidog với Linux log để kiểm tra chất lượng tổng thể

Script bảo trì hàng ngày

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 sức khỏe hệ thống" >> $LOG_FILE

Thực hành vận hành Linux kết hợp Apidog

Ví dụ thực hành 1: Giám sát API và phân tích log

Quy trình vận hành thực hiện giám sát API định kỳ bằng Apidog và phân tích log bằng lệnh Linux khi có bất thường.

Ví dụ thực hành 2: Test hiệu năng

Thực hiện load test bằng Apidog đồng thời giám sát tài nguyên hệ thống real-time bằng lệnh Linux.

Ví dụ thực hành 3: Môi trường test tự động

Kết hợp kết quả test của Apidog với system log của Linux để thực hiện đánh giá chất lượng tổng thể.

Tổng kết

Thành thạo những lệnh Linux này, bạn sẽ có được những kỹ năng sau với tư cách Test Engineer:

  1. Xác định vấn đề nhanh chóng: Tìm nguyên nhân khi xảy ra sự cố nhanh hơn rất nhiều
  2. Vận hành hiệu quả: Tăng năng suất thông qua tự động hóa công việc hàng ngày
  3. Bảo trì phòng ngừa: Ngăn chặn sự cố trước khi xảy ra thông qua giám sát hệ thống
  4. Quản lý an toàn: Vận hành hệ thống an toàn thông qua quản lý quyền phù hợp

Mẹo thực hành:

  • Thực hành bằng cách thao tác thực tế
  • Hiểu nguyên lý của lệnh
  • Học cách kết hợp nhiều lệnh
  • Luôn ý thức về bảo mật
  • Học hỏi liên tục các công cụ và công nghệ mới

Các bạn hãy thử những lệnh này trong thực tế. Và hãy chia sẻ những khám phá của mình qua comment nhé! Cùng nhau nâng cao kỹ năng Linux.


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí