LINUX(8)Sổ tay ITLINUX(8)

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ú ý: rm một file log đang được ghi không giải phóng dung lượng: tiến trình vẫn giữ nó. Dùng truncate, 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 hostnamectl
RHEL / Rocky hostnamectl
IP các card mạng
Ubuntu / Debian ip -br a
RHEL / Rocky ip -br a
Cập nhật · nâng cấp
Ubuntu / Debian sudo apt update && sudo apt upgrade
RHEL / Rocky sudo dnf upgrade
Cài · gỡ
Ubuntu / Debian sudo apt install <gói> · sudo apt remove <gói>
RHEL / Rocky sudo 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 / Rocky rpm -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

Xem thêm

mang(8), windows(8), switch(8), git(1), docker(1), terminal(1)