OnWorks Linux và Windows Online WorkStations

Logo

Lưu trữ trực tuyến miễn phí cho máy trạm

<Trước | Nội dung | Tiếp theo>

Mặc dù Linux là một trong những hệ điều hành an toàn nhất hiện nay và ngay cả khi nó được thiết kế để tiếp tục hoạt động, dữ liệu vẫn có thể bị mất. Mất dữ liệu thường là hậu quả của lỗi người dùng, nhưng đôi khi do lỗi hệ thống, chẳng hạn như lỗi nguồn hoặc ổ đĩa, vì vậy bạn nên giữ thêm một bản sao của dữ liệu nhạy cảm và / hoặc quan trọng.


hình ảnh

9.1.1. Chuẩn bị dữ liệu của bạn


9.1.1.1. Lưu trữ bằng tar


Trong hầu hết các trường hợp, trước tiên, chúng tôi sẽ thu thập tất cả dữ liệu để sao lưu vào một tệp lưu trữ duy nhất, tệp này chúng tôi sẽ nén sau này. Quá trình lưu trữ liên quan đến việc nối tất cả các tệp được liệt kê và loại bỏ các khoảng trống không cần thiết. Trong Linux, điều này thường được thực hiện với tar chỉ huy. tar ban đầu được thiết kế để lưu trữ dữ liệu trên băng, nhưng nó cũng có thể tạo tài liệu lưu trữ, được gọi là tarball.


tar có nhiều tùy chọn, những tùy chọn quan trọng nhất được trích dẫn dưới đây:


-v: dài dòng

-t: kiểm tra, hiển thị nội dung của một tarball

-x: giải nén kho lưu trữ

-c: tạo kho lưu trữ

-f archivedevice: sử dụng archivedevice làm nguồn / đích cho tarball, thiết bị mặc định là thiết bị băng đầu tiên (thường là / dev / st0 hoặc thứ gì đó tương tự)

-j: lọc qua bzip2, xem Phần 9.1.1.2


Thông thường bỏ tiền tố gạch ngang với tar như bạn có thể thấy từ các ví dụ bên dưới.


hình ảnhSử dụng GNU tar để tương thích

Các kho lưu trữ được tạo ra với một độc quyền tar phiên bản trên một hệ thống, có thể không tương thích với tar trên một hệ thống độc quyền khác. Điều này có thể gây ra nhiều đau đầu, chẳng hạn như nếu tệp lưu trữ cần được khôi phục


trên một hệ thống không tồn tại nữa. Sử dụng GNU tar phiên bản trên tất cả các hệ thống để ngăn quản trị viên hệ thống của bạn bật khóc. Linux luôn sử dụng GNU tar. Khi làm việc trên các máy UNIX khác, hãy nhập tar --Cứu giúp để tìm ra phiên bản bạn đang sử dụng. Liên hệ với quản trị viên hệ thống của bạn nếu bạn không thấy từ GNU ở đâu đó.

Trong ví dụ dưới đây, một kho lưu trữ được tạo và giải nén.


gaby: ~> ls hình ảnh /

me + tux.jpg nimf.jpg


gaby: ~> tar cvf images-in-a-dir.tar hình ảnh /

images / images / nimf.jpg images / me + tux.jpg


gaby: ~> hình ảnh cd


gaby: ~ / hình ảnh> tar cvf hình ảnh-without-a-dir.tar * .jpg

me + tux.jpg nimf.jpg


gaby: ~ / hình ảnh> cd


gaby: ~> ls * / *. tar

images / images-without-a-dir.tar


gaby: ~> ls * .tar

hình ảnh-in-a-dir.tar


gaby: ~> tar xvf hình ảnh-in-a-dir.tar

images / images / nimf.jpg images / me + tux.jpg


gaby: ~> tar tvf hình ảnh / images-without-dir.tar

-rw-r - r-- gaby / gaby 42888 1999-06-30 20:52:25 me + tux.jpg

-rw-r - r-- gaby / gaby 7578 2000-01-26 12:58:46 nimf.jpg


gaby: ~> tar xvf hình ảnh / images-without-a-dir.tar

