Lệnh tar của Linux là con dao đa năng của quản trị viên Linux khi lưu trữ hoặc phân phối tệp. Các kho lưu trữ Gnu Tar có thể chứa nhiều tệp và thư mục, quyền tệp có thể được bảo toàn và hỗ trợ nhiều định dạng nén. Tên tar là viết tắt của "Tape Archiver", định dạng này là chuẩn POSIX chính thức.
Lệnh này tạo kho lưu trữ myarchive.tar.gzchứa các tệp và thư mục từ đường dẫn/home/till/mydocuments. Giải thích các tùy chọn dòng lệnh:
Lệnh này phải được chạy dưới dạng root để đảm bảo rằng tất cả các tệp trong /etc đều được bao gồm trong bản sao lưu. Lần này, tôi đã thêm tùy chọn [v] vào lệnh. Tùy chọn này có nghĩa là verbose, nó yêu cầu tar hiển thị tất cả các tên tệp được thêm vào kho lưu trữ. Ví dụ 2: Sao lưu thư mục /home của bạn Tạo bản sao lưu của thư mục home của bạn. Bản sao lưu sẽ được lưu trữ trong thư mục /backup.
Thay thế myuser bằng tên người dùng của bạn. Trong lệnh này, tôi đã bỏ qua công tắc [p], vì vậy các quyền không được bảo toàn. Ví dụ 3: Bản sao lưu dựa trên tệp của cơ sở dữ liệu MySQL Cơ sở dữ liệu MySQL được lưu trữ trong /var/lib/mysql trên hầu hết các bản phân phối Linux. Bạn có thể kiểm tra điều đó bằng lệnh:
Dừng máy chủ cơ sở dữ liệu để có bản sao lưu tệp MySQL nhất quán với tar. Bản sao lưu sẽ được ghi vào thư mục /backup. 1) Tạo thư mục sao lưu
2) Dừng MySQL, chạy bản sao lưu bằng tar và khởi động lại máy chủ cơ sở dữ liệu.
Tùy chọn [v] có nghĩa là verbose, nó sẽ hiển thị tên tệp trong khi chúng được giải nén.
Định dạng Tarfile
Giới thiệu ngắn gọn về các mức nén tar.- Không nén Các tệp không nén có phần mở rộng tệp là .tar.
- Nén GzipĐịnh dạng Gzip là định dạng nén được sử dụng rộng rãi nhất cho tar, định dạng này nhanh để tạo và giải nén tệp. Các tệp có nén gz thường có phần mở rộng tệp là .tar.gz hoặc .tgz. Dưới đây, bạn sẽ tìm thấy một số ví dụ về cách tạo và giải nén tệp tar.gz.
- Nén Bzip2 Định dạng Bzip2 cung cấp khả năng nén tốt hơn định dạng Gzip. Tạo tệp chậm hơn, phần mở rộng tệp thường là .tar.bz2.
- Nén Lzip (LZMA) Nén Lzip kết hợp tốc độ của Gzip với mức độ nén tương tự như Bzip2 (hoặc thậm chí tốt hơn). Không phụ thuộc vào các thuộc tính tốt này, định dạng này không được sử dụng rộng rãi.
- Nén Lzop Tùy chọn nén này có lẽ là định dạng nén nhanh nhất cho tar, nó có mức độ nén tương tự như gzip và không được sử dụng rộng rãi.
Lệnh tar được sử dụng để làm gì?
Sau đây là một số trường hợp sử dụng phổ biến của lệnh tar.- Sao lưu Máy chủ và Máy tính để bàn.
- Lưu trữ tài liệu.
- Phân phối phần mềm.
Cài đặt tar
Theo mặc định, lệnh này được cài đặt trên hầu hết các hệ thống Linux. Sau đây là hướng dẫn cài đặt tar trong trường hợp lệnh bị thiếu.CentOS
Thực hiện lệnh sau với tư cách là người dùng root trên shell để cài đặt tar trên CentOS.
Mã:
yum install tar
Ubuntu
Lệnh này sẽ cài đặt tar trên Ubuntu. Lệnh "sudo" đảm bảo lệnh apt được chạy với quyền root.
Mã:
sudo apt-get install tar
Debian
Lệnh apt sau đây cài đặt tar trên Debian.
Mã:
apt-get install tar
Windows
Lệnh tar cũng khả dụng cho Windows, bạn có thể tải xuống từ dự án Gunwin. http://gnuwin32.sourceforge.net/packages/gtar.htmTạo tệp tar.gz
Đây là lệnh tar phải chạy trên shell. Tôi sẽ giải thích các tùy chọn dòng lệnh bên dưới.
Mã:
tar pczfmyarchive.tar.gz /home/till/mydocuments
- [p] Tùy chọn này là viết tắt của "preserve", nó hướng dẫn tar lưu trữ thông tin chi tiết về chủ sở hữu tệp và quyền tệp trong kho lưu trữ.
- [c] Là viết tắt của create. Tùy chọn này là bắt buộc khi tạo tệp.
- [z] Tùy chọn z cho phép nén gzip.
- [f] Tùy chọn file yêu cầu tar tạo tệp lưu trữ. Tar sẽ gửi đầu ra đến stdout nếu tùy chọn này bị bỏ qua.
Ví dụ về lệnh Tar
Ví dụ 1: Sao lưu thư mục /etc Tạo bản sao lưu của thư mục cấu hình /etc. Bản sao lưu được lưu trữ trong thư mục gốc.
Mã:
tar pczvf /root/etc.tar.gz /etc
Lệnh này phải được chạy dưới dạng root để đảm bảo rằng tất cả các tệp trong /etc đều được bao gồm trong bản sao lưu. Lần này, tôi đã thêm tùy chọn [v] vào lệnh. Tùy chọn này có nghĩa là verbose, nó yêu cầu tar hiển thị tất cả các tên tệp được thêm vào kho lưu trữ. Ví dụ 2: Sao lưu thư mục /home của bạn Tạo bản sao lưu của thư mục home của bạn. Bản sao lưu sẽ được lưu trữ trong thư mục /backup.
Mã:
tar czf /backup/myuser.tar.gz /home/myuser
Mã:
ls /var/lib/mysql
Dừng máy chủ cơ sở dữ liệu để có bản sao lưu tệp MySQL nhất quán với tar. Bản sao lưu sẽ được ghi vào thư mục /backup. 1) Tạo thư mục sao lưu
Mã:
mkdir /backupchmod 600 /backup
Mã:
service mysql stoptar pczf /backup/mysql.tar.gz /var/lib/mysqlservice mysql startls -lah /backup
Trích xuất các tệp tar.gz
Lệnh để trích xuất các tệp tar.gz là:
Mã:
tar xzfmyarchive.tar.gz
Giải thích các tùy chọn lệnh tar
- [x] X là viết tắt của extract (trích xuất), đây là tùy chọn bắt buộc khi muốn trích xuất một tệp tar.
- [z] Tùy chọn z cho tar biết rằng tệp lưu trữ sẽ được giải nén ở định dạng gzip.
- [f] Tùy chọn này hướng dẫn tar đọc nội dung tệp lưu trữ từ một tệp, trong trường hợp này là filemyarchive.tar.gz.
Mã:
tar xzvfmyarchive.tar.gz