Tar có phải là một giải pháp lưu trữ phù hợp cho nhiều bản sao lưu dữ liệu từ cùng một thư mục không?


1

Gần đây tôi đã quyết định lưu trữ một số dữ liệu bằng Tar . Dữ liệu bao gồm nhiều bản sao lưu của cùng một thư mục; có nghĩa là nó chứa rất nhiều bản sao. Tôi đọc được rằng vì Tar thiếu một chỉ mục, nó không hoạt động tốt với dữ liệu chứa nhiều bản sao. Vì vậy, về cơ bản câu hỏi của tôi là Tar có phù hợp để lưu trữ dữ liệu đó không?

Tôi quan tâm chủ yếu về việc lưu giữ tất cả dữ liệu gốc trong kho lưu trữ, điều này bao gồm tất cả các dấu thời gian của tệp: tạo, sửa đổi, truy cập.


@Ramhound Tôi đã thử với 7-zip trong Windows, nhưng không thành công, nhưng tôi chưa thử sử dụng GNU tar trong Linux. Là tar không có khả năng lưu trữ dấu thời gian, ngoài ngày sửa đổi?

@Ramhound Có, tôi đã nói với bạn rằng tôi đã thực hiện điều đó với 7-zip và tôi đã không giữ được ngày khác ngoài sửa đổi, tuy nhiên tôi chưa thử với GNU tar. Có lẽ sau này sẽ mang lại một kết quả khác.

@ramhound Điều tôi muốn nói trong phản hồi đầu tiên của tôi là tôi đã thử phương pháp của bạn trên Windows. Tôi đã không nói rằng tôi sẽ sử dụng nó trên một hệ điều hành cụ thể.

Tôi đã đọc câu hỏi của bạn vì, vì bạn đã liên kết với lệnh thủ công GNU, nên nó được ngụ ý rằng bạn sẽ sử dụng GNU. rsync & tham nhũng dữ liệu .
Ramhound

@ramhound Tôi xin lỗi, tôi không liên kết với GNU tar trong câu hỏi của mình. Biên tập viên phải làm điều đó.

Câu trả lời:


2

Tất nhiên Tar có thể lưu trữ các bản sao lưu này, bất kể bạn có bao nhiêu bản sao trong đó. Nếu bạn có 100 bản sao tệp abc.doc trong 100 thư mục khác nhau, nó sẽ được lưu trữ 100 lần. Điều đó nói rằng, nó không hiệu quả.

Nếu một công cụ sao lưu có thể sao chép dữ liệu, nó sẽ nhận ra 100 tệp giống hệt nhau, sao lưu một tệp và tham chiếu nó 99 lần. Nếu một trong những phiên bản đó thay đổi, nó sẽ xóa tham chiếu và sao lưu nó một cách riêng biệt.


Nếu bạn có một tệp lưu trữ tar duy nhất mà bạn thực hiện nhiều bản cập nhật, các tệp đã thay đổi sẽ được thêm vào kho lưu trữ, thay vì thay thế các phiên bản trước đó của chúng.
mpez0

0

GNU tar

Thời gian sáng tạo:

Linux không thực sự ghi lại thời gian tạo tập tin. Nó có ctimedấu thời gian, đôi khi bị nhầm với thời gian tạo, nhưng đó thực sự là "thời gian thay đổi inode": nó ghi lại lần cuối cùng có một thay đổi đối với tệp hoặc quyền của chủ sở hữu, v.v. nó thay đổi thường xuyên hơn mtime. Con ctimetem được xử lý bởi kernel và người dùng không thể đặt thành các giá trị tùy ý (mặc dù bạn có thể đặt lại nó theo thời gian hiện tại một cách dễ dàng).

Thời gian sửa đổi:

mtime được bảo tồn bởi tar

Thời gian truy cập:

tarthường thay đổi thời gian truy cập ngay cả trên tệp gốc. Bạn có thể ngăn chặn điều này bằng cách sử dụng --atime-preservecờ. Bạn cũng có thể muốn --preservethẻ giữ quyền (và thứ tự sắp xếp thư mục).

Tôi không biết liệu bạn có thể tarbảo quản các tệp lưu trữ trên các tệp được lưu trữ hay không, nhưng bạn luôn có thể sửa chúng bằng cách:

  1. Tháo gỡ
  2. Sử dụng touch -a -d TIME FILEtrên mỗi tệp (với thời gian ở định dạng [[CC]YY]MMDDhhmm[.ss])
  3. Tái bản với tar --atime-preserve

cảnh báo : Sử dụng --atime-preservehiện tại ghi nhớ đồng thời để nó có thể bảo quản nó sau khi đọc nó. Trên hầu hết các hệ thống, điều này sẽ khiến ctime thay đổi, đôi khi có thể can thiệp vào phần mềm khác (ví dụ: phần mềm bảo mật).

Phần mềm khác

Bạn có thể xem xét rsync(xem bài viết này chẳng hạn) hoặc hệ thống kiểm soát phiên bản (như git)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.