me + tux.jpg nimf.jpg


gaby: ~> ls * .jpg

me + tux.jpg nimf.jpg

gaby: ~> ls hình ảnh /

me + tux.jpg nimf.jpg


gaby: ~> tar cvf images-in-a-dir.tar hình ảnh /

images / images / nimf.jpg images / me + tux.jpg


gaby: ~> hình ảnh cd


gaby: ~ / hình ảnh> tar cvf hình ảnh-without-a-dir.tar * .jpg

me + tux.jpg nimf.jpg


gaby: ~ / hình ảnh> cd


gaby: ~> ls * / *. tar

images / images-without-a-dir.tar


gaby: ~> ls * .tar

hình ảnh-in-a-dir.tar


gaby: ~> tar xvf hình ảnh-in-a-dir.tar

images / images / nimf.jpg images / me + tux.jpg


gaby: ~> tar tvf hình ảnh / images-without-dir.tar

-rw-r - r-- gaby / gaby 42888 1999-06-30 20:52:25 me + tux.jpg

-rw-r - r-- gaby / gaby 7578 2000-01-26 12:58:46 nimf.jpg


gaby: ~> tar xvf hình ảnh / images-without-a-dir.tar

me + tux.jpg nimf.jpg


gaby: ~> ls * .jpg

me + tux.jpg nimf.jpg

Ví dụ này cũng minh họa sự khác biệt giữa một thư mục tarred và một loạt các tệp tarred. Bạn chỉ nên nén các thư mục để các tệp không bị tràn ra khắp nơi khi giải nén tarball (có thể nằm trên một hệ thống khác, nơi bạn có thể không biết tệp nào đã ở đó và tệp nào từ kho lưu trữ).


Khi ổ đĩa băng được kết nối với máy của bạn và được quản trị viên hệ thống của bạn định cấu hình, tên tệp kết thúc bằng .tar được thay thế bằng tên thiết bị băng, ví dụ:


tar cvf / dev / tape mail /


Cac thu mục thư và tất cả các tệp mà nó chứa được nén thành một tệp được ghi trên băng ngay lập tức. Danh sách nội dung được hiển thị bởi vì chúng tôi đã sử dụng tùy chọn dài dòng.


hình ảnh


9.1.1.2. Sao lưu tăng dần với tar


Sản phẩm tar công cụ hỗ trợ tạo các bản sao lưu gia tăng, sử dụng -N Lựa chọn. Với tùy chọn này, bạn có thể chỉ định một ngày và tar sẽ kiểm tra thời gian sửa đổi của tất cả các tệp được chỉ định so với ngày này. Nếu các tệp được thay đổi gần đây hơn ngày, chúng sẽ được đưa vào bản sao lưu. Ví dụ bên dưới sử dụng dấu thời gian trên bản lưu trữ trước đó làm giá trị ngày. Đầu tiên, tệp lưu trữ ban đầu được tạo và dấu thời gian trên tệp sao lưu ban đầu được hiển thị. Sau đó, một tệp mới được tạo, trên đó chúng tôi thực hiện một bản sao lưu mới, chỉ chứa tệp mới này:


jimmy: ~> tar cvpf /var/tmp/javaproggies.tar java / *. java

java / btw.java java / error.java java / hello.java java / Income2.java java / Income.java java / inputdevice.java java / input.java java / master.java java / method1.java java / mood.java java / moodywaitress.java java / test3.java java / TestOne.java java / TestTwo.java java / Vehicle.java


jimmy: ~> ls -l /var/tmp/javaproggies.tar

-rw-rw-r-- 1 jimmy jimmy 10240 ngày 21 tháng 11 58:XNUMX /var/tmp/javaproggies.tar jimmy: ~> chạm vào java / newprog.java

jimmy: ~> tar -N /var/tmp/javaproggies.tar \

-cvp /var/tmp/incremental1-javaproggies.tar java / *. java 2> / dev / null

java / newprog.java jimmy: ~> cd / var / tmp /

jimmy: ~> tar xvf gia tăng1-javaproggies.tar

java / newprog.java

