Issue:
– Có thời điểm server bị full dung lượng dẫn đến một số tính năng không chạy được nữa. Lúc đó chúng ta cần tìm danh sách những file & thư mục làm đầy dung lượng server để lựa chọn phương án xóa/giữ phù hợp.
– Hiện tượng: /dev/vda1 100% => server dừng hoạt động & không thể cài tool như NCDU để tìm file gây full server.
Solution:
Workflow xử lý: Check dung lượng của các folder ở root (df) => vào folder bị full & check top 10 files lớn nhất (da) => tiép tuc vào các folder con.
1. Xem dung lượng free của VPS:
sử dụng lệnh df:
df -h: hiển thị dung lượng & dung lượng đã sử dụng của VPS (h: human readable)
pwd: hiển thị vị trị hiện tại
2. Tìm file & thư mục lớn nhất trong Linux:
Tìm 5 thư mục lớn nhất trong thư mục hiện tại: du -h | sort -n -r | head -n 5
Tìm 5 file lớn nhất trong thư mục “home”: du -h /usr | sort -n -r | head -n 5
* Note: Để tìm nguyên nhân gây ra 100% (nếu kết quả: dev/vda1 100% => cần sử dụng du -h xem từng thư mục)
Tìm 40 file lớn nhất: find / -type f -size +10000k -exec ls -lh {} \; | awk '{print $5 ": " $9}' | sort -nr | head -n 40
Với cú pháp cụ thể như sau:
du
: lệnh xem dung lượng file
a
: hiển thị tất cả file và folder
sort
: sắp xếp
-n
: so sánh dựa trên giá trị số học
-r
: duy trì trật tự sắp xếp kết quả
head
: đưa ra kết quả phần đầu của file
-n
: hiển thị n dòng đầu tiên
3. Xóa các file không cần thiết:
Để xóa hàng loạt file, ta có thể sử dụng câu lệnh rm kết hợp với regular expression như sau:
rm *.pdf
với * có thể thay thế cho cụm từ lặp đi lặp lại trong file backup unecessary (nguyên nhân hay gây ra lỗi full disk space)
Đối với log file của Nginx, có thể xóa file log: access.log, error.log. Sau khi xóa các file log này, system chỉ tạo lại các file này (empty) sau khi được khởi động lại.
=> Xem thêm: Quản lý Log file
Chú ý:
+ Với dlemp, có thể vào menu 26) tools => 8) low disk space warning, để xem free disk space.
4. Cài NCDU để theo dõi disk usage:
+ to install:
sudo yum install ncdu
+ to start NCDU: “NCDU”
If no option specified, NCDU hiển thị các folder trong folder hiện tại
Có thể sử dụng các option sau:
ncdu /etc/ => hiển thị dung lượng thư mục etc
+ Scan full file system:
sudo ncdu -x /
+ to exit NCDU: press “q”
Ref: https://www.cyberciti.biz/open-source/install-ncdu-on-linux-unix-ncurses-disk-usage/?utm_source=Linux_Unix_Command&utm_medium=faq&utm_campaign=nixcmd
5. Sửa lỗi “permission denied (server offers publickey)” khi login SSH:
– sửa file “sshd_config” tại /etc/ssh/:
nano /etc/ssh/sshd_config
+ Chuyển “PasswordAuthentication no” => “PasswordAuthentication yes”.
+ Chuyển “ChallengeResponseAuthentication yes” => “ChallengeResponseAuthentication no”
(nhớ bỏ dấu # ở – nếu có)
Sau đó restart sshd: sudo systemctl restart sshd