Tên
linux(8) — tình trạng server, dịch vụ, log, ổ đĩa, SSH, firewall
Mục lục
Gặp vấn đề · Tình trạng máy trong 60 giây · Tiến trình · Dịch vụ & log · Ổ đĩa · SSH & chép file · Firewall (ufw) · Người dùng & quyền · Thông tin & phần mềm · Lịch chạy (cron) · Nguồn
Mô tả
Lệnh quản trị server Linux dùng hằng ngày. Thử trên Ubuntu 26.04.
Gặp vấn đề
- Server chậm
uptime·top- Ổ đầy
df -h && df -i- Xoá file rồi mà ổ không trống ra
sudo lsof +L1- Dịch vụ không chạy
systemctl status <dịch-vụ>- Máy vừa tự khởi động lại
journalctl -b -1 -p err- Không kết nối được vào cổng của server
sudo ss -tulpn·sudo ufw status
Tình trạng máy trong 60 giây
Thứ tự của Brendan Gregg (Netflix) khi vừa SSH vào server có vấn đề. Lệnh có dấu * nằm trong gói sysstat.
- Tải đang tăng hay giảm (1, 5, 15 phút)
uptime- Kernel có báo lỗi (hết RAM, lỗi ổ)
sudo dmesg -T | tail- CPU bận, chờ ổ (
wa), thiếu RAM (si/so) vmstat 1- Tiến trình nào ăn CPU *
pidstat 1- Ổ đĩa có quá tải (
%util,await) * iostat -xz 1- RAM thực sự còn (cột
available) free -h- Card mạng có chạm trần *
sar -n DEV 1
Tiến trình
- Tốn RAM nhất · tốn CPU nhất
ps aux --sort=-%mem | head·ps aux --sort=-%cpu | head- Tìm theo tên
pgrep -fl <tên>- Dừng · dừng cưỡng bức
kill <PID>·kill -9 <PID>- Tiến trình nào giữ cổng
sudo ss -tulpn | grep :<cổng>- Kết nối đang mở tới server
sudo ss -tnp state established
Dịch vụ & log
- Trạng thái + log gần nhất
systemctl status <dịch-vụ>- Khởi động lại · nạp lại cấu hình
sudo systemctl restart <dịch-vụ>·sudo systemctl reload <dịch-vụ>- Chạy ngay và tự chạy khi bật máy
sudo systemctl enable --now <dịch-vụ>- Dịch vụ đang lỗi
systemctl --failed- Theo dõi log trực tiếp
journalctl -u <dịch-vụ> -f- Log 1 giờ qua
journalctl -u <dịch-vụ> --since "1 hour ago"- Chỉ lỗi, từ lần khởi động này
journalctl -p err -b- Dọn log, giữ 7 ngày
sudo journalctl --vacuum-time=7d
Kiểm tra cấu hình trước khi restart, ví dụ sudo nginx -t.
Ổ đĩa
- Đầy dung lượng hay đầy số file (inode)
df -h && df -i- Thư mục nặng nhất
sudo du -xh --max-depth=1 / | sort -rh | head- File đã xoá nhưng vẫn bị giữ
sudo lsof +L1- Làm rỗng log đang ghi (thay vì
rm) sudo truncate -s 0 <file>.log- Các ổ, phân vùng
lsblk -f
Chú ý:
rmmột file log đang được ghi không giải phóng dung lượng: tiến trình vẫn giữ nó. Dùngtruncate, hoặc restart tiến trình đó.
SSH & chép file
- Tạo khoá (một lần)
ssh-keygen -t ed25519- Đăng nhập bằng khoá từ nay
ssh-copy-id <user>@<ip>- Chép, chỉ chép phần thay đổi
rsync -avz --progress <thư-mục>/ <user>@<ip>:<đích>/- Chép nhanh một file
scp <file> <user>@<ip>:/tmp/
rsync: src/ chép phần bên trong, src chép cả thư mục. Lưu server trong ~/.ssh/config để chỉ cần ssh web1:
Host web1
HostName 192.168.10.20
User minh
Firewall (ufw)
- Mở SSH (làm trước khi bật)
sudo ufw allow 22/tcp- Chỉ cho một dải IP vào cổng
sudo ufw allow from 192.168.10.0/24 to any port 5432- Bật · xem luật kèm số
sudo ufw enable·sudo ufw status numbered- Xoá luật số 3
sudo ufw delete 3
Người dùng & quyền
- Tạo người dùng · cho dùng sudo
sudo adduser <tên>·sudo usermod -aG sudo <tên>- Thuộc nhóm nào · được sudo gì
id <tên>·sudo -l- Đổi chủ · đổi quyền
sudo chown <user>:<nhóm> <file>·chmod 640 <file>
Quyền dạng số: đọc 4 + ghi 2 + chạy 1, lần lượt cho chủ · nhóm · người khác. 640 = chủ đọc ghi, nhóm đọc, người khác không.
Thông tin & phần mềm
- Tên máy, hệ điều hành, kernel
- Ubuntu / Debian
hostnamectlRHEL / Rockyhostnamectl - IP các card mạng
- Ubuntu / Debian
ip -br aRHEL / Rockyip -br a - Cập nhật · nâng cấp
- Ubuntu / Debian
sudo apt update && sudo apt upgradeRHEL / Rockysudo dnf upgrade - Cài · gỡ
- Ubuntu / Debian
sudo apt install <gói>·sudo apt remove <gói>RHEL / Rockysudo dnf install <gói>·sudo dnf remove <gói> - Lệnh này thuộc gói nào
- Ubuntu / Debian
dpkg -S $(command -v <lệnh>)RHEL / Rockyrpm -qf $(command -v <lệnh>)
Lịch chạy (cron)
# phút giờ ngày tháng thứ lệnh (sửa: crontab -e)
0 2 * * * /opt/scripts/backup.sh # 2:00 mỗi ngày
*/15 * * * 1-5 /opt/scripts/check.sh # 15 phút một lần, thứ 2–6
Cron có rất ít biến môi trường: luôn dùng đường dẫn tuyệt đối.
Nguồn
- Brendan Gregg, Netflix — Linux Performance Analysis in 60,000 Milliseconds
- systemctl(1) · journalctl(1) · lsof(8) · ss(8) · crontab(5)
- Canonical — Ubuntu Server documentation · UFW
Xem thêm
mang(8), windows(8), switch(8), git(1), docker(1), terminal(1)