Trong quản trị hệ thống Linux, việc quản lý tệp tin thông qua các thao tác đóng gói (archiving) và nén (compression) là kỹ năng thiết yếu để tối ưu hóa không gian lưu trữ và băng thông truyền tải dữ liệu. Nội dung dưới đây hướng dẫn chi tiết cách sử dụng các công cụ phổ biến như tar, gzip, bzip2 và zip trên môi trường RHEL 8.
1. Đóng gói tệp tin với lệnh tar
Đóng gói là quá trình gộp nhiều tệp tin hoặc thư mục vào một tệp duy nhất để dễ dàng quản lý. Công cụ phổ biến nhất là tar (Tape Archive).
Cú pháp cơ bản của lệnh tar:
c: Tạo tệp lưu trữ mới (create).v: Hiển thị chi tiết quá trình thực hiện (verbose).f: Chỉ định tên tệp lưu trữ (file).
Ví dụ, để đóng gói các tệp config.txt, data.log và script.sh vào một tệp có tên backup.tar:
[root@rhel8-server ~]# tar -cf backup.tar config.txt data.log script.sh
Lưu ý rằng lệnh tar mặc định chỉ đóng gói chứ không nén dữ liệu. Bạn có thể kiểm tra dung lượng để thấy tệp .tar thường lớn hơn hoặc bằng tổng dung lượng các tệp nguồn. Nếu muốn xóa các tệp gốc ngay sau khi đóng gói thành công, hãy sử dụng tùy chọn --remove-files:
[root@rhel8-server ~]# tar -cf backup.tar config.txt data.log --remove-files
Để xem danh sách các thành phần bên trong một tệp tar mà không cần xả nén, sử dụng tùy chọn -t:
[root@rhel8-server ~]# tar -tf backup.tar config.txt data.log
Để giải nén (xả gói) tệp tar, sử dụng tùy chọn -x. Để giải nén vào một thư mục cụ thể, sử dụng thêm -C:
[root@rhel8-server ~]# tar -xf backup.tar -C /tmp/restore_folder/
2. Kỹ thuật nén dữ liệu
Nén dữ liệu giúp giảm dung lượng tệp tin bằng các thuật toán toán học. Có hai công cụ dòng lệnh phổ biến là gzip và bzip2.
Trước tiên, tạo một tệp dữ liệu mẫu dung lượng 100MB để thử nghiệm:
[root@rhel8-server ~]# dd if=/dev/zero of=test_data bs=1M count=100
Sử dụng Gzip
Gzip cung cấp tốc độ nén nhanh và hiệu quả trung bình.
- Nén:
gzip test_data(tạo ra tệptest_data.gz). - Giải nén:
gzip -d test_data.gz.
Kết hợp tar và gzip bằng tùy chọn -z:
[root@rhel8-server ~]# tar -zcf logs_archive.tar.gz /var/log/*.log
Sử dụng Bzip2
Bzip2 thường cho tỷ lệ nén tốt hơn Gzip nhưng tốn nhiều thời gian và CPU hơn.
- Nén:
bzip2 test_data(tạo ra tệptest_data.bz2). - Giải nén:
bzip2 -d test_data.bz2.
Kết hợp tar và bzip2 bằng tùy chọn -j:
[root@rhel8-server ~]# tar -jcf source_code.tar.bz2 ./src_project
3. Sử dụng công cụ Zip
Định dạng Zip rất phổ biến vì tính tương thích cao giữa Linux và Windows. Khác với tar, zip thực hiện cả đóng gói và nén trong cùng một thao tác.
Để nén một thư mục bao gồm cả các thư mục con, sử dụng tùy chọn -r (recursive):
[root@rhel8-server ~]# zip -r workspace_backup.zip /home/user/workspace
Để giải nén tệp zip, sử dụng lệnh unzip:
[root@rhel8-server ~]# unzip workspace_backup.zip -d /target/directory/
Việc lựa chọn công cụ phụ thuộc vào mục đích sử dụng: gzip cho tốc độ, bzip2 cho dung lượng tối ưu, và zip cho khả năng trao đổi dữ liệu đa nền tảng.