[cPanel] Hướng dẫn tăng dung lượng phân vùng /tmp (/usr/tmpDSK) trên cPanel/WHM

Nếu bạn để ý trên những hệ thống cPanel/WHM thì sẽ nhận thấy đôi khi hệ điều hành được quản trị viên cấu hình để tách riêng thư mục /tmp thành 1 phân vùng riêng để set các đặc đính không được SUID, GUID, noexec,.. trên phân vùng đó vì mục đích an toàn. Việc tách riêng này thường được thực hiện bằng script của cPanel cung cấp hỗ trợ với filesystem có tên “/usr/tmpDSK“. Như ở phía dưới ví dụ lệnh show ra ta sẽ thấy phân vùng /tmp là 512MB.

# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_cpanel-lv_root
35G 11G 23G 33% /
tmpfs 939M 96K 939M 1% /dev/shm
/dev/vda1 477M 65M 387M 15% /boot
/usr/tmpDSK 512M 41M 512M 9% /tmp

 
Nhưng mà nếu để mặc định cPanel thiết lập thì dung lượng đôi khi khá thấp, như mặc định là 512 MB nên rất bất tiện trong 1 số trường hợp hệ thống dịch vụ sử dụng thư mục /tmp để hoạt động (ví dụ PHP Session, PHP upload temp, MySQL temp file,…) thì bị đầy mất rồi và không thể sử dụng khoảng trống để hoạt động file tạm được nữa. Thật sự việc thiếu dung lượng trống thư mục tạm /tmp là một vấn đề khá lớn đối với các hệ thống web server lớn do các dịch vụ khởi tạo file tạm làm đầy rất nhanh. Lúc này ta sẽ muốn tăng dung lượng phân vùng này lên và … tin tốt là điều đó làm khá dễ dàng.

Các bạn sẽ làm theo các bước sau, các hướng dẫn thực hiện trên giao diện terminal SSH command-line phía backend hệ thống nhé :

1. Dừng các hoạt động dịch vụ liên quan

– Bao gồm các dịch vụ phổ biến như Apache, Nginx, MySQL, cPanel.. nhằm ngăn cho các dịch vụ này ghi/tạo file trong thư mục /tmp ở thời điểm ta cần thay đổi mức dung lượng của nó.

# /etc/init.d/cpanel stop
# /etc/init.d/httpd stop
# /etc/init.d/mysql stop


2. Đổi tên backup lại thư mục /tmp

– Giờ chúng ta sẽ đổi tên thư mục /tmp thành cái tên khác nhằm backup lại nội dung đang có trong thư mục này.

# cp -rfp /tmp /tmp.bak

 
3. Umount phân vùng /tmp

– Ta sẽ tách phân vùng /tmp ra khỏi hệ thống.

# umount /tmp

 
– Kiểm tra lại xem còn phân vùng /tmp không.

# df -h | grep "/tmp"

 
– Nếu bạn gặp báo lỗi không thể umount được phân vùng này thì bạn chạy lên sau kiểm tra xem tiến trình nào đang thực hiện hoạt động đọc ghi lên phân vùng /tmp và dừng tiến trình đó lại.

# lsof | grep "/tmp"
# kill -9 <pid>

 
– Nếu vẫn chưa được thì bạn tách nóng phân vùng này bằng option “-l” của lệnh umount luôn.

# umount -l /tmp

 
– Xoá file system /usr/tmpDSK .

# rm -rf /usr/tmpDSK

 
4. Thực hiện thay khởi tạo lại phân vùng /tmp

– Lúc này ta sẽ chạy lại script khởi tạo phân vùng /tmp với mức giá trị dung lượng cho phép theo ý muốn của bản thân.
– Hãy mở file script /scripts/securetmp và tìm dòng có biến giá trị “$tmpdsksize” và thay đổi thành giá trị mà mình mong muốn. – Script này của cPanel sẽ khởi tạo phân vùng /tmp (tmpDSK) với giá trị dung lượng phân vùng mà bạn đã chỉ định trong script.
– Đơn vị sử dụng là KB nên lưu ý phần set số cho phù hợp và mặc định phải lớn hơn 256MB (250000). Ví dụ mình sẽ đặt giá trị “$tmpdsksize” bằng 4GB .

# vi /scripts/securetmp
my $tmpdsksize = 4096000; # Must be larger than 250000

 
– Sau đó bạn save lại nội dung script và chạy script để khởi tạo lại phân vùng /tmp với các đặc tính an toàn hệ thống được set cho phân vùng này.

# /scripts/securetmp
...
...
Would you like to secure /tmp & /var/tmp at boot time? (y/n) y
Would you like to secure /tmp & /var/tmp now? (y/n) y
Securing /tmp & /var/tmp
Calculating size on /tmp
/tmp calculated to be 4000 M based on available disk space in /usr
No separate partition for tmp!
Building /usr/tmpDSK...4096000+0 records in
...
...
Done
Setting up /tmp... Done
/var/tmp is already secure
Checking fstab for entries ...Added fstab entry (/var/tmp)....Done
Logrotate TMPDIR already configured
Process Complete

 
– Kiểm tra lại xem phân vùng /tmp đã được tạo đúng chưa.

# df -h | grep "/tmp"
/usr/tmpDSK 3.9G 72M 3.6G 2% /tmp

 
5. Khởi động lại các dịch vụ đã dừng và các hoạt động khác

# /etc/init.d/cpanel start
# /etc/init.d/httpd start
# /etc/init.d/mysql start

 
– Chuyển dữ liệu phân vùng /tmp.bak cũ sang phân vùng /tmp mới. Rồi xoá /tmp.bak đi.

# cp -rp /tmp.bak/* /tmp/
# rm -rf /tmp.bak/

 
Vậy là xong rồi. Cám ơn các bạn đã theo bài viết và chúc các bạn thành công.

Previous article[MailServer] Vai trò của hoạt động Reverse DNS (record PTR) với độ tín nhiệm gửi nhận email
Next article[WordPress] Hướng dẫn giấu thông tin phiên bản version WordPress
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !