Đây là lệnh rdup có thể chạy trong nhà cung cấp dịch vụ lưu trữ miễn phí OnWorks bằng cách sử dụng một trong nhiều máy trạm trực tuyến miễn phí của chúng tôi như Ubuntu Online, Fedora Online, trình mô phỏng trực tuyến Windows hoặc trình mô phỏng trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
rdup - tạo danh sách tệp phù hợp để tạo bản sao lưu
SYNOPSIS
thứ cấp [-N dấu thời gian] -[-Pcmd,opt1,...,opt7] ... [TÙY CHỌN] ... DANH SÁCH [TRỰC TIẾP/TẬP TIN]...
MÔ TẢ
thứ cấp là một tiện ích lấy cảm hứng từ rsync và cách thực hiện sao lưu của Plan9. thứ cấp chính nó làm
không sao lưu bất cứ điều gì. Nó chỉ in danh sách các file bị thay đổi, hoặc tất cả các file trong trường hợp
của một bãi chứa rỗng. Nó cũng xử lý các tập tin bị loại bỏ, cho phép tăng dần chính xác
bản sao lưu. Tất cả các đường dẫn được in là tuyệt đối. thứ cấp sử dụng thời gian thay đổi (ctime) để quyết định
liệu một tập tin có bị thay đổi hay không.
Nó hoạt động như sau, để đổ đầy
1. Thu thập thông tin tất cả các thư mục và in tất cả các tên được tìm thấy ra đầu ra tiêu chuẩn.
2. Viết một danh sách tập tin với tất cả các tên được tìm thấy khi thu thập thông tin. Sử dụng danh sách này để
tính toán kết xuất gia tăng chính xác.
Và đối với các bãi chứa gia tăng
1. Đọc trong danh sách tệp được viết khi thực hiện kết xuất đầy đủ.
2. Chạm vào tập tin dấu thời gian.
3. Thu thập dữ liệu tất cả các thư mục một lần nữa.
4. Khác biệt 1. và 2. để có được hai danh sách; một trong những mục bị xóa và một trong những mục được thêm/sửa đổi
mặt hàng.
5. Viết các mục đã xóa vào đầu ra tiêu chuẩn
6. Viết các mục đã sửa đổi/mới vào đầu ra tiêu chuẩn.
7. Viết một danh sách tập tin mới.
DANH SÁCH là một danh sách nội bộ thứ cấp ghi vào, để theo dõi những tập tin nào trong một
hỗ trợ. Nếu bạn không muốn điều này (tức là tạo một bản sao lưu đầy đủ), hãy sử dụng / dev / null đây. Tập tin
/ dev / null được xử lý đặc biệt bởi thứ cấp: nếu được phát hiện thì không có danh sách tập tin mới nào được ghi.
TRỰC TIẾP/TẬP TIN có thể được chỉ định nhiều lần. Đây là những thư mục và tập tin bạn
muốn sao lưu. Nếu bỏ qua nó mặc định là thư mục hiện tại "." .
Nếu -N dấu thời gian tùy chọn không được đưa ra, tất cả các đường dẫn tìm thấy sẽ được in. Chỉ khi một -N
dấu thời gian tệp được cung cấp, thời gian có thể được so sánh và có thể tạo ra đầu ra gia tăng.
thứ cấp in một danh sách tập tin ra đầu ra tiêu chuẩn. Các chương trình tiếp theo trong đường ống có thể được sử dụng
để thực sự triển khai kế hoạch dự phòng. Sau khi chạy, một FILELIST mới được viết. Không có cảnh báo
được đưa ra khi FILELIST là một tệp hiện có, nó sẽ bị ghi đè bởi thứ cấp. Chạy mới
sẽ chỉ in ra những tập tin đã thực sự thay đổi hoặc bị xóa kể từ lần cuối cùng
chạy, do đó có thể thực hiện sao lưu gia tăng.
Các tệp được kiểm tra các thay đổi bằng cách so sánh thời gian c (thời gian thay đổi), nếu thời gian này MỚI hơn
hơn thời gian c của tệp dấu thời gian, tên đường dẫn được in ra đầu ra tiêu chuẩn. Khi tập tin
bị xóa, chúng cũng được in ra đầu ra tiêu chuẩn, nhưng chúng có tiền tố là '-'.
Xem FORMAT dưới. Định dạng mặc định thứ cấp cách sử dụng là: "%p%T %b %t %u %U %g %G %l %s\n%n%C"
Lưu ý rằng thứ cấp cũng hỗ trợ băm tập tin, điều này giúp kiểm tra cục bộ
hash bằng hàm băm của tệp được sao lưu.
Tất cả các lỗi được ghi vào lỗi tiêu chuẩn. Nếu thư mục hoặc tập tin không tồn tại, chúng
bị bỏ qua và một cảnh báo được phát ra.
Ý tưởng chung là phải rất giống UNIX và tạo ra một loạt các chương trình đơn giản mà mỗi chương trình
làm một việc cụ thể của họ rất tốt. Với thứ cấp và một tập lệnh shell nhỏ (50 dòng) người ta có thể
thực hiện sao lưu được mã hóa và nén.
As thứ cấp không sao lưu bất cứ thứ gì, chính sách sao lưu; bạn sao lưu những gì, bạn sao lưu như thế nào, như thế nào
thường xuyên và cách bạn khôi phục; tất cả chỉ còn lại cho kịch bản và trí tưởng tượng của bạn. Để bắt đầu
trí tưởng tượng của bạn nhìn thấy rdup-tr(1), up-up(1) và có thể sao lưu thứ rdup.
LỰA CHỌN
-Plệnh,chọn0, ...,chọn6
Lọc tất cả đầu ra thông qua lệnh. chọn0 thông qua chọn6 được đưa ra dưới dạng tùy chọn cho
yêu cầu. Có thể sử dụng nhiều -P, tuy nhiên có tối đa bảy tùy chọn cho
mỗi lệnh. Các tùy chọn cách nhau bằng dấu phẩy thì phải có Không không gian trong
giữa.
Do tính chất của các đường ống trong Unix, đường ống này được tạo lại cho mọi tệp
xử lý. Đồng thời xem 'Quy trình con' bên dưới.
-F định dạng
Chỉ định định dạng kiểu printf để sử dụng. Nhìn thấy FORMAT phía dưới.
-N dấu thời gian
sử dụng c_time của tập tin dấu thời gian làm dấu thời gian để quyết định những gì cần đưa vào
danh sách sao lưu gia tăng. Nếu như dấu thời gian không tồn tại, việc kết xuất đầy đủ được thực hiện.
-M dấu thời gian
Là -N, nhưng hãy nhìn vào m_time của dấu thời gian.
-R Đảo ngược đầu ra của thứ cấp. Công cụ chấp nhận đầu ra này phải tạo ra sự dẫn đầu
thư mục khi họ nhìn thấy chúng. Tùy chọn này cho phép tập lệnh - chạy như một người dùng bình thường
-- để đặt các tập tin vào một thư mục có thể có quyền 0600.
-E hồ sơ
Tệp có tên 'tệp' chứa danh sách các biểu thức chính quy tương thích với Perl
(PCRE), mỗi dòng một cái, đó là thứ cấp sẽ sử dụng để loại trừ những cái tên. Một '#' ở đầu
dòng có thể được sử dụng để báo hiệu một bình luận. Các dòng trống sẽ bị bỏ qua.
Nếu một thư mục bị loại trừ, thứ cấp sẽ không đi xuống thư mục đó, vì vậy tất cả các tập tin trong
thư mục đó cũng bị loại trừ.
Không thể loại trừ các thư mục dẫn đến thư mục cần sao lưu. Nếu như
bạn sử dụng một dòng lệnh như:
rdup /dev/null /home/miekg/bin
Các thư mục '/ Home', '/home/miekg', '/home/miekg/bin' luôn được in.
Nếu bạn muốn loại trừ tệp '/home/miekg/blaat', bạn cần thêm vào phần sau
biểu thức chính quy: '/home/miekg/blaat'.
Nếu bạn muốn loại trừ tất cả các thư mục .mozilla/cache của tất cả người dùng, bạn có thể sử dụng
'/Trang Chủ/.*/.mozilla/cache/.*'. Điều này không loại trừ chính thư mục đó và tôi
giả sử rằng thư mục chính của người dùng được tìm thấy trong '/ Home'.
Cũng lưu ý rằng thứ cấp không in các thư mục có dấu gạch chéo ở cuối.
-a Khôi phục thời gian truy cập ban đầu trên các tập tin và thư mục.
-n Đừng tôn vinh .không sao lưu các tập tin. Thông thường nếu tìm thấy một tập tin như vậy thì thư mục và tất cả
các tập tin chứa nó không được in ra đầu ra tiêu chuẩn. Bây giờ họ đã như vậy.
-r Chỉ in các tập tin đã bị xóa; các mục bắt đầu bằng một `-'. Tùy chọn này hủy đặt -m.
-m Chỉ in các tập tin đã sửa đổi/mới; các mục bắt đầu bằng một `+'. Tùy chọn này hủy đặt
-NS.
-v Hãy dài dòng hơn. Khi sử dụng, mỗi đường dẫn cũng sẽ được in ra lỗi chuẩn.
-s kích thước
Không xuất các tập tin lớn hơn kích thước byte. Điều này có thể được sử dụng để hạn chế số lượng
dữ liệu sẽ được chuyển khi thực hiện sao lưu từ xa. Tùy chọn này có thể áp dụng cho
các tập tin.
-x Ở trên hệ thống tập tin cục bộ.
-V In phiên bản của rdup.
-h Đưa ra một cái nhìn tổng quan về các lựa chọn.
Trẻ em Quy trình (-P lá cờ)
Khi tạo đầu ra, bạn cũng có thể muốn 'kết nối' nội dung của mỗi nộp qua một
số lượng lệnh, chẳng hạn như tiện ích nén và mã hóa. Lưu ý rằng điều này là khác nhau
hơn là nén toàn thể lưu trữ dưới dạng GNU tar cho phép bằng cách sử dụng tùy chọn -z. Vì vậy đây là
Ở đâu thứ cấp đi vào. Nó cho phép bạn tạo một kho lưu trữ bình thường trong đó mỗi tập tin là
được mã hóa (hoặc nén. đảo ngược hoặc bất cứ điều gì). thứ cấp thực hiện điều này bằng cách forking đứa trẻ
các quá trình biến đổi nội dung.
Nếu một trong các nhánh con trả về mã thoát khác 0 (XNUMX), thì giả sử
toàn bộ quá trình chuyển đổi không thành công. Trong trường hợp đó thứ cấp chấm dứt.
Như đã nói thứ cấp hoạt động bằng cách tách ra một số tiến trình con (các lệnh có tên bằng
(các) tùy chọn -P), kết nối chúng với các đường ống. Tệp hiện tại được kết nối với
đứa con đầu lòng. Đầu ra được tạo bởi các tiến trình con này sẽ được tiến trình cha thu thập
(thứ cấp). Nội dung sau đó được ghi vào đầu ra tiêu chuẩn ở định dạng lưu trữ. Như một
hình ảnh nói hơn một ngàn từ ở đây là hình ảnh ASCII của quá trình:
+--- ... (stdout) ... ----> lưu trữ
/
rdup <--- ... ... <----+
|
lặp #files |
|
tập tin ---> cmd1 | cmd2 | ...| cmdN
SAO LƯU
Với:
rm -f dấu thời gian && rdup -N dấu thời gian DANH SÁCH TRỰC TIẾP
Danh sách tệp kết xuất đầy đủ được in ra đầu ra tiêu chuẩn. Và với:
rdup -N dấu thời gian DANH SÁCH TRỰC TIẾP
Một danh sách tập tin kết xuất tăng dần được in. Tập tin dấu thời gian được sử dụng để tiết kiệm thời gian chính xác
về cuộc chạy của rdup. Tập tin DANH SÁCH được sử dụng để tính toán danh sách kết xuất tăng dần chính xác, điều này
cần thiết cho các tệp đã bị xóa hoặc có loại khác.
FORMAT
Định dạng mặc định thứ cấp cách sử dụng là: "%p%T %b %t %u %U %g %G %l %s\n%n%C"
Các chuỗi thoát sau đây được hiểu bởi thứ cấp:
'p': '+' nếu tệp mới/được sửa đổi, '-' nếu bị xóa
'b': bit quyền từ thống kê(2), bát phân có bốn chữ số
'm': các bit chế độ tệp, st_mode từ thống kê(2), chữ số thập phân
'u': uid
'U': tên người dùng
'g': gid
'G': tên nhóm
'l': độ dài tên đường dẫn
's': kích thước tệp, nhưng hãy xem THẬN TRỌNG
'n': tên đường dẫn
'N': tên đường dẫn, nhưng trong trường hợp liên kết mềm hoặc liên kết cứng có thể tên liên kết.
't': thời gian sửa đổi (giây kể từ kỷ nguyên)
'H': hàm băm SHA1 của tệp thông thường, tất cả các số 0 ("XNUMX") cho tất cả các loại khác
'T': loại tệp
- tập tin bình thường, l liên kết tượng trưng, h liên kết cứng, d danh mục,
c thiết bị ký tự, b chặn thiết bị, p đường ống được đặt tên
và s ổ cắm.
'C': nội dung của tệp (không có nội dung nào cho tất cả các loại khác)
Để phân định đầu ra của thứ cấp với NULL bạn có thể sử dụng '\0' trong chuỗi định dạng.
Mọi nội dung tệp đều được viết theo cách dựa trên khối/đoạn. Khối cuối cùng được báo hiệu bằng
một khối rỗng. Mục nhập bắt đầu khối là ASCII và được định dạng như sau: VVBLOCKBBBBB\n .
Trong đó 'VV' là phiên bản, hiện tại là '01', sau đó là chuỗi ký tự 'BLOCK' và sau đó là
lượng byte (BBBBB), điển hình là '08192'. Và sau đó là một dòng mới. Cái này trông như thế này:
01BLOCK08192
8192BLOCK01
15BLOCK01
Số byte bằng 0 báo hiệu một khối dừng.
DANH SÁCH
thứ cấp ghi FILELIST (nội bộ) theo định dạng sau:
CHẾ ĐỘ DEV INODE LIÊN KẾT UID GID PATH_SIZE FILE_SIZE PATH
MODE là st_mode từ đâu stat(2), DEV là id dev được trả về bởi lệnh gọi stat và
INODE là số inode - thứ cấp cần thông tin này để quyết định xem thư mục có được đổi tên hay không. LIÊN KẾT
bằng 'h' đối với liên kết cứng, 'l' đối với liên kết tượng trưng và nếu không thì là '*'. UID và GID là
id người dùng và nhóm số của tệp. PATH_SIZE là độ dài của PATH. FILE_SIZE
Kích thước tập tin. Và cuối cùng PATH là đường dẫn của file.
Một ví dụ điển hình là:
16893 2050 32085 * 1000 1000 30 4096 /home/miekg/git/rdup/.git/logs
OUTPUT FORMAT
Đầu ra được tạo ra bởi thứ cấp được định dạng như:
+|-LOẠI BITS MTIME UID NGƯỜI DÙNG GID NHÓM PATH_SIZE FILE_SIZE\n
TỆP PATH_CONTENT
Điều này giúp tập lệnh shell từ xa có thể nhận được tệp thực tế
contetns và tạo một bản sao lưu.
Đối với thư mục: FILE_SIZE bằng 0 và không có nội dung nào được in. Như vậy:
+d 0755 1260243445 1000 mikg 1000 mikg 11 0\n
/nhà/miekg
Đối với các tệp thông thường, sau đây là đầu ra mẫu:
+- 0644 1260243445 1000 mikg 1000 mikg 32 6\n
/home/miekg/svn/rdup/trunk/aaa/a01BLOCK00006\n
xin chào\n
01BLOCK00000\n
Ở đâu aaa/a là một tập tin thông thường chứa từ 'hello\n'
THẬN TRỌNG
Liên kết mềm và liên kết cứng được xử lý khác nhau khi sử dụng %n, nếu bạn không thích hành vi này
sử dụng %N. Tên PATH được tạo từ tên liên kết và mục tiêu của nó. Một liên kết tượng trưng như
/home/bin/blaat -> /home/bin/bliep
được in dưới dạng '/home/bin/blaat -> /home/bin/bliep'. PATH_SIZE được sửa đổi tương ứng,
Ở đâu ' -> ' (4 ký tự) cũng được tính. FILE_SIZE không cần thiết cho phần mềm hoặc
liên kết cứng, vì vậy nó được đặt độ dài của tên liên kết -- phần bên trái của ' ->', trong
trường hợp này có độ dài là '/home/bin/blaat'.
Nếu rdup gặp một liên kết cứng thì nó sẽ được xử lý theo cách tương tự, nhưng loại đầu ra được đặt thành
'h' thay vì 'l'. Liên kết cứng chỉ được phát hiện nếu rdup tìm thấy tệp có cùng nút
và số thiết bị như thiết bị trước đó, tức là các liên kết cứng như vậy phải có trong bản sao lưu của bạn.
Một lần nữa lưu ý: với '%N' chỉ tên của liên kết được in. FILE_SIZE là vẫn còn đặt thành
độ dài của tên liên kết.
Dụng cụ Các Tập Tin
Đối với thiết bị, trường kích thước (%s) được thay đổi để chứa số chính, số phụ của thiết bị.
Vì vậy, nếu số chính là 8 và số phụ là 0 (trong Linux đây là /dev/sda), thì số đó
kích thước sẽ là 8,0. Các số chỉ cách nhau bằng dấu phẩy `,'.
Liên kết tượng trưng
Có lẽ bạn sẽ nghĩ thứ cấp sẽ đi xuống thư mục mà liên kết tượng trưng trỏ tới.
Đây không phải là điều thực sự xảy ra, thứ cấp sẽ in bất kỳ thư mục nào dẫn đến
liên kết tượng trưng và sẽ không đi xuống thư mục. GNU tar hoạt động tương tự.
EXIT MÃ
thứ cấp trả về mã thoát bằng 1 nếu thành công, nếu không thì trả về XNUMX. rdup sẽ hủy bỏ nếu
không thể nối tập tin, nếu không thể biên dịch một biểu thức chính quy hoặc nếu một tín hiệu
Đã nhận.
VÍ DỤ
Tất cả các ví dụ tiếp theo sẽ tạo thành kết xuất đầy đủ -- nhờ việc sử dụng /dev/null. Nhìn thấy
rdup-tr(1) để biết thêm các ví dụ nâng cao.
thứ cấp (phản chiếu)
Sao lưu:
rdup/dev/null ~ / bin | rdup-up -t /shared/backup
Khôi phục:
rdup /dev/null /shared/backup | rdup-up -t /tmp/restore
or
cp -rap/chia sẻ/sao lưu/tmp/khôi phục
thứ cấp (lưu trữ)
Sao lưu:
rdup/dev/null ~ / bin > my-archive.rdup
Khôi phục:
rdup-up -t /tmp/restore < my-archive.rdup
cpio
Sao lưu:
rdup -R -F '%N\n' /dev/null ~ / bin | cpio -o -Hcrc > my-archive.cpio
Khôi phục:
cpio -i -d -Hcrc < my-archive.cpio
tar
Sao lưu:
rdup -F '%N\n' /dev/null ~ / bin | tar c -f my-archive.tar -T - --no-recursion
Khôi phục:
tar x -f my-archive.tar
Sử dụng rdup trực tuyến bằng dịch vụ onworks.net