jimmy: ~> tar cvpf /var/tmp/javaproggies.tar java / *. java

java / btw.java java / error.java java / hello.java java / Income2.java java / Income.java java / inputdevice.java java / input.java java / master.java java / method1.java java / mood.java java / moodywaitress.java java / test3.java java / TestOne.java java / TestTwo.java java / Vehicle.java


jimmy: ~> ls -l /var/tmp/javaproggies.tar

-rw-rw-r-- 1 jimmy jimmy 10240 ngày 21 tháng 11 58:XNUMX /var/tmp/javaproggies.tar jimmy: ~> chạm vào java / newprog.java

jimmy: ~> tar -N /var/tmp/javaproggies.tar \

-cvp /var/tmp/incremental1-javaproggies.tar java / *. java 2> / dev / null

java / newprog.java jimmy: ~> cd / var / tmp /

jimmy: ~> tar xvf gia tăng1-javaproggies.tar

java / newprog.java

Các lỗi tiêu chuẩn được chuyển hướng đến / dev / null. Nếu bạn không làm điều này, tar sẽ in một thông báo cho mỗi tệp không thay đổi, cho bạn biết nó sẽ không bị kết xuất.


Cách làm việc này có nhược điểm là nó nhìn vào dấu thời gian trên tệp. Giả sử rằng bạn tải một tệp lưu trữ vào thư mục chứa các bản sao lưu của bạn và tệp lưu trữ chứa các tệp đã được tạo hai năm trước. Khi kiểm tra dấu thời gian của các tệp đó so với dấu thời gian trên bản lưu trữ ban đầu, các tệp mới sẽ thực sự có vẻ cũ tarvà sẽ không được bao gồm trong một bản sao lưu gia tăng được thực hiện bằng cách sử dụng -N tùy chọn.


Một sự lựa chọn tốt hơn sẽ là -g tùy chọn này sẽ tạo một danh sách các tệp để sao lưu. Khi thực hiện sao lưu gia tăng, các tệp được kiểm tra dựa trên danh sách này. Đây là cách nó hoạt động:


jimmy: ~> tar cvpf work-20030121.tar -g snapshot-20030121 work /

work / work / file1 work / file2 work / file3


jimmy: ~> ảnh chụp nhanh tập tin-20030121

jimmy: ~> tar cvpf work-20030121.tar -g snapshot-20030121 work /

work / work / file1 work / file2 work / file3


jimmy: ~> ảnh chụp nhanh tập tin-20030121


ảnh chụp nhanh-20030121: ASCII văn bản Ngày hôm sau, người dùng jimmy hoạt động trên tệp3 hơn một chút, và tạo ra tệp4. Vào cuối ngày, anh ấy tạo một bản sao lưu mới:


jimmy: ~> tar cvpf work-20030122.tar -g snapshot-20030121 work /

work / work / file3 work / file4

jimmy: ~> tar cvpf work-20030122.tar -g snapshot-20030121 work /

work / work / file3 work / file4

Đây là một số ví dụ rất đơn giản, nhưng bạn cũng có thể sử dụng loại lệnh này trong cronjob (xem Phần 4.4.4), chỉ định ví dụ: một tệp ảnh chụp nhanh để sao lưu hàng tuần và một tệp cho sao lưu hàng ngày.

Trong trường hợp đó, các tệp ảnh chụp nhanh phải được thay thế khi sao lưu toàn bộ. Thông tin thêm có thể được tìm thấy trong tar tài liệu hướng dẫn.

hình ảnhNhững thứ thực sự

Như bạn có thể nhận thấy, tar là OK khi chúng ta đang nói về một thư mục đơn giản, một tập hợp các tệp thuộc về nhau. Tuy nhiên, có những công cụ dễ quản lý hơn khi bạn muốn lưu trữ toàn bộ phân vùng hoặc đĩa hoặc các dự án lớn hơn. Chúng tôi chỉ giải thích về tar ở đây vì nó là một công cụ rất phổ biến để phân phối tài liệu lưu trữ. Sẽ khá thường xuyên xảy ra rằng bạn cần cài đặt một phần mềm đi kèm

