CC: hai số chỉ thế kỉ,
* Tìm theo các đặc tính của tậptin với lệnh find
3.5 Nén và sao l−u các tậptin 1 Sao l− u các tập tin (lệnh tar )
Dữ liệu rất có giá trị, sẽ mất nhiều thời gian và công sức nếu phải tạo lại, thậm chí có lúc cũng không thể nào tạo lại đ−ợc. Vì vậy, Linux đ−a ra các cách thức để ng−ời dùng bảo vệ dữ liệu của mình.
Có bốn nguyên nhân cơ bản sau khiến dữ liệu có thể bị mất: lỗi phần cứng, lỗi phần mềm, lỗi do con ng−ời hoặc do thiên tai.
Sao l−u là cách để bảo vệ dữ liệu một cách kinh tế nhất. Bằng cách sao l−u dữ liệu, sẽ không có vấn đề gì xảy ra nếu dữ liệu trên hệ thống bị mất.
Một vấn đề rất quan trọng trong việc sao l−u đó là lựa chọn ph−ơng tiện sao l−u. cần phải quan tâm đến giá cả, độ tin cậy, tốc độ, ích lợi cũng nh− tính khả dụng của các ph−ơng tiện sao l−u.
Có rất nhiều các công cụ có thể đ−ợc sử dụng để sao l−u. Các công cụ truyền thống là tar, cpio và dump(công cụ chúng tôi muốn giới thiệu trong cuốn sách này là tar). Ngoài ra còn rất nhiều các công cụ khác có thể lựa chọn tùy theo ph−ơng tiện sao l−u có trong hệ thống.
Có hai kiểu sao l−u là sao l−u theo kiểu toàn bộ (full backup) và sao l−u theo kiểu tăng dần (incremental backup). Sao l−u toàn bộ thực hiện việc sao mọi thứ trên hệ thống tập tin, bao gồm tất cả các tập tin. Sao l−u tăng dần chỉ sao l−u những tập tin đ−ợc thay đổi hoặc đ−ợc tạo ra kể từ đợt sao l−u cuối cùng.
Việc sao l−u toàn bộ có thể đ−ợc thực hiện dễ dàng với lệnh tar với cú pháp:
tar [tùy-chọn] [<tập-tin>, ...] [<th−-mục>, ...]
Lệnh (ch−ơng trình) tar đ−ợc thiết kế để tạo lập một tập tin l−u trữ duy nhất. Với
tar, có thể kết hợp nhiều tập tin thành một tập tin duy nhất có kích th−ớc lớn hơn, điều này sẽ giúp cho việc di chuyển tập tin hoặc sao l−u băng từ trở nên dễ dàng hơn nhiều.
Lệnh tar có các lựa chọn sau đây:
-c, --create
tạo tập tin l−u trữ mới.
-d, --diff, --compare
tìm ra sự khác nhau giữa tập tin l−u trữ và tập tin hệ thống đ−ợc l−u trữ.
--delete
xóa từ tập tin l−u trữ (không sử dụng cho băng từ).
-r, --append
-t, --list
liệt kê nội dung của một tập tin l−u trữ.
-u, --update
chỉ thêm vào tập tin l−u trữ các tập tin mới hơn các tập tin đã có.
-x, --extract, --get
tách các tập tin ra khỏi tập tin l−u trữ.
-C, --directory tên-th−-mục
thay đổi đến th− mục có tên là tên-th−-mục.
--checkpoint
đ−a ra tên th− mục khi đọc tập tin l−u trữ.
-f, --file [HOSTNAME:]tập-tin
tùy chọn này xác định tên tập tin l−u trữ hoặc thiết bị l−u trữ là tập-tin
(nếu không có tùy chọn này, mặc định nơi l−u trữ là /dev/rmt0).
-h, --dereference
không hiện các tập tin liên kết mà hiện các tập tin mà chúng trỏ tới.
-k, --keep-old-files
giữ nguyên các tập tin l−u trữ đang tồn tại mà không ghi đè tập tin l−u trữ mới lên chúng.
-K, --starting-file tập-tin
bắt đầu tại tập-tin trong tập tin l−u trữ.
-l, --one-file-system
tạo tập tin l−u trữ trên hệ thống tập tin cục bộ.
-M, --multi-volume
tùy chọn này đ−ợc sử dụng khi dung l−ợng của tập tin cần sao l−u là lớn và không chứa hết trong một đơn vị l−u trữ vật lý.
-N, --after-date DATE, --newer DATE
chỉ l−u trữ các tập tin mới hơn các tập tin đ−ợc l−u trữ trong ngày DATE.
--remove-files
xóa tập tin gốc sau khi đã sao l−u chúng vào trong tập tin l−u trữ.
--totals
đ−a ra tổng số byte đ−ợc tạo bởi tùy chọn --create.
-v, --verbose
hiển thị danh sách các tập tin đã đ−ợc xử lý. Ví dụ:
tar: Removing leading / from absolute path names in the archive #
Lệnh trên sẽ tạo một tập tin sao l−u của th− mục /usr/src trong th− mục
/dev/ftape, (dòng thông báo ở trên cho biết rằng tar sẽ chuyển cả dấu / vào trong tập tin sao l−u).
Nếu việc sao l−u không thể thực hiện gọn vào trong một băng từ, lúc đó hãy sử dụng tùy chọn -M:
# tar -cMf /dev/fd0H1440 /usr/src
tar: Removing leading / from absolute path names in the archive Prepare volume #2 for /dev/fd0H1440 and hit return:
#
Chú ý rằng phải định dạng đĩa mềm tr−ớc khi thực hiện việc sao l−u, có thể sử dụng một thiết bị đầu cuối khác để thực hiện việc định dạng đĩa khi tar yêu cầu một đĩa mềm mới.
Sau khi thực hiện việc sao l−u, có thể kiểm tra kết quả của công việc bằng tùy chọn --compare:
# tar --compare --verbose -f /dev/ftape usr/src/
usr/src/Linux
usr/src/Linux-1.2.10-includes/ ...
#
Để sử dụng kiểu sao l−u tăng dần, hãy sử dụng tùy chọn -N:
# tar --create --newer '8 Sep 1995' --file /dev/ftape /usr/src --verbose tar: Removing leading / from absolute path names in the archive usr/src/ usr/src/Linux-1.2.10-includes/ usr/src/Linux-1.2.10-includes/include/ usr/src/Linux-1.2.10-includes/include/Linux/ usr/src/Linux-1.2.10-includes/include/Linux/modules/ usr/src/Linux-1.2.10-includes/include/asm-generic/ usr/src/Linux-1.2.10-includes/include/asm-i386/ usr/src/Linux-1.2.10-includes/include/asm-mips/ usr/src/Linux-1.2.10-includes/include/asm-alpha/ usr/src/Linux-1.2.10-includes/include/asm-m68k/ usr/src/Linux-1.2.10-includes/include/asm-sparc/ usr/src/patch-1.2.11.gz #
L−u ý rằng, tar không thể thông báo đ−ợc khi các thông tin trong inode của một tập tin bị thay đổi, ví dụ nh− thay đổi quyền truy nhập của tập tin, hay thay đổi tên tập tin chẳng hạn. Để biết đ−ợc những thông tin thay đổi sẽ cần dùng đến lệnh find và so sánh với trạng thái hiện thời của tập tin hệ thống với danh sách các tập tin đ−ợc sao l−u từ tr−ớc.