Cách nén file zip bằng lệnh SSH

Cách nén một thư mục thành file zip bằng câu lệnh ssh cực đơn giản. Zip một folder trên VPS qua lệnh SSH như thế nào

Nén một thư mục bất kỳ thành file .ZIP

zip -r filename.zip thu_muc/

Trong đó

  1. filename.zip là tên file zip sau khi nén
  2. thu_muc là tên folder cần nén

Nén tất cả các file trong thư mục hiện tại

zip -r ten_file.zip .

Loại trừ 1 hoạc nhiều thư mục và file trong đó khi nén

zip -r filename.zip . -x folder1/\* -x folder2/\* -x folder3/\*

Nếu bạn đang quản trị VPS, thì mình đã có bài tổng hợp các lệnh thường dùng trong linux . Hãy tham khảo nha!

Các loại trừ khác: File, extendtion, name

exclude all files beginning with a dot

do it like: (.htaccess…)

-x .\*

Loại trừ những file có dấu chấm (.) trong tên

do it like:

-x \*.\*

exclude all zip-Files

do it like:

-x \*.zip

Nén Những File Mới / Cũ Hơn Ngày Nào Đó

Cách chỉ nén (zip) những file mới được chỉnh sửa (upload, modify) . Hay những file đã được upload trước một ngày cụ thể thì dùng lệnh sau:

find /duong-dan-patch/folder -type f -mtime -15 | zip -@ 15ngay-gan-nhat.zip

Diễn giải chút

Lệnh trên sẽ tìm (find) ra những file được chỉnh sửa trong vòng 15 ngày gần nhất (-mtime -15) và nén chúng lại. Nếu bạn muốn Chỉ nén file cũ hơn 1 tuần trước (7 ngày từ ngày hôm nay) thì dùng option: -mtime +7 .

Tất nhiên bạn có thể kết hợp cả hai như sau:

find /duong-dan-patch/folder -type f -mtime -10 - mtime +7 | zip -@ 2ngay-cach-hom-nay-7-ngay.zip

VD, hôm nay là 24/4/2021, thì lệnh trên sẽ nén các file được sửa/up vào các ngày: 16 và 17/4/2021. Các ngày cũ hơn và mới hơn đều không được nén.

Các bạn sẽ thấy lệnh Zip có điều kiện thời gian này rất hữu ích để backup website có lượng dữ liệu lớn. Chẳng hạn ảnh upload lên rất nhiều theo ngày tháng mà không thể backup cả website được. Chúng ta sẽ chỉ backup những ảnh mới được upload lên mà thôi, tiết kiệm tài nguyên, dung lượng và thời gian.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *


The reCAPTCHA verification period has expired. Please reload the page.