cái gọi là "tarball nén". Xem Phần 9.3 để biết cách dễ dàng hơn để thực hiện sao lưu thường xuyên.


hình ảnh

9.1.1.3. Nén và giải nén bằng gzip hoặc bzip2


Dữ liệu, bao gồm cả tarball, có thể được nén bằng các công cụ zip. Các gzip lệnh sẽ thêm hậu tố .gz vào tên tệp và xóa tệp gốc.


jimmy: ~> ls -la | nhựa đường grep

-rw-rw-r-- 1 jimmy jimmy 61440 6 tháng 14 08:XNUMX images-without-dir.tar jimmy: ~> hình ảnh gzip-không-dir.tar

jimmy: ~> ls -la hình ảnh-without-dir.tar.gz

-rw-rw-r-- 1 jimmy jimmy 50562 6 tháng 14 08:XNUMX images-without-dir.tar.gz

jimmy: ~> ls -la | nhựa đường grep

-rw-rw-r-- 1 jimmy jimmy 61440 6 tháng 14 08:XNUMX images-without-dir.tar jimmy: ~> hình ảnh gzip-không-dir.tar

jimmy: ~> ls -la hình ảnh-without-dir.tar.gz

-rw-rw-r-- 1 jimmy jimmy 50562 6 tháng 14 08:XNUMX images-without-dir.tar.gz

Giải nén các tệp đã nén với -d tùy chọn.


bzip2 hoạt động theo cách tương tự, nhưng sử dụng thuật toán nén cải tiến, do đó tạo ra các tệp nhỏ hơn. Xem các trang thông tin bzip2 để biết thêm.


Các gói phần mềm Linux thường được phân phối trong một tarball được nén. Điều hợp lý cần làm sau khi giải nén loại tài liệu lưu trữ đó là tìm README và đọc nó. Nó thường chứa các hướng dẫn để cài đặt gói.


GNU tar lệnh nhận biết các tệp được gzipped. Sử dụng lệnh


tar tập tin zxvf.tar.gz


để giải nén và giải nén .tar.gz or . Tgz các tập tin. Sử dụng


tar tập tin jxvf.tar.bz2


để giải nén tar lưu trữ được nén bằng bzip2.


hình ảnh


9.1.1.4. Kho lưu trữ Java


Dự án GNU cung cấp cho chúng tôi bình công cụ tạo kho lưu trữ Java. Nó là một ứng dụng Java kết hợp nhiều tệp thành một tệp lưu trữ JAR duy nhất. Mặc dù cũng là một công cụ nén và lưu trữ mục đích chung, dựa trên ZIP và định dạng nén ZLIB, bình chủ yếu được thiết kế để tạo điều kiện thuận lợi cho việc đóng gói mã Java, các applet và / hoặc các ứng dụng trong một tệp duy nhất. Khi được kết hợp trong một kho lưu trữ duy nhất, các thành phần của ứng dụng Java có thể được tải xuống nhanh hơn nhiều.


Không giống như tar, bình nén theo mặc định, độc lập với các công cụ khác - vì về cơ bản nó là phiên bản Java của zip. Ngoài ra, nó cho phép các mục nhập riêng lẻ trong kho lưu trữ có chữ ký của tác giả, để có thể xác thực nguồn gốc.


Cú pháp gần giống như đối với tar lệnh, chúng tôi tham khảo Thông tin bình để biết sự khác biệt cụ thể.


hình ảnhliên kết tar, jar và biểu tượng

Một tính năng đáng chú ý không thực sự được đề cập trong tài liệu tiêu chuẩn là bình sẽ theo các liên kết tượng trưng. Dữ liệu mà các liên kết này trỏ tới sẽ được đưa vào kho lưu trữ. Mặc định trong tar là chỉ sao lưu liên kết tượng trưng, ​​nhưng hành vi này có thể được thay đổi bằng cách sử dụng -h đến tar.


hình ảnh

9.1.1.5. Vận chuyển dữ liệu của bạn


Điện toán đám mây hệ điều hành hàng đầu tại OnWorks: