Đây là lệnh rsync 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 giả lập trực tuyến Windows hoặc trình giả lập trực tuyến MAC OS
CHƯƠNG TRÌNH:
TÊN
rsync - một công cụ sao chép tệp nhanh chóng, linh hoạt, từ xa (và cục bộ)
SYNOPSIS
Cục bộ: rsync [OPTION ...] SRC ... [DEST]
Truy cập qua trình bao từ xa:
Kéo: rsync [OPTION ...] [USER @] HOST: SRC ... [DEST]
Đẩy: rsync [OPTION ...] SRC ... [USER @] HOST: DEST
Truy cập qua daemon rsync:
Kéo: rsync [OPTION ...] [USER @] HOST :: SRC ... [DEST]
rsync [OPTION ...] rsync: // [USER @] HOST [: PORT] / SRC ... [DEST]
Đẩy: rsync [OPTION ...] SRC ... [USER @] HOST :: DEST
rsync [OPTION ...] SRC ... rsync: // [USER @] HOST [: PORT] / DEST
Các cách sử dụng chỉ với một đối số SRC và không có đối số DEST nào sẽ liệt kê các tệp nguồn thay vì
sự sao chép.
MÔ TẢ
Rsync là một công cụ sao chép tệp nhanh chóng và cực kỳ linh hoạt. Nó có thể sao chép cục bộ,
đến / từ một máy chủ khác qua bất kỳ trình bao từ xa nào hoặc đến / từ một daemon rsync từ xa. Nó cung cấp một
số lượng lớn các tùy chọn kiểm soát mọi khía cạnh của hành vi và cho phép rất linh hoạt
đặc điểm kỹ thuật của tập hợp các tệp sẽ được sao chép. Nó nổi tiếng với sự chuyển giao đồng bằng của nó
thuật toán, giúp giảm lượng dữ liệu được gửi qua mạng bằng cách chỉ gửi
sự khác biệt giữa các tệp nguồn và các tệp hiện có trong đích. Rsync là
được sử dụng rộng rãi để sao lưu và phản chiếu và như một lệnh sao chép cải tiến để sử dụng hàng ngày.
Rsync tìm các tệp cần được chuyển bằng thuật toán "kiểm tra nhanh" (theo mặc định)
tìm kiếm các tệp đã thay đổi kích thước hoặc trong lần sửa đổi gần đây nhất. Mọi thay đổi trong
các thuộc tính được bảo toàn khác (theo yêu cầu của các tùy chọn) được thực hiện trên tệp đích
trực tiếp khi kiểm tra nhanh chỉ ra rằng dữ liệu của tệp không cần được cập nhật.
Một số tính năng bổ sung của rsync là:
o hỗ trợ sao chép liên kết, thiết bị, chủ sở hữu, nhóm và quyền
o các tùy chọn loại trừ và loại trừ khỏi tương tự như GNU tar
oa chế độ loại trừ CVS để bỏ qua các tệp tương tự mà CVS sẽ bỏ qua
o có thể sử dụng bất kỳ trình bao từ xa trong suốt nào, bao gồm ssh hoặc rsh
o không yêu cầu đặc quyền của người dùng siêu cấp
o pipelining chuyển tệp để giảm thiểu chi phí độ trễ
o hỗ trợ cho các daemon rsync ẩn danh hoặc đã xác thực (lý tưởng để phản chiếu)
CÁC VẤN ĐỀ CHUNG
Rsync sao chép tệp đến hoặc từ máy chủ từ xa hoặc cục bộ trên máy chủ hiện tại (nó
không hỗ trợ sao chép tệp giữa hai máy chủ từ xa).
Có hai cách khác nhau để rsync liên hệ với hệ thống từ xa: sử dụng remote-shell
lập trình dưới dạng truyền tải (chẳng hạn như ssh hoặc rsh) hoặc liên hệ trực tiếp với daemon rsync qua
TCP. Truyền tải từ xa-shell được sử dụng bất cứ khi nào đường dẫn nguồn hoặc đích chứa
một dấu hai chấm (:) dấu phân tách sau đặc điểm kỹ thuật máy chủ. Liên hệ với daemon rsync
trực tiếp xảy ra khi đường dẫn nguồn hoặc đường dẫn đích chứa dấu hai chấm kép (: :)
dấu phân tách sau đặc điểm kỹ thuật máy chủ, HOẶC khi URL rsync: // được chỉ định (xem thêm
"SỬ DỤNG CÁC TÍNH NĂNG RSYNC-DAEMON QUA KẾT NỐI TỪ XA" cho một ngoại lệ đối với
quy tắc sau này).
Là một trường hợp đặc biệt, nếu một đối số nguồn duy nhất được chỉ định mà không có đích, các tệp
được liệt kê ở định dạng đầu ra tương tự như "ls -l".
Như mong đợi, nếu không phải đường dẫn nguồn hoặc đích chỉ định máy chủ lưu trữ từ xa, thì bản sao
xảy ra cục bộ (xem thêm - chỉ danh sách Tùy chọn).
Rsync đề cập đến phía cục bộ là "máy khách" và phía từ xa là "máy chủ". Đừng
nhầm lẫn "máy chủ" với một daemon rsync - một daemon luôn là một máy chủ, nhưng một máy chủ có thể
hoặc là một daemon hoặc một quá trình tạo vỏ từ xa.
THIẾT LẬP
Xem tệp README để biết hướng dẫn cài đặt.
Sau khi cài đặt, bạn có thể sử dụng rsync cho bất kỳ máy nào mà bạn có thể truy cập qua trình bao từ xa
(cũng như một số mà bạn có thể truy cập bằng giao thức chế độ daemon rsync). Đối với điều khiển từ xa
chuyển, một rsync hiện đại sử dụng ssh cho giao tiếp của nó, nhưng nó có thể đã được định cấu hình
để sử dụng một trình bao từ xa khác theo mặc định, chẳng hạn như rsh hoặc remsh.
Bạn cũng có thể chỉ định bất kỳ trình bao từ xa nào bạn thích, bằng cách sử dụng -e dòng lệnh
hoặc bằng cách đặt biến môi trường RSYNC_RSH.
Lưu ý rằng rsync phải được cài đặt trên cả máy nguồn và máy đích.
SỬ DỤNG
Bạn sử dụng rsync giống như cách bạn sử dụng rcp. Bạn phải chỉ định nguồn và đích,
một trong số đó có thể là điều khiển từ xa.
Có lẽ cách tốt nhất để giải thích cú pháp là với một số ví dụ:
rsync -t * .c foo: src /
Điều này sẽ chuyển tất cả các tệp phù hợp với mẫu * .c từ thư mục hiện tại sang
thư mục src trên foo máy. Nếu bất kỳ tệp nào đã tồn tại trên hệ thống từ xa
thì giao thức cập nhật từ xa rsync được sử dụng để cập nhật tệp bằng cách chỉ gửi
sự khác biệt trong dữ liệu. Lưu ý rằng việc mở rộng các ký tự đại diện trên dòng lệnh (* .c)
vào danh sách các tệp được xử lý bởi shell trước khi nó chạy rsync chứ không phải bởi chính rsync
(giống hệt như tất cả các chương trình kiểu posix khác).
rsync -avz foo: src / bar / data / tmp
Thao tác này sẽ chuyển một cách đệ quy tất cả các tệp từ thư mục src / bar trên foo máy
vào thư mục / data / tmp / bar trên máy cục bộ. Các tập tin được chuyển vào
chế độ "lưu trữ", đảm bảo rằng các liên kết tượng trưng, thiết bị, thuộc tính, quyền,
quyền sở hữu, v.v. được giữ nguyên trong quá trình chuyển nhượng. Ngoài ra, nén sẽ được sử dụng để
giảm kích thước của các phần dữ liệu của quá trình truyền.
rsync -avz foo: src / bar / / data / tmp
Dấu gạch chéo trên nguồn thay đổi hành vi này để tránh tạo thêm
cấp thư mục tại đích. Bạn có thể nghĩ về một nguồn theo sau / trên một nguồn là ý nghĩa
"sao chép nội dung của thư mục này" thay vì "sao chép thư mục theo tên", nhưng trong
cả hai trường hợp, các thuộc tính của thư mục chứa được chuyển đến
thư mục trên đích. Nói cách khác, mỗi lệnh sau đây sao chép
theo cách tương tự, bao gồm cài đặt của chúng về các thuộc tính của / dest / foo:
rsync -av / src / foo / dest
rsync -av / src / foo / / dest / foo
Cũng lưu ý rằng tham chiếu máy chủ và mô-đun không yêu cầu dấu gạch chéo ở cuối để sao chép
nội dung của thư mục mặc định. Ví dụ: cả hai đều sao chép thư mục từ xa của
nội dung thành "/ dest":
Máy chủ rsync -av: / dest
rsync -av host :: module / dest
Bạn cũng có thể sử dụng rsync ở chế độ chỉ cục bộ, trong đó cả nguồn và đích đều không
có dấu ':' trong tên. Trong trường hợp này, nó hoạt động giống như một lệnh sao chép cải tiến.
Cuối cùng, bạn có thể liệt kê tất cả các mô-đun (có thể liệt kê) có sẵn từ một daemon rsync cụ thể
bằng cách bỏ tên mô-đun:
rsync somehost.mydomain.com ::
Xem phần sau để biết thêm chi tiết.
ADVANCED SỬ DỤNG
Cú pháp để yêu cầu nhiều tệp từ một máy chủ từ xa được thực hiện bằng cách chỉ định
bổ sung các args máy chủ từ xa theo cùng kiểu với kiểu đầu tiên hoặc với tên máy chủ bị bỏ qua.
Ví dụ, tất cả những công việc này:
rsync -av host: file1: file2 host: tệp {3,4} / dest /
rsync -av host :: modname / file {1,2} host :: modname / file3 / dest /
rsync -av host :: modname / file1 :: modname / file {3,4}
Các phiên bản cũ hơn của rsync bắt buộc phải sử dụng dấu cách được trích dẫn trong SRC, như các ví dụ sau:
Máy chủ rsync -av: 'dir1 / file1 dir2 / file2' / dest
rsync host :: 'modname / dir1 / file1 modname / dir2 / file2' / dest
Tính năng tách từ này vẫn hoạt động (theo mặc định) trong rsync mới nhất, nhưng không dễ dàng như vậy
sử dụng như phương pháp đầu tiên.
Nếu bạn cần chuyển một tên tệp có chứa khoảng trắng, bạn có thể chỉ định
--bảo vệ-args (-s), hoặc bạn sẽ cần phải thoát khỏi khoảng trắng theo cách mà
shell từ xa sẽ hiểu. Ví dụ:
Máy chủ rsync -av: 'tệp \ tên \ với \ dấu cách' / đích
ĐANG KẾT NỐI ĐẾN AN RSYNC DAEMON
Cũng có thể sử dụng rsync mà không có trình bao từ xa làm phương tiện vận chuyển. Trong trường hợp này
bạn sẽ kết nối trực tiếp với daemon rsync từ xa, thường sử dụng cổng TCP 873. (Cái này
rõ ràng yêu cầu daemon phải chạy trên hệ thống từ xa, vì vậy hãy tham khảo phần KHỞI ĐỘNG
MỘT PHẦN RSYNC ĐỂ CHẤP NHẬN KẾT NỐI bên dưới để biết thông tin về điều đó.)
Sử dụng rsync theo cách này cũng giống như sử dụng nó với một trình bao từ xa ngoại trừ việc:
o bạn sử dụng dấu hai chấm :: thay vì dấu hai chấm để phân tách tên máy chủ
từ đường dẫn hoặc bạn sử dụng URL rsync: //.
o từ đầu tiên của "đường dẫn" thực sự là một tên mô-đun.
o daemon từ xa có thể in một thông báo trong ngày khi bạn kết nối.
o nếu bạn không chỉ định tên đường dẫn trên daemon từ xa thì danh sách các đường dẫn có thể truy cập
trên daemon sẽ được hiển thị.
o nếu bạn chỉ định không có điểm đến địa phương thì một danh sách các tệp được chỉ định trên
daemon từ xa được cung cấp.
o bạn không được chỉ định - khắc nghiệt (-e) Lựa chọn.
Ví dụ sao chép tất cả các tệp trong mô-đun từ xa có tên "src":
rsync -av host :: src / dest
Một số mô-đun trên daemon từ xa có thể yêu cầu xác thực. Nếu vậy, bạn sẽ nhận được một
mật khẩu nhắc khi bạn kết nối. Bạn có thể tránh lời nhắc mật khẩu bằng cách đặt
biến môi trường RSYNC_PASSWORD thành mật khẩu bạn muốn sử dụng hoặc sử dụng
--password-tệp lựa chọn. Điều này có thể hữu ích khi tập lệnh rsync.
CẢNH BÁO: Trên một số hệ thống, tất cả người dùng đều có thể nhìn thấy các biến môi trường. Trên các hệ thống đó
sử dụng --password-tệp được khuyến khích.
Bạn có thể thiết lập kết nối thông qua proxy web bằng cách đặt biến môi trường
RSYNC_PROXY tới tên máy chủ: cặp cổng trỏ đến proxy web của bạn. Lưu ý rằng web của bạn
cấu hình của proxy phải hỗ trợ kết nối proxy tới cổng 873.
Bạn cũng có thể thiết lập kết nối daemon bằng cách sử dụng một chương trình làm proxy bằng cách thiết lập
biến môi trường RSYNC_CONNECT_PROG thành các lệnh bạn muốn chạy thay vì thực hiện
kết nối ổ cắm trực tiếp. Chuỗi có thể chứa thoát "% H" để đại diện cho
tên máy chủ được chỉ định trong lệnh rsync (vì vậy hãy sử dụng "%%" nếu bạn cần một "%" trong
chuỗi). Ví dụ:
export RSYNC_CONNECT_PROG = 'ssh proxyhost nc% H 873'
rsync -av targethost1 :: module / src / / dest /
rsync -av rsync :: // targethost2 / module / src / / dest /
Lệnh được chỉ định ở trên sử dụng ssh để chạy nc (netcat) trên máy chủ proxy, chuyển tiếp tất cả
dữ liệu đến cổng 873 (daemon rsync) trên máy chủ đích (% H).
SỬ DỤNG RSYNC-DAEMON Tính năng nổi bật: VIA A TỪ XA-VỎ Liên kết
Đôi khi sẽ hữu ích khi sử dụng các tính năng khác nhau của daemon rsync (chẳng hạn như các mô-đun được đặt tên)
mà không thực sự cho phép bất kỳ kết nối ổ cắm mới nào vào hệ thống (ngoài những gì
đã được yêu cầu để cho phép truy cập trình bao từ xa). Rsync hỗ trợ kết nối với máy chủ lưu trữ bằng
một trình bao từ xa và sau đó tạo ra một máy chủ "daemon" sử dụng một lần mong đợi đọc
tập tin cấu hình trong nhà của người dùng từ xa. Điều này có thể hữu ích nếu bạn muốn mã hóa
dữ liệu của truyền kiểu daemon, nhưng vì daemon được khởi động mới bằng điều khiển từ xa
người dùng, bạn có thể không sử dụng được các tính năng như chroot hoặc thay đổi uid được sử dụng bởi
daemon. (Đối với một cách khác để mã hóa quá trình truyền daemon, hãy xem xét việc sử dụng ssh để tạo đường hầm
cổng cục bộ đến một máy từ xa và định cấu hình daemon rsync bình thường trên máy chủ từ xa đó để
chỉ cho phép các kết nối từ "localhost".)
Từ quan điểm của người dùng, việc truyền daemon thông qua kết nối remote-shell sử dụng gần như
cú pháp dòng lệnh giống như chuyển rsync-daemon thông thường, với ngoại lệ duy nhất
là bạn phải đặt chương trình shell từ xa một cách rõ ràng trên dòng lệnh với
--rsh = COMMAND lựa chọn. (Đặt RSYNC_RSH trong môi trường sẽ không bật tính năng này
chức năng.) Ví dụ:
rsync -av --rsh = ssh host :: module / dest
Nếu bạn cần chỉ định một người dùng remote-shell khác, hãy nhớ rằng tiền tố user @
phía trước máy chủ đang chỉ định giá trị rsync-user (đối với mô-đun yêu cầu
xác thực dựa trên người dùng). Điều này có nghĩa là bạn phải cung cấp tùy chọn '-l user' cho ssh
khi chỉ định remote-shell, như trong ví dụ này sử dụng phiên bản ngắn của
- khắc nghiệt tùy chọn:
rsync -av -e "ssh -l ssh-user" rsync-user @ host :: module / dest
"Ssh-user" sẽ được sử dụng ở cấp ssh; "rsync-user" sẽ được sử dụng để đăng nhập vào
"mô-đun".
BẮT ĐẦU AN RSYNC DAEMON ĐẾN CHẤP NHẬN KẾT NỐI
Để kết nối với một daemon rsync, hệ thống từ xa cần phải có một daemon
đang chạy (hoặc nó cần phải định cấu hình thứ gì đó như inetd để tạo ra một daemon rsync cho
kết nối đến trên một cổng cụ thể). Để biết thông tin đầy đủ về cách khởi động daemon
điều đó sẽ xử lý các kết nối ổ cắm đến, hãy xem rsyncd.conf(5) trang người đàn ông - đó là
tệp cấu hình cho daemon và nó chứa đầy đủ chi tiết về cách chạy daemon
(bao gồm cấu hình độc lập và inetd).
Nếu bạn đang sử dụng một trong các phương tiện truyền tải từ xa để chuyển, không cần phải
khởi động trình nền rsync theo cách thủ công.
Xếp hàng CHUYỂN KHOẢN TỰ
Rsync luôn sắp xếp các tên tệp được chỉ định vào danh sách chuyển nội bộ của nó. Điều này xử lý
việc hợp nhất với nhau nội dung của các thư mục được đặt tên giống nhau, giúp bạn dễ dàng
loại bỏ các tên tệp trùng lặp và có thể gây nhầm lẫn cho ai đó khi các tệp được chuyển trong một
khác với thứ tự được đưa ra trên dòng lệnh.
Nếu bạn cần một tệp cụ thể được chuyển trước một tệp khác, hãy tách riêng
các tệp thành các lệnh gọi rsync khác nhau hoặc cân nhắc sử dụng --delay-update (điều đó không ảnh hưởng
thứ tự chuyển được sắp xếp, nhưng không làm cho giai đoạn cập nhật tệp cuối cùng diễn ra nhiều hơn
liên tục).
VÍ DỤ
Dưới đây là một số ví dụ về cách tôi sử dụng rsync.
Để sao lưu thư mục chính của vợ tôi, bao gồm các tệp MS Word lớn và thư
thư mục, tôi sử dụng một công việc cron chạy
rsync -Cavz. arvidsjaur: sao lưu
mỗi đêm qua kết nối PPP đến một thư mục trùng lặp trên máy của tôi "arvidsjaur".
Để đồng bộ hóa cây nguồn samba của tôi, tôi sử dụng các đích Makefile sau:
được:
rsync -avuzb --exclude '* ~' samba: samba /.
đặt:
rsync -Cavuzb. samba: samba /
đồng bộ: đặt
điều này cho phép tôi đồng bộ hóa với thư mục CVS ở đầu kia của kết nối. Sau đó tôi làm
Hoạt động CVS trên máy từ xa, giúp tiết kiệm rất nhiều thời gian vì giao thức CVS từ xa
không hiệu quả lắm.
Tôi sao chép một thư mục giữa các trang ftp "cũ" và "mới" của mình bằng lệnh:
rsync -az -e ssh --delete ~ ftp / pub / samba nimbus: "~ ftp / pub / tridge"
Điều này được khởi chạy từ cron vài giờ một lần.
LỰA CHỌN TÓM TẮT
Dưới đây là một bản tóm tắt ngắn về các tùy chọn có sẵn trong rsync. Vui lòng tham khảo chi tiết
mô tả dưới đây cho một mô tả đầy đủ.
-v, --verbose tăng độ dài
--info = FLAGS chi tiết thông tin chi tiết
--debug = FLAGS chi tiết gỡ lỗi chi tiết
--msgs2stderr xử lý đầu ra đặc biệt để gỡ lỗi
-q, --quiet ngăn chặn các thông báo không lỗi
--no-motd ngăn chặn chế độ daemon MOTD (xem cảnh báo)
-c, --checksum bỏ qua dựa trên tổng kiểm tra, không phải mod-time & size
-a, - chế độ lưu trữ lưu trữ; bằng -rlptgoD (không có -H, -A, -X)
--no-OPTION tắt một TÙY CHỌN ngụ ý (ví dụ --no-D)
-r, - đệ quy phản hồi vào thư mục
-R, - tương đối sử dụng tên đường dẫn tương đối
--no-ngụ ý-dirs không gửi dirs ngụ ý với - tương đối
-b, - sao lưu tạo bản sao lưu (xem --suffix & --backup-dir)
--backup-dir = DIR thực hiện sao lưu vào hệ thống phân cấp dựa trên DIR
--suffix = Hậu tố sao lưu SUFFIX (mặc định ~ w / o --backup-dir)
-u, - cập nhật các tệp bỏ qua mới hơn trên bộ thu
--inplace cập nhật tệp đích tại chỗ
--append nối thêm dữ liệu vào các tệp ngắn hơn
--append-verify - thêm w / dữ liệu cũ vào tệp kiểm tra
-d, --dirs chuyển thư mục mà không cần đệ quy
-l, --links sao chép các liên kết tượng trưng dưới dạng liên kết tượng trưng
-L, --copy-links chuyển đổi liên kết tượng trưng thành tệp tham chiếu / dir
--copy-secure-links chỉ những liên kết tượng trưng "không an toàn" mới được chuyển đổi
--safe-links bỏ qua các liên kết tượng trưng trỏ ra bên ngoài cây
--munge-links munge các liên kết tượng trưng để làm cho chúng an toàn hơn
-k, --copy-dirlinks chuyển đổi liên kết tượng trưng thành dir thành dir tham chiếu
-K, --keep-dirlinks coi dir được liên kết tượng trưng trên máy thu là dir
-H, - liên kết cứng bảo vệ liên kết cứng
-p, --perms bảo toàn quyền
-E, --executability duy trì khả năng thực thi
--chmod = CHMOD ảnh hưởng đến quyền đối với tệp và / hoặc thư mục
-A, --ls bảo toàn ACL (ngụ ý -p)
-X, --xatt bảo tồn các thuộc tính mở rộng
-o, - chủ sở hữu bảo tồn chủ sở hữu (chỉ dành cho người dùng cấp cao)
-g, - nhóm bảo toàn nhóm
--devices lưu giữ các tệp thiết bị (chỉ dành cho người dùng cấp cao)
--specials bảo quản các tệp đặc biệt
-Dương tự như - thiết bị - đặc biệt
-t, --times bảo toàn thời gian sửa đổi
-O, --omit-dir-times bỏ qua các thư mục từ --times
-J, --omit-link-times bỏ qua các liên kết tượng trưng khỏi --times
- người nhận siêu cố gắng thực hiện các hoạt động của siêu người dùng
--fake-super store / phục hồi các tập tin đặc quyền bằng cách sử dụng xatt
-S, --sparse xử lý các tệp thưa thớt một cách hiệu quả
- phân bổ trước phân bổ các tệp đích trước khi ghi
-n, --dry-run thực hiện chạy thử mà không có thay đổi nào được thực hiện
-W, --whole-tệp sao chép toàn bộ tệp (thuật toán w / o delta-xfer)
-x, --one-file-system không vượt qua ranh giới hệ thống tệp
-B, --block-size = SIZE buộc kích thước khối tổng kiểm tra cố định
-e, --rsh = COMMAND chỉ định trình bao từ xa để sử dụng
--rsync-path = PROGRAM chỉ định rsync để chạy trên máy từ xa
- bỏ qua hiện tại tạo tệp mới trên máy thu
--các tệp cập nhật bỏ qua không tồn tại tồn tại trên bộ thu
--remove-source-files sender xóa các tệp được đồng bộ hóa (non-dir)
--del một bí danh cho --delete-trong
--delete xóa các tệp không liên quan khỏi dirs đích
--delete-before receiver xóa trước xfer, không phải trong
--delete-while receiver sẽ xóa trong quá trình truyền
--delete-delay tìm xóa trong khi xóa sau
--delete-after receiver sẽ xóa sau khi chuyển, không phải trong
- xóa-loại trừ cũng xóa các tệp bị loại trừ khỏi dirs đích
--ignore-thiếu-args bỏ qua các vòng nguồn bị thiếu mà không có lỗi
--delete-thiếu-args xóa các args nguồn bị thiếu khỏi đích
--ignore-error xóa ngay cả khi có lỗi I / O
- buộc xóa dirs ngay cả khi không có sản phẩm nào
--max-delete = NUM không xóa nhiều hơn NUM tệp
--max-size = SIZE không chuyển bất kỳ tệp nào lớn hơn SIZE
--min-size = SIZE không chuyển bất kỳ tệp nào nhỏ hơn SIZE
--partial giữ các tệp đã chuyển một phần
--partial-dir = DIR đưa một tệp được chuyển một phần vào DIR
--delay-Updates đưa tất cả các tệp cập nhật vào vị trí cuối cùng
-m, --prune-blank-dirs lược bớt chuỗi thư mục trống khỏi danh sách tệp
--numeric-id không ánh xạ các giá trị uid / gid theo tên người dùng / nhóm
--usermap = STRING ánh xạ tên người dùng tùy chỉnh
--groupmap = STRING ánh xạ tên nhóm tùy chỉnh
--chown = USER: Ánh xạ tên người dùng / tên nhóm đơn giản GROUP
--timeout = SECONDS đặt thời gian chờ I / O tính bằng giây
--contimeout = SECONDS đặt thời gian chờ kết nối daemon tính bằng giây
-Tôi, --ignore-times đừng bỏ qua các tệp phù hợp với kích thước và thời gian
- chỉ bỏ qua kích thước các tệp phù hợp với kích thước
--modify-window = NUM so sánh các lần sửa đổi với độ chính xác giảm
-T, --temp-dir = DIR tạo các tệp tạm thời trong thư mục DIR
-y, --fuzzy tìm tệp tương tự để làm cơ sở nếu không có tệp đích
--compare-dest = DIR cũng so sánh các tệp đã nhận liên quan đến DIR
--copy-dest = DIR ... và bao gồm các bản sao của các tệp không thay đổi
--link-dest = DIR liên kết cứng đến các tệp trong DIR khi không thay đổi
-z, --compress nén dữ liệu tệp trong quá trình truyền
--compress-level = NUM đặt mức nén rõ ràng
--skip-wrapper = LIST bỏ qua việc nén các tệp có hậu tố trong LIST
-C, --cvs-loại trừ các tệp tự động bỏ qua theo cách giống như CVS
-f, --filter = RULE thêm một RULE lọc tệp
-F giống như --filter = 'dir-merge /.rsync-filter'
lặp lại: --filter = '- .rsync-filter'
--exclude = PATTERN loại trừ các tệp phù hợp với PATTERN
--exclude-from = FILE đọc loại trừ các mẫu khỏi FILE
--include = PATTERN không loại trừ các tệp phù hợp với PATTERN
--include-from = FILE đọc bao gồm các mẫu từ FILE
--files-from = FILE đọc danh sách tên tệp nguồn từ FILE
-0, --from0 tất cả các tệp * từ / bộ lọc được phân cách bằng 0s
-s, --protect-args không phân tách khoảng trắng; chỉ ký tự đại diện
--address = ADDRESS liên kết địa chỉ cho socket gửi đi với daemon
--port = PORT chỉ định số cổng thay thế dấu hai chấm
--sockopts = OPTIONS chỉ định các tùy chọn TCP tùy chỉnh
--blocking-io sử dụng chặn I / O cho trình bao từ xa
--outbuf = N | L | B đặt bộ đệm cho Không, Dòng hoặc Chặn
--stats cung cấp một số số liệu thống kê về quá trình truyền tệp
-8, --8-bit-output để lại các ký tự bit cao không thoát trong đầu ra
-h, - số đầu ra có thể đọc được của con người ở định dạng con người có thể đọc được
- tiến độ hiển thị trong quá trình chuyển
-P giống như --partial --progress
-i, --itemize-changes xuất bản tóm tắt thay đổi cho tất cả các bản cập nhật
-M, --remote-option = OPTION chỉ gửi OPTION đến phía điều khiển từ xa
--out-format = FORMAT cập nhật đầu ra bằng cách sử dụng FORMAT được chỉ định
--log-file = FILE ghi lại những gì chúng ta đang làm vào FILE được chỉ định
--log-file-format = Cập nhật nhật ký FMT bằng FMT được chỉ định
--password-file = FILE đọc mật khẩu truy cập daemon từ FILE
- chỉ liệt kê danh sách các tệp thay vì sao chép chúng
--bwlimit = Băng thông I / O ổ cắm giới hạn RATE
--write-batch = FILE ghi một bản cập nhật hàng loạt vào FILE
--only-write-batch = FILE like --write-batch but w / o update dest
--read-batch = FILE đọc một bản cập nhật hàng loạt từ FILE
--protocol = NUM buộc sử dụng phiên bản giao thức cũ hơn
--iconv = CONVERT_SPEC yêu cầu chuyển đổi bộ ký tự của tên tệp
--checksum-seed = NUM set block / file checksum seed (nâng cao)
-4, --ipv4 thích IPv4 hơn
-6, --ipv6 thích IPv6 hơn
- số phiên bản in phiên bản
(-h) --help hiển thị trợ giúp này (xem bên dưới để biết nhận xét -h)
Rsync cũng có thể được chạy dưới dạng daemon, trong trường hợp này, các tùy chọn sau được chấp nhận:
--daemon chạy như một daemon rsync
--address = ADDRESS liên kết với địa chỉ được chỉ định
--bwlimit = Băng thông I / O ổ cắm giới hạn RATE
--config = FILE chỉ định tệp rsyncd.conf thay thế
-M, --dparam = OVERRIDE ghi đè tham số cấu hình daemon chung
--không tách rời không tách rời khỏi phụ huynh
--port = PORT lắng nghe số cổng thay thế
--log-file = FILE ghi đè cài đặt "tệp nhật ký"
--log-file-format = FMT ghi đè cài đặt "định dạng nhật ký"
--sockopts = OPTIONS chỉ định các tùy chọn TCP tùy chỉnh
-v, --verbose tăng độ dài
-4, --ipv4 thích IPv4 hơn
-6, --ipv6 thích IPv6 hơn
-h, --help hiển thị trợ giúp này (nếu được sử dụng sau --daemon)
LỰA CHỌN
Rsync chấp nhận cả hai tùy chọn dài (dấu gạch ngang + từ) và ngắn (dấu gạch ngang + chữ cái).
Danh sách đầy đủ các tùy chọn có sẵn được mô tả bên dưới. Nếu một tùy chọn có thể được chỉ định
theo nhiều cách, các lựa chọn được phân tách bằng dấu phẩy. Một số tùy chọn chỉ có một dài
biến thể, không phải là ngắn. Nếu tùy chọn nhận một tham số, tham số chỉ được liệt kê sau
biến thể dài, mặc dù nó cũng phải được chỉ định cho biến thể ngắn. Khi chỉ định một
, bạn có thể sử dụng dạng --option = param hoặc thay thế '=' bằng khoảng trắng.
Tham số có thể cần được trích dẫn theo một cách nào đó để nó tồn tại trong shell
phân tích cú pháp dòng lệnh. Hãy nhớ rằng dấu ngã đứng đầu (~) trong tên tệp được thay thế
bởi shell của bạn, vì vậy --option =~ / foo sẽ không thay đổi dấu ngã trong thư mục chính của bạn
(bỏ dấu '=' cho điều đó).
--Cứu giúp In trang trợ giúp ngắn mô tả các tùy chọn có sẵn trong rsync và thoát. Vì
tương thích ngược với các phiên bản rsync cũ hơn, trợ giúp cũng sẽ được xuất ra
nếu bạn sử dụng -h tùy chọn mà không có bất kỳ args nào khác.
--phiên bản
in số phiên bản rsync và thoát.
-v, --dài dòng
Tùy chọn này làm tăng lượng thông tin bạn được cung cấp trong quá trình chuyển.
Theo mặc định, rsync hoạt động âm thầm. Một đơn -v sẽ cung cấp cho bạn thông tin về những gì
các tệp đang được chuyển và một bản tóm tắt ngắn gọn ở cuối. Hai -v tùy chọn sẽ
cung cấp cho bạn thông tin về những tệp nào đang bị bỏ qua và thêm một chút thông tin
cuối cùng. Hơn hai -v các tùy chọn chỉ nên được sử dụng nếu bạn đang gỡ lỗi
rsync.
Trong một rsync hiện đại, -v tùy chọn tương đương với việc thiết lập các nhóm --thông tin
và --gỡ lỗi tùy chọn. Ngoài ra, bạn có thể chọn sử dụng các tùy chọn mới hơn này hoặc
ở nơi sử dụng --dài dòng, vì bất kỳ cài đặt chi tiết nào sẽ ghi đè lên
cài đặt của -v. Cả hai --thông tin và --gỡ lỗi có một cách để yêu cầu sự giúp đỡ cho bạn biết
chính xác những cờ nào được đặt cho mỗi lần tăng độ dài.
Tuy nhiên, hãy nhớ rằng cài đặt "độ dài tối đa" của daemon sẽ giới hạn cách
ở mức cao, các cờ riêng lẻ khác nhau có thể được đặt ở phía daemon. Vì
ví dụ, nếu giá trị tối đa là 2, thì mọi thông tin và / hoặc cờ gỡ lỗi được đặt thành cao hơn
giá trị hơn những gì sẽ được đặt bởi -vv sẽ bị hạ cấp xuống -vv mức độ trong
ghi nhật ký của daemon.
--info = CỜ
Tùy chọn này cho phép bạn kiểm soát chi tiết đối với đầu ra thông tin bạn muốn
nhìn. Một tên cờ riêng lẻ có thể được theo sau bởi một số cấp, với 0 ý nghĩa
để tắt đầu ra đó, 1 là mức đầu ra mặc định và các số cao hơn
tăng đầu ra của cờ đó (đối với những cờ hỗ trợ cấp cao hơn). Sử dụng
--info = trợ giúp để xem tất cả các tên cờ có sẵn, những gì chúng xuất ra và cờ nào
tên được thêm vào mỗi lần tăng cấp độ chi tiết. Vài ví dụ:
rsync -a --info = process2 src / dest /
rsync -avv --info = stats2, misc1, flist0 src / dest /
Lưu ý rằng --info = tênđầu ra của bị ảnh hưởng bởi - định dạng ngoài và
--itemize-thay đổi (-i) tùy chọn. Xem các tùy chọn đó để biết thêm thông tin về
đầu ra và khi nào.
Tùy chọn này đã được thêm vào 3.1.0, vì vậy rsync cũ hơn ở phía máy chủ có thể từ chối
nỗ lực của bạn trong việc kiểm soát chi tiết (nếu một hoặc nhiều cờ cần được gửi đến
máy chủ và máy chủ đã quá cũ để hiểu chúng). Xem thêm "tối đa
verbosity "cảnh báo ở trên khi xử lý daemon.
--debug = CỜ
Tùy chọn này cho phép bạn có quyền kiểm soát chi tiết đối với đầu ra gỡ lỗi mà bạn muốn
Thấy chưa. Một tên cờ riêng lẻ có thể được theo sau bởi một số cấp, với 0 nghĩa là
tắt đầu ra đó, 1 là mức đầu ra mặc định và các số cao hơn
tăng đầu ra của cờ đó (đối với những cờ hỗ trợ cấp cao hơn). Sử dụng
--debug = trợ giúp để xem tất cả các tên cờ có sẵn, những gì chúng xuất ra và cờ nào
tên được thêm vào mỗi lần tăng cấp độ chi tiết. Vài ví dụ:
rsync -avvv --debug = none src / dest /
rsync -avA --del --debug = del2, acl src / dest /
Lưu ý rằng một số thông báo gỡ lỗi sẽ chỉ được xuất khi --msgs2stderr được quy định,
đặc biệt là những gì liên quan đến I / O và gỡ lỗi bộ đệm.
Tùy chọn này đã được thêm vào 3.1.0, vì vậy rsync cũ hơn ở phía máy chủ có thể từ chối
nỗ lực của bạn trong việc kiểm soát chi tiết (nếu một hoặc nhiều cờ cần được gửi đến
máy chủ và máy chủ đã quá cũ để hiểu chúng). Xem thêm "tối đa
verbosity "cảnh báo ở trên khi xử lý daemon.
--msgs2stderr
Tùy chọn này thay đổi rsync để gửi tất cả đầu ra của nó trực tiếp tới stderr thay vì
gửi tin nhắn đến phía máy khách thông qua giao thức (giao thức này thường xuất ra thông tin
tin nhắn qua stdout). Điều này chủ yếu nhằm gỡ lỗi để tránh
thay đổi dữ liệu được gửi qua giao thức, vì dữ liệu giao thức bổ sung có thể thay đổi
những gì đang được thử nghiệm. Hãy nhớ rằng một kết nối daemon không có trình ký tự
kênh để gửi tin nhắn trở lại phía khách hàng, vì vậy nếu bạn đang làm bất kỳ
gỡ lỗi daemon-transfer bằng cách sử dụng tùy chọn này, bạn nên khởi động một daemon bằng
- không tách rời để bạn có thể thấy đầu ra stderr ở phía daemon.
Tùy chọn này có tác dụng phụ là làm cho đầu ra stderr được đệm dòng để
việc hợp nhất đầu ra của 3 chương trình diễn ra theo cách dễ đọc hơn.
-NS, --Yên lặng
Tùy chọn này làm giảm lượng thông tin bạn được cung cấp trong quá trình chuyển,
đáng chú ý là ngăn chặn các thông báo thông tin từ máy chủ từ xa. Tùy chọn này là
hữu ích khi gọi rsync từ cron.
--không-motd
Tùy chọn này ảnh hưởng đến thông tin do máy khách xuất ra khi bắt đầu
chuyển daemon. Điều này ngăn chặn văn bản tin nhắn trong ngày (MOTD), nhưng nó cũng
ảnh hưởng đến danh sách các mô-đun mà daemon gửi để phản hồi lại "máy chủ rsync ::"
yêu cầu (do một giới hạn trong giao thức rsync), vì vậy hãy bỏ qua tùy chọn này nếu bạn
muốn yêu cầu danh sách các mô-đun từ daemon.
-TÔI, --ignore-lần
Thông thường rsync sẽ bỏ qua bất kỳ tệp nào đã có cùng kích thước và có cùng
dấu thời gian sửa đổi. Tùy chọn này tắt hành vi "kiểm tra nhanh" này, khiến
tất cả các tệp sẽ được cập nhật.
--size-chỉ
Điều này sửa đổi thuật toán "kiểm tra nhanh" của rsync để tìm các tệp cần
đã chuyển, thay đổi nó từ mặc định là chuyển tệp bằng một
đã thay đổi kích thước hoặc thời gian sửa đổi lần cuối đã thay đổi để chỉ tìm kiếm các tệp có
thay đổi kích thước. Điều này hữu ích khi bắt đầu sử dụng rsync sau khi sử dụng
hệ thống phản chiếu có thể không bảo toàn chính xác dấu thời gian.
- cửa sổ sửa đổi
Khi so sánh hai dấu thời gian, rsync coi các dấu thời gian là bằng nhau nếu chúng
khác nhau không quá giá trị cửa sổ sửa đổi. Đây thường là 0 (chính xác là
khớp), nhưng bạn có thể thấy hữu ích khi đặt giá trị này thành giá trị lớn hơn trong một số
các tình huống. Đặc biệt, khi chuyển đến hoặc từ MS Windows FAT
hệ thống tệp (đại diện cho thời gian với độ phân giải 2 giây), --modify-window = 1
rất hữu ích (cho phép thời gian chênh lệch nhau tối đa 1 giây).
-NS, --tổng kiểm tra
Điều này thay đổi cách rsync kiểm tra xem các tệp đã được thay đổi và cần
một người dịch giả. Nếu không có tùy chọn này, rsync sử dụng "kiểm tra nhanh" (theo mặc định)
kiểm tra xem kích thước của mỗi tệp và thời gian sửa đổi lần cuối có khớp giữa người gửi hay không
và người nhận. Tùy chọn này thay đổi điều này để so sánh tổng kiểm tra 128 bit cho mỗi tệp
có kích thước phù hợp. Tạo tổng kiểm tra có nghĩa là cả hai bên sẽ
sử dụng rất nhiều I / O đĩa để đọc tất cả dữ liệu trong các tệp trong quá trình truyền (và
đây là trước bất kỳ bài đọc nào sẽ được thực hiện để chuyển các tệp đã thay đổi), vì vậy điều này
có thể làm mọi thứ chậm lại đáng kể.
Bên gửi tạo tổng kiểm tra của nó trong khi nó đang thực hiện quét hệ thống tệp
xây dựng danh sách các tệp có sẵn. Người nhận tạo tổng kiểm tra của nó
khi nó đang quét các tệp đã thay đổi và sẽ kiểm tra bất kỳ tệp nào có cùng
kích thước như tệp của người gửi tương ứng: tệp có kích thước đã thay đổi hoặc
tổng kiểm tra đã thay đổi được chọn để chuyển.
Lưu ý rằng rsync luôn xác minh rằng mỗi chuyển tệp đã được chính xác
được tạo lại ở phía nhận bằng cách kiểm tra tổng kiểm tra toàn bộ tệp đó là
được tạo khi tệp được chuyển, nhưng tự động sau khi chuyển
xác minh không liên quan gì đến tùy chọn này trước khi chuyển giao "Điều này có
tập tin cần được cập nhật? "
Đối với giao thức 30 trở lên (được hỗ trợ lần đầu trong 3.0.0), tổng kiểm tra được sử dụng là MD5.
Đối với các giao thức cũ hơn, tổng kiểm tra được sử dụng là MD4.
-một, --lưu trữ
Điều này tương đương với -rlptgoD. Đó là một cách nhanh chóng để nói rằng bạn muốn đệ quy và
muốn bảo toàn hầu hết mọi thứ (với -H là một thiếu sót đáng chú ý). Duy nhất
ngoại lệ đối với sự tương đương ở trên là khi --files-từ được chỉ định, trong trường hợp đó
-r không được ngụ ý.
Lưu ý rằng -a làm không bảo tồn liên kết cứng, bởi vì việc tìm kiếm các tệp được liên kết nhiều lần là
đắt. Bạn phải chỉ định riêng -H.
--không có tùy chọn
Bạn có thể tắt một hoặc nhiều tùy chọn ngụ ý bằng cách thêm tiền tố vào tên tùy chọn bằng
"không-". Không phải tất cả các tùy chọn đều có thể có tiền tố là "no-": chỉ các tùy chọn được ngụ ý
bằng các tùy chọn khác (ví dụ: --không-D, --không có quyền) hoặc có các giá trị mặc định khác nhau trong các
hoàn cảnh (ví dụ - không có toàn bộ tệp, --no-block-io, --không có thư mục). Bạn có thể chỉ định
tên tùy chọn ngắn hoặc dài sau tiền tố "no-" (ví dụ: --cũng không là
giống như --không họ hàng).
Ví dụ: nếu bạn muốn sử dụng -a (--lưu trữ) nhưng không muốn -o (--chủ nhân), thay thế
chuyển đổi -a trong -rlptgD, bạn có thể chỉ định -a - không (Hoặc -a - không có chủ sở hữu).
Thứ tự của các tùy chọn là quan trọng: nếu bạn chỉ định --cũng không -a, Các -r tùy chọn
cuối cùng sẽ được bật, ngược lại với -a --cũng không. Cũng lưu ý rằng
tác dụng phụ của --files-từ tùy chọn KHÔNG có vị trí, vì nó ảnh hưởng đến
trạng thái mặc định của một số tùy chọn và thay đổi một chút ý nghĩa của -a (Xem
--files-từ để biết thêm chi tiết).
-NS, --đệ quy
Điều này yêu cầu rsync sao chép các thư mục một cách đệ quy. Xem thêm --dir (-d).
Bắt đầu với rsync 3.0.0, thuật toán đệ quy được sử dụng bây giờ là một quá trình quét gia tăng
sử dụng ít bộ nhớ hơn nhiều so với trước đây và bắt đầu chuyển sau khi quét
trong số một số thư mục đầu tiên đã được hoàn thành. Chỉ quét gia tăng này
ảnh hưởng đến thuật toán đệ quy của chúng tôi và không thay đổi chuyển giao không đệ quy. Nó
cũng chỉ có thể thực hiện được khi cả hai đầu của quá trình chuyển giao ít nhất là phiên bản 3.0.0.
Một số tùy chọn yêu cầu rsync để biết danh sách tệp đầy đủ, vì vậy các tùy chọn này vô hiệu hóa
chế độ đệ quy tăng dần. Bao gồm các: --xóa trước đó, --xóa-sau,
--prune-rỗng-dirsvà --delay-update. Do đó, chế độ xóa mặc định
khi bạn chỉ định --xóa bỏ bây giờ là --xóa trong thời gian khi cả hai đầu của kết nối
ít nhất là 3.0.0 (sử dụng --del or --xóa trong thời gian để yêu cầu xóa cải tiến này
chế độ rõ ràng). Xem thêm --xóa-độ trễ lựa chọn đó là một lựa chọn tốt hơn
sử dụng --xóa-sau.
Đệ quy tăng dần có thể bị vô hiệu hóa bằng cách sử dụng - không có đệ quy tùy chọn hoặc của nó
ngắn hơn --no-ir bí danh.
-NS, --quan hệ
Sử dụng các đường dẫn tương đối. Điều này có nghĩa là tên đường dẫn đầy đủ được chỉ định trên lệnh
được gửi đến máy chủ thay vì chỉ những phần cuối cùng của tên tệp. Điều này
đặc biệt hữu ích khi bạn muốn gửi một số thư mục khác nhau tại
cùng thời gian. Ví dụ: nếu bạn sử dụng lệnh này:
rsync -av /foo/bar/baz.c từ xa:/ tmp /
... điều này sẽ tạo một tệp có tên baz.c trong / tmp / trên máy từ xa. Nếu thay vào đó
bạn đã dùng
rsync -avR /foo/bar/baz.c từ xa:/ tmp /
thì một tệp có tên /tmp/foo/bar/baz.c sẽ được tạo trên máy điều khiển từ xa,
bảo toàn đường đi của nó. Các phần tử đường dẫn bổ sung này được gọi là "ngụ ý
thư mục "(tức là thư mục" foo "và" foo / bar "trong ví dụ trên).
Bắt đầu với rsync 3.0.0, rsync luôn gửi các thư mục ngụ ý này như thực
các thư mục trong danh sách tệp, ngay cả khi phần tử đường dẫn thực sự là một liên kết tượng trưng trên
bên gửi. Điều này ngăn chặn một số hành vi thực sự không mong muốn khi sao chép toàn bộ
đường dẫn của một tệp mà bạn không nhận ra rằng có một liên kết tượng trưng trong đường dẫn của nó. Nếu bạn muốn
sao chép liên kết tượng trưng phía máy chủ, bao gồm cả liên kết biểu tượng thông qua đường dẫn của nó và
thư mục tham chiếu thông qua đường dẫn thực của nó. Nếu bạn đang xử lý một rsync cũ hơn trên
bên gửi, bạn có thể cần sử dụng --no-ngụ ý-dirs tùy chọn.
Cũng có thể giới hạn số lượng thông tin đường dẫn được gửi như ngụ ý
thư mục cho mỗi đường dẫn bạn chỉ định. Với rsync hiện đại ở phía gửi
(bắt đầu bằng 2.6.7), bạn có thể chèn một dấu chấm và một dấu gạch chéo vào đường dẫn nguồn, như
điều này:
rsync -avR /foo/./bar/baz.c từ xa:/ tmp /
Điều đó sẽ tạo /tmp/bar/baz.c trên máy tính từ xa. (Lưu ý rằng dấu chấm phải là
theo sau là dấu gạch chéo, vì vậy "/ foo /." sẽ không được viết tắt.) Đối với rsync cũ hơn
phiên bản, bạn sẽ cần sử dụng chdir để giới hạn đường dẫn nguồn. Ví dụ,
khi đẩy tệp:
(cd / foo; rsync -avR bar / baz.c từ xa:/ tmp /)
(Lưu ý rằng các parens đặt hai lệnh vào một trình bao con, để "cd"
lệnh không còn hiệu lực cho các lệnh trong tương lai.) Nếu bạn đang kéo tệp
từ một rsync cũ hơn, hãy sử dụng thành ngữ này (nhưng chỉ đối với chuyển giao không phải daemon):
rsync -avR --rsync-path="cd /foo; rsync"
điều khiển từ xa: bar / baz.c / tmp /
--no-ngụ ý-dirs
Tùy chọn này ảnh hưởng đến hành vi mặc định của --quan hệ lựa chọn. Khi nó là
được chỉ định, các thuộc tính của các thư mục ngụ ý từ các tên nguồn không
bao gồm trong chuyển nhượng. Điều này có nghĩa là các phần tử đường dẫn tương ứng trên
hệ thống đích không thay đổi nếu chúng tồn tại và bất kỳ hàm ý bị thiếu nào
thư mục được tạo với các thuộc tính mặc định. Điều này thậm chí còn cho phép những
các phần tử đường dẫn có sự khác biệt lớn, chẳng hạn như là một liên kết tượng trưng đến một thư mục trên
bên nhận.
Ví dụ: nếu một đối số dòng lệnh hoặc một mục từ tệp yêu cầu rsync chuyển
tệp "đường dẫn / foo / tệp", các thư mục "đường dẫn" và "đường dẫn / foo" được ngụ ý khi
--quan hệ Được sử dụng. Nếu "path / foo" là một liên kết tượng trưng với "bar" trên hệ thống đích,
rsync nhận thông thường sẽ xóa "path / foo", tạo lại nó dưới dạng một thư mục,
và nhận tệp vào thư mục mới. Với --no-ngụ ý-dirs, Việc tiếp nhận
rsync cập nhật "path / foo / file" bằng cách sử dụng các phần tử đường dẫn hiện có, có nghĩa là
tệp cuối cùng sẽ được tạo trong "đường dẫn / thanh". Một cách khác để thực hiện liên kết này
bảo quản là sử dụng --keep-dirlinks tùy chọn (cũng sẽ ảnh hưởng đến các liên kết tượng trưng
đến các thư mục trong phần còn lại của quá trình chuyển giao).
Khi kéo tệp từ rsync cũ hơn 3.0.0, bạn có thể cần sử dụng tùy chọn này
nếu phía gửi có một liên kết tượng trưng trong đường dẫn bạn yêu cầu và bạn muốn
các thư mục được chuyển như các thư mục bình thường.
-NS, --sao lưu
Với tùy chọn này, các tệp đích đã có trước được đổi tên như mỗi tệp là
đã chuyển hoặc đã xóa. Bạn có thể kiểm soát nơi tệp sao lưu đi và những gì (nếu
bất kỳ) hậu tố được thêm vào bằng cách sử dụng - backup-dir và --hậu tố tùy chọn.
Lưu ý rằng nếu bạn không chỉ định - backup-dir, (1) cái --omit-dir-lần tùy chọn sẽ
được ngụ ý, và (2) nếu --xóa bỏ cũng có hiệu lực (không có - loại trừ bị loại trừ),
rsync sẽ thêm quy tắc bộ lọc "bảo vệ" cho hậu tố sao lưu vào cuối tất cả
loại trừ hiện tại (ví dụ: -f "P * ~ "). Điều này sẽ ngăn các tệp đã sao lưu trước đó
khỏi bị xóa. Lưu ý rằng nếu bạn đang cung cấp các quy tắc lọc của riêng mình, bạn có thể
cần phải chèn thủ công quy tắc loại trừ / bảo vệ của riêng bạn ở đâu đó cao hơn trong
liệt kê để nó có mức độ ưu tiên đủ cao để có hiệu quả (ví dụ: nếu các quy tắc của bạn
chỉ định bao gồm / loại trừ sau cùng của '*', quy tắc được thêm tự động sẽ không bao giờ
đạt).
--backup-dir = DIR
Kết hợp với --sao lưu tùy chọn này yêu cầu rsync lưu trữ tất cả các bản sao lưu trong
thư mục được chỉ định ở phía nhận. Điều này có thể được sử dụng để tăng dần
các bản sao lưu. Ngoài ra, bạn có thể chỉ định một hậu tố dự phòng bằng cách sử dụng --hậu tố tùy chọn
(nếu không, các tệp được sao lưu trong thư mục được chỉ định sẽ giữ nguyên bản gốc của chúng
tên tệp).
Lưu ý rằng nếu bạn chỉ định một đường dẫn tương đối, thì thư mục sao lưu sẽ tương đối với
thư mục đích, vì vậy bạn có thể muốn chỉ định một đường dẫn tuyệt đối
hoặc đường dẫn bắt đầu bằng "../". Nếu một daemon rsync là bộ thu, thì bản sao lưu
dir không thể đi ra ngoài hệ thống phân cấp đường dẫn của mô-đun, vì vậy hãy hết sức cẩn thận để không xóa
nó hoặc sao chép vào nó.
--suffix = SUFFIX
Tùy chọn này cho phép bạn ghi đè hậu tố sao lưu mặc định được sử dụng với --sao lưu
(-b) lựa chọn. Hậu tố mặc định là ~ nếu không --sao lưu-dir đã được chỉ định, nếu không
nó là một chuỗi rỗng.
-bạn, - cập nhật
Điều này buộc rsync bỏ qua bất kỳ tệp nào tồn tại trên đích và có
thời gian sửa đổi mới hơn so với tệp nguồn. (Nếu một tệp đích hiện có
có thời gian sửa đổi bằng với thời gian của tệp nguồn, nó sẽ được cập nhật nếu kích thước
khác nhau.)
Lưu ý rằng điều này không ảnh hưởng đến việc sao chép dirs, liên kết tượng trưng hoặc các đặc biệt khác
các tập tin. Ngoài ra, sự khác biệt về định dạng tệp giữa người gửi và người nhận luôn là
được coi là đủ quan trọng đối với một bản cập nhật, bất kể ngày nào là trên
các đối tượng. Nói cách khác, nếu nguồn có thư mục nơi đích có
, quá trình chuyển sẽ diễn ra bất kể dấu thời gian.
Tùy chọn này là quy tắc chuyển, không phải là loại trừ, vì vậy nó không ảnh hưởng đến dữ liệu
đi vào danh sách tệp và do đó nó không ảnh hưởng đến việc xóa. Nó chỉ giới hạn
các tệp mà người nhận yêu cầu được chuyển.
--nơi
Tùy chọn này thay đổi cách rsync truyền tệp khi dữ liệu của nó cần được cập nhật:
thay vì phương pháp mặc định để tạo một bản sao mới của tệp và chuyển nó vào
đặt khi nó hoàn tất, thay vào đó rsync ghi trực tiếp dữ liệu cập nhật vào
tệp đích.
Điều này có một số tác dụng:
o Các liên kết cứng không bị phá vỡ. Điều này có nghĩa là dữ liệu mới sẽ được hiển thị thông qua
các liên kết cứng khác đến tệp đích. Hơn nữa, cố gắng sao chép
khác nhau giữa các tệp nguồn với một tệp đích được liên kết nhiều lần sẽ dẫn đến
trong một cuộc "giằng co" với dữ liệu đích thay đổi qua lại.
o Không thể cập nhật các mã nhị phân đang sử dụng (hoặc Hệ điều hành sẽ ngăn điều này
đang xảy ra hoặc các tệp nhị phân cố gắng hoán đổi dữ liệu của họ sẽ hoạt động sai hoặc
tai nạn).
o Dữ liệu của tệp sẽ ở trạng thái không nhất quán trong quá trình chuyển và
sẽ được để theo cách đó nếu quá trình truyền bị gián đoạn hoặc nếu cập nhật không thành công.
o Không thể cập nhật tệp rsync không thể ghi vào. Trong khi một siêu người dùng có thể
cập nhật bất kỳ tệp nào, người dùng bình thường cần được cấp quyền ghi đối với
mở tệp để ghi thành công.
o Hiệu quả của thuật toán chuyển delta của rsync có thể bị giảm nếu một số
dữ liệu trong tệp đích bị ghi đè trước khi nó có thể được sao chép vào
vị trí sau đó trong tệp. Điều này không áp dụng nếu bạn sử dụng --sao lưu, vì
rsync đủ thông minh để sử dụng tệp sao lưu làm tệp cơ sở cho
chuyển khoản.
CẢNH BÁO: bạn không nên sử dụng tùy chọn này để cập nhật các tệp đang được truy cập bởi
những người khác, vì vậy hãy cẩn thận khi chọn sử dụng cái này cho một bản sao.
Tùy chọn này hữu ích để chuyển các tệp lớn với các thay đổi dựa trên khối hoặc
dữ liệu nối và cả trên các hệ thống được liên kết đĩa, không liên kết mạng. Nó có thể
cũng giúp giữ cho ảnh chụp nhanh hệ thống tệp sao chép-ghi-chép khỏi phân tách toàn bộ
nội dung của một tệp chỉ có những thay đổi nhỏ.
Tùy chọn ngụ ý - một phần (vì quá trình chuyển bị gián đoạn không xóa
tệp), nhưng xung đột với --partial-dir và --delay-update. Trước rsync 2.6.4
--nơi cũng không tương thích với - so sánh-đích và --link-đích.
--endend
Điều này khiến rsync cập nhật tệp bằng cách thêm dữ liệu vào cuối tệp,
giả định rằng dữ liệu đã tồn tại ở phía nhận là giống hệt nhau
với phần đầu của tệp ở phía gửi. Nếu một tập tin cần được chuyển
và kích thước của nó trên người nhận bằng hoặc dài hơn kích thước trên người gửi,
tệp bị bỏ qua. Điều này không ảnh hưởng đến việc cập nhật nội dung không phải của tệp
các thuộc tính (ví dụ: quyền, quyền sở hữu, v.v.) khi tệp không cần
được chuyển, cũng như không ảnh hưởng đến việc cập nhật bất kỳ tệp không thường xuyên nào. Ngụ ý
--nơi, nhưng không xung đột với - thô (vì nó luôn mở rộng
độ dài của tệp).
--append-xác minh
Điều này hoạt động giống như --endend tùy chọn, nhưng dữ liệu hiện có trên máy nhận
được bao gồm trong bước xác minh tổng kiểm tra toàn bộ tệp, điều này sẽ gây ra
tệp sẽ được gửi lại nếu bước xác minh cuối cùng không thành công (rsync sử dụng bình thường,
không bổ sung --nơi chuyển để gửi lại).
Lưu ý: trước rsync 3.0.0, --endend tùy chọn hoạt động như thế nào --append-xác minh, vì vậy nếu
bạn đang tương tác với rsync cũ hơn (hoặc quá trình chuyển đang sử dụng một giao thức trước đó
đến 30), việc chỉ định một trong hai tùy chọn nối thêm sẽ bắt đầu một --append-xác minh chuyển khoản.
-NS, --dir
Yêu cầu bên gửi bao gồm bất kỳ thư mục nào gặp phải. không giống
--đệ quy, nội dung của thư mục không được sao chép trừ khi tên thư mục
được chỉ định là "." hoặc kết thúc bằng dấu gạch chéo (ví dụ: ".", "dir /.", "dir /", v.v.).
Nếu không có tùy chọn này hoặc --đệ quy tùy chọn, rsync sẽ bỏ qua tất cả các thư mục nó
các cuộc gặp gỡ (và xuất ra một thông báo cho hiệu ứng đó cho mỗi lần gặp gỡ). Nếu bạn chỉ định cả hai
--dir và --đệ quy, --đệ quy được ưu tiên.
--dir tùy chọn được ngụ ý bởi --files-từ tùy chọn hoặc - chỉ danh sách tùy chọn
(bao gồm một ngụ ý - chỉ danh sách sử dụng) nếu --đệ quy không được chỉ định (vì vậy
thư mục được nhìn thấy trong danh sách). Chỉ định --không có thư mục (Hoặc - không-d) nếu bạn muốn
tắt cái này đi.
Ngoài ra còn có một tùy chọn trợ giúp tương thích ngược, - dirs vàng (Hoặc --cũ-d) cái đó
yêu cầu rsync sử dụng hack "-r --exclude = '/ * / *'" để đưa rsync cũ hơn vào danh sách
thư mục duy nhất mà không cần đệ quy.
-l, - liên kết
Khi gặp phải các liên kết tượng trưng, hãy tạo lại liên kết tượng trưng trên đích.
-L, - liên kết nội dung
Khi gặp phải các liên kết tượng trưng, mục mà chúng trỏ đến (tham chiếu) là
được sao chép, thay vì liên kết biểu tượng. Trong các phiên bản cũ hơn của rsync, tùy chọn này cũng có
tác dụng phụ của việc yêu cầu bên nhận tuân theo các liên kết tượng trưng, chẳng hạn như liên kết tượng trưng
tới các thư mục. Trong một rsync hiện đại, chẳng hạn như cái này, bạn sẽ cần chỉ định
--keep-dirlinks (-K) để có thêm hành vi này. Ngoại lệ duy nhất là khi
gửi tệp tới một rsync quá cũ để có thể hiểu được -K - trong trường hợp đó, -L
tùy chọn sẽ vẫn có tác dụng phụ là -K trên rsync nhận cũ hơn đó.
- nội dung-không an toàn-liên kết
Điều này yêu cầu rsync sao chép tham chiếu của các liên kết tượng trưng trỏ ra bên ngoài
cây sao chép. Các liên kết tượng trưng tuyệt đối cũng được coi như các tệp thông thường và
bất kỳ liên kết tượng trưng nào trong chính đường dẫn nguồn khi --quan hệ Được sử dụng. Tùy chọn này không có
hiệu ứng bổ sung nếu - liên kết nội dung cũng đã được chỉ định.
- liên kết an toàn
Điều này yêu cầu rsync bỏ qua bất kỳ liên kết tượng trưng nào trỏ ra bên ngoài cây đã sao chép.
Tất cả các liên kết tượng trưng tuyệt đối cũng bị bỏ qua. Sử dụng tùy chọn này kết hợp với
--quan hệ có thể cho kết quả bất ngờ.
--munge-liên kết
Tùy chọn này yêu cầu rsync (1) sửa đổi tất cả các liên kết tượng trưng ở phía nhận theo cách
khiến chúng không sử dụng được nhưng có thể khôi phục được (xem bên dưới) hoặc (2) để hủy liên kết biểu tượng trên
phía gửi đã được lưu trữ ở trạng thái hỗn hợp. Điều này rất hữu ích nếu bạn
không hoàn toàn tin tưởng vào nguồn dữ liệu để không cố gắng đưa vào một liên kết biểu tượng đến một
nơi bất ngờ.
Cách rsync vô hiệu hóa việc sử dụng các liên kết tượng trưng là thêm tiền tố mỗi liên kết bằng chuỗi
"/ rsyncd-munged /". Điều này ngăn các liên kết được sử dụng miễn là
thư mục không tồn tại. Khi tùy chọn này được bật, rsync sẽ từ chối chạy nếu
đường dẫn đó là một thư mục hoặc một liên kết tượng trưng đến một thư mục.
Tùy chọn chỉ ảnh hưởng đến phía khách hàng của quá trình chuyển giao, vì vậy nếu bạn cần, hãy
ảnh hưởng đến máy chủ, chỉ định nó qua --tùy chọn từ xa. (Lưu ý rằng trong chuyển khoản địa phương,
phía khách hàng là người gửi.)
Tùy chọn này không ảnh hưởng đến daemon, vì daemon cấu hình nó có muốn
munged symlinks thông qua tham số "munge symlinks". Xem thêm "munge-symlinks"
tập lệnh perl trong thư mục hỗ trợ của mã nguồn.
-k, --copy-dirlinks
Tùy chọn này khiến phía gửi xử lý một liên kết tượng trưng với một thư mục như thể nó
là một thư mục thực sự. Điều này rất hữu ích nếu bạn không muốn các liên kết tượng trưng
thư mục không bị ảnh hưởng, vì chúng sẽ được sử dụng - liên kết nội dung.
Không có tùy chọn này, nếu bên gửi đã thay thế một thư mục bằng một liên kết tượng trưng để
một thư mục, bên nhận sẽ xóa bất kỳ thứ gì cản trở thư mục mới
liên kết tượng trưng, bao gồm hệ thống phân cấp thư mục (miễn là --lực lượng or --xóa bỏ là
hiệu ứng).
Xem thêm --keep-dirlinks cho một tùy chọn tương tự cho phía nhận.
--copy-dirlinks áp dụng cho tất cả các liên kết tượng trưng đến các thư mục trong nguồn. Nếu bạn muốn
chỉ theo dõi một số liên kết tượng trưng được chỉ định, một mẹo bạn có thể sử dụng là chuyển chúng dưới dạng
bổ sung nguồn cung cấp với một dấu gạch chéo ở cuối, sử dụng --quan hệ để tạo ra những con đường
khớp đúng. Ví dụ:
rsync -r - tương đối src /./ src /./ follow-me / dest /
Điều này hoạt động vì rsync gọi thống kê(2) trên nguồn lập luận như đã cho, và
dấu gạch chéo làm thống kê(2) theo sau liên kết tượng trưng, tạo ra một thư mục trong
danh sách tệp ghi đè liên kết biểu tượng được tìm thấy trong quá trình quét "src /./".
-K, --keep-dirlinks
Tùy chọn này khiến phía nhận xử lý một liên kết tượng trưng với một thư mục như thể
đó là một thư mục thực, nhưng chỉ khi nó khớp với một thư mục thực từ người gửi.
Nếu không có tùy chọn này, liên kết biểu tượng của người nhận sẽ bị xóa và thay thế bằng
thư mục thực.
Ví dụ: giả sử bạn chuyển một thư mục "foo" có chứa một tệp "tệp",
nhưng "foo" là một liên kết tượng trưng đến "thanh" thư mục trên máy thu. Không có
--keep-dirlinks, người nhận xóa liên kết biểu tượng "foo", tạo lại nó dưới dạng một thư mục,
và nhận tệp vào thư mục mới. Với --keep-dirlinks, người nhận
giữ liên kết biểu tượng và "tệp" kết thúc bằng "thanh".
Một lưu ý thận trọng: nếu bạn sử dụng --keep-dirlinks, bạn phải tin tưởng tất cả các liên kết tượng trưng
trong bản sao! Nếu người dùng không đáng tin cậy có thể tạo liên kết biểu tượng của riêng họ
vào bất kỳ thư mục nào, người dùng sau đó có thể (trên một bản sao tiếp theo) thay thế liên kết biểu tượng
với một thư mục thực và ảnh hưởng đến nội dung của bất kỳ thư mục nào mà liên kết tượng trưng
người giới thiệu. Đối với các bản sao lưu, bạn nên sử dụng một thứ gì đó giống như một liên kết
mount thay vì một liên kết tượng trưng để sửa đổi hệ thống phân cấp nhận của bạn.
Xem thêm --copy-dirlinks cho một tùy chọn tương tự cho phía gửi.
-NS, - liên kết cứng
Điều này yêu cầu rsync tìm kiếm các tệp được liên kết cứng trong nguồn và liên kết với nhau
các tệp tương ứng trên đích. Nếu không có tùy chọn này, các tệp được liên kết cứng trong
nguồn được coi như thể chúng là các tệp riêng biệt.
Tùy chọn này KHÔNG nhất thiết đảm bảo rằng mẫu liên kết cứng trên
đích khớp chính xác với điểm đến trên nguồn. Các trường hợp mà điểm đến có thể
kết thúc với các liên kết cứng bổ sung bao gồm những điều sau:
o Nếu đích chứa các liên kết cứng không liên quan (nhiều liên kết hơn là
hiện trong danh sách tệp nguồn), thuật toán sao chép sẽ không phá vỡ chúng
một cách rõ ràng. Tuy nhiên, nếu một hoặc nhiều đường dẫn có sự khác biệt về nội dung,
quá trình cập nhật tệp thông thường sẽ phá vỡ các liên kết bổ sung đó (trừ khi bạn
bằng cách sử dụng --nơi Tùy chọn).
o Nếu bạn chỉ định một --link-đích thư mục chứa liên kết cứng, liên kết
của các tệp đích so với --link-đích tệp có thể gây ra một số đường dẫn
tại điểm đến để được liên kết với nhau do --link-đích
các hiệp hội.
Lưu ý rằng rsync chỉ có thể phát hiện các liên kết cứng giữa các tệp bên trong
chuyển bộ. Nếu rsync cập nhật một tệp có thêm các kết nối liên kết cứng tới
các tệp bên ngoài quá trình chuyển giao, liên kết đó sẽ bị phá vỡ. Nếu bạn muốn sử dụng
các --nơi tùy chọn để tránh sự cố này, hãy rất cẩn thận rằng bạn biết cách
tệp đang được cập nhật để bạn chắc chắn rằng không có thay đổi ngoài ý muốn nào xảy ra
do các liên kết cứng kéo dài (và xem --nơi tùy chọn để biết thêm cảnh báo).
Nếu đệ quy gia tăng đang hoạt động (xem --đệ quy), rsync có thể chuyển một
tệp được liên kết cứng trước khi nó tìm thấy một liên kết khác cho nội dung đó tồn tại
ở những nơi khác trong hệ thống phân cấp. Điều này không ảnh hưởng đến tính chính xác của quá trình chuyển
(tức là những tệp nào được liên kết cứng với nhau), chỉ là hiệu quả của nó (tức là sao chép
dữ liệu cho một bản sao mới, ban đầu của tệp được liên kết cứng có thể được tìm thấy sau đó
trong quá trình chuyển trong một thành viên khác của nhóm tệp được liên kết cứng). Một cách để
tránh sự kém hiệu quả này là vô hiệu hóa đệ quy tăng dần bằng cách sử dụng
- không có đệ quy tùy chọn.
-P, --perm
Tùy chọn này khiến rsync nhận đặt quyền đích là
giống như các quyền nguồn. (Xem thêm --chmod tùy chọn cho một cách để sửa đổi
những gì rsync coi là quyền nguồn.)
Khi tùy chọn này là off, quyền được đặt như sau:
o Các tệp hiện có (bao gồm cả các tệp đã cập nhật) giữ lại các quyền hiện có của chúng,
thông qua - khả năng thực thi tùy chọn có thể chỉ thay đổi quyền thực thi
cho tệp.
o Các tệp mới nhận được các bit quyền "bình thường" của chúng được đặt thành tệp nguồn của
quyền được che với quyền mặc định của thư mục nhận
(hoặc là umask của quá trình nhận hoặc các quyền được chỉ định thông qua
ACL mặc định của thư mục đích) và các bit quyền đặc biệt của chúng
bị vô hiệu hóa ngoại trừ trường hợp một thư mục mới kế thừa một bit setgid từ
thư mục mẹ của nó.
Vì vậy, khi --perm và - khả năng thực thi cả hai đều bị vô hiệu hóa, hành vi của rsync là
giống như của các tiện ích sao chép tệp khác, chẳng hạn như cp(1) tar(1).
Tóm lại: để cấp cho các tệp đích (cả cũ và mới) quyền nguồn,
sử dụng --perm. Để cung cấp cho các tệp mới các quyền mặc định đích (trong khi rời khỏi
các tệp hiện có không thay đổi), hãy đảm bảo rằng --perm tùy chọn tắt và sử dụng
--chmod = ugo = rwX (đảm bảo rằng tất cả các bit không bị che đều được kích hoạt). Nếu bạn D
quan tâm để làm cho hành vi sau này dễ nhập hơn, bạn có thể xác định bí danh popt cho
nó, chẳng hạn như đưa dòng này vào tệp ~ / .popt (sau đây xác định -Z
và bao gồm --no-g để sử dụng nhóm mặc định của dir đích):
bí danh rsync -Z --no-p --no-g --chmod = ugo = rwX
Sau đó, bạn có thể sử dụng tùy chọn mới này trong một lệnh chẳng hạn như lệnh sau:
rsync -avZ src / dest /
(Lưu ý: hãy chắc chắn rằng -a không làm theo -Zhoặc nó sẽ kích hoạt lại cả hai
Các tùy chọn "--no- *" được đề cập ở trên.)
Việc bảo toàn bit setgid của đích trên các thư mục mới được tạo khi
--perm tắt đã được thêm vào rsync 2.6.7. Các phiên bản rsync cũ hơn bị lỗi
đã bảo toàn ba bit quyền đặc biệt cho các tệp mới được tạo khi --perm
đã tắt, trong khi ghi đè cài đặt bit setgid của đích trên một
danh mục. Tuân thủ ACL mặc định đã được thêm vào bản vá ACL cho rsync 2.6.7, vì vậy
các rsync cũ hơn (hoặc không hỗ trợ ACL) sử dụng umask ngay cả khi có các ACL mặc định.
(Hãy nhớ rằng phiên bản của rsync nhận sẽ ảnh hưởng đến những
hành vi cư xử.)
-VÀ, - khả năng thực thi
Tùy chọn này khiến rsync bảo toàn khả năng thực thi (hoặc khả năng không thực thi) của
các tệp thông thường khi --perm không được kích hoạt. Một tệp thông thường được coi là
có thể thực thi nếu ít nhất một 'x' được bật trong quyền của nó. Khi một hiện tại
khả năng thực thi của tệp đích khác với khả năng thực thi của nguồn tương ứng
tệp, rsync sửa đổi các quyền của tệp đích như sau:
o Để làm cho một tệp không thể thực thi được, rsync sẽ tắt tất cả các quyền 'x' của nó.
o Để thực thi một tệp, rsync bật mỗi quyền 'x' có
quyền 'r' tương ứng được bật.
If --perm được kích hoạt, tùy chọn này bị bỏ qua.
-MỘT, --acls
Tùy chọn này khiến rsync cập nhật ACL đích giống với
nguồn ACL. Tùy chọn cũng ngụ ý --perm.
Hệ thống nguồn và hệ thống đích phải có các mục ACL tương thích cho tùy chọn này
để hoạt động bình thường. Xem --giả-siêu tùy chọn để sao lưu và khôi phục ACL
không tương thích.
-NS, --xatt
Tùy chọn này khiến rsync cập nhật các thuộc tính mở rộng đích để trở thành
giống như những cái nguồn.
Đối với các hệ thống hỗ trợ không gian tên thuộc tính mở rộng, một bản sao được thực hiện bởi
siêu người dùng sao chép tất cả các không gian tên ngoại trừ hệ thống. *. Người dùng bình thường chỉ sao chép
người dùng. * không gian tên. Để có thể sao lưu và khôi phục các không gian tên không phải của người dùng như bình thường
người dùng, hãy xem --giả-siêu tùy chọn.
Lưu ý rằng tùy chọn này không sao chép các giá trị xattr đặc biệt của rsyncs (ví dụ: những giá trị được sử dụng bởi
--giả-siêu) trừ khi bạn lặp lại tùy chọn (ví dụ -XX). Chế độ "sao chép tất cả các xattrs" này
không thể được sử dụng với --giả-siêu.
--chmod
Tùy chọn này yêu cầu rsync áp dụng một hoặc nhiều chế độ "chmod" được phân tách bằng dấu phẩy cho
quyền của các tệp trong quá trình chuyển giao. Giá trị kết quả được coi là
đó là các quyền mà phía gửi cung cấp cho tệp, có nghĩa là
rằng tùy chọn này dường như không ảnh hưởng đến các tệp hiện có nếu --perm không phải là
kích hoạt.
Ngoài các quy tắc phân tích cú pháp thông thường được chỉ định trong chmod(1) manpage, bạn có thể
chỉ định một mục chỉ nên áp dụng cho một thư mục bằng cách thêm 'D' vào đầu mục đó,
hoặc chỉ định một mục chỉ nên áp dụng cho một tệp bằng cách thêm 'F' vào tiền tố của nó.
Ví dụ: điều sau sẽ đảm bảo rằng tất cả các thư mục được đánh dấu set-gid,
rằng không có tệp nào có thể ghi khác, mà cả hai đều là người dùng có thể ghi và có thể ghi nhóm,
và cả hai đều có khả năng thực thi nhất quán trên tất cả các bit:
--chmod = Dg + s, ug + w, Fo-w, + X
Sử dụng số chế độ bát phân cũng được cho phép:
--chmod = D2775, F664
Việc chỉ định nhiều --chmod tùy chọn, vì mỗi tùy chọn bổ sung là
vừa được thêm vào danh sách các thay đổi cần thực hiện.
Xem --perm và - khả năng thực thi các tùy chọn về cách giá trị quyền kết quả
có thể được áp dụng cho các tệp trong quá trình chuyển giao.
-ồ, --chủ nhân
Tùy chọn này khiến rsync đặt chủ sở hữu của tệp đích giống với
tệp nguồn, nhưng chỉ khi rsync nhận đang được chạy với tư cách người dùng cấp cao
(xem thêm --siêu và --giả-siêu tùy chọn). Nếu không có tùy chọn này, chủ sở hữu của
các tệp mới và / hoặc đã chuyển được đặt thành người dùng đang gọi ở phía nhận.
Việc duy trì quyền sở hữu sẽ liên kết các tên phù hợp theo mặc định, nhưng có thể
quay lại sử dụng số ID trong một số trường hợp (xem thêm --numeric-id
tùy chọn cho một cuộc thảo luận đầy đủ).
-NS, --tập đoàn
Tùy chọn này khiến rsync đặt nhóm của tệp đích giống với
tệp nguồn. Nếu chương trình nhận không chạy với tư cách là người dùng cấp cao (hoặc nếu
- không siêu đã được chỉ định), chỉ các nhóm mà người dùng đang gọi ở bên nhận
là một thành viên của sẽ được bảo tồn. Nếu không có tùy chọn này, nhóm được đặt thành
nhóm mặc định của người dùng đang gọi ở phía nhận.
Việc lưu giữ thông tin nhóm sẽ liên kết các tên phù hợp theo mặc định, nhưng
có thể quay lại sử dụng số ID trong một số trường hợp (xem thêm
--numeric-id tùy chọn cho một cuộc thảo luận đầy đủ).
- thiết bị
Tùy chọn này khiến rsync chuyển ký tự và chặn các tệp thiết bị vào điều khiển từ xa
hệ thống để tạo lại các thiết bị này. Tùy chọn này không có hiệu lực nếu rsync nhận
không được chạy với tư cách là người dùng siêu cấp (xem thêm --siêu và --giả-siêu tùy chọn).
--chuyên
Tùy chọn này khiến rsync chuyển các tệp đặc biệt như ổ cắm được đặt tên và các tệp lớn hơn.
-D -D tùy chọn tương đương với - thiết bị --chuyên.
-NS, - thời gian
Điều này yêu cầu rsync chuyển thời gian sửa đổi cùng với các tệp và cập nhật
chúng trên hệ thống từ xa. Lưu ý rằng nếu tùy chọn này không được sử dụng, việc tối ưu hóa
loại trừ các tệp chưa được sửa đổi không thể có hiệu lực; trong khác
từ, một thiếu sót -t or -a sẽ khiến lần chuyển tiếp theo hoạt động như thể nó đã được sử dụng -I,
khiến tất cả các tệp được cập nhật (mặc dù thuật toán chuyển delta của rsync sẽ làm cho
bản cập nhật khá hiệu quả nếu các tệp không thực sự thay đổi, bạn nhiều
tốt hơn nên sử dụng -t).
-Ồ, --omit-dir-lần
Điều này yêu cầu rsync bỏ qua các thư mục khi nó đang duy trì thời gian sửa đổi (xem
- thời gian). Nếu NFS đang chia sẻ các thư mục ở phía bên nhận, thì đó là một điều tốt
ý tưởng sử dụng -O. Tùy chọn này được suy ra nếu bạn sử dụng --sao lưu không có - backup-dir.
Tùy chọn này cũng có tác dụng phụ là tránh tạo sớm các thư mục trong
bản sao đệ quy tăng dần. Mặc định --inc-đệ quy sao chép bình thường làm một
tạo sớm vượt qua của tất cả các thư mục con trong thư mục mẹ để nó
để có thể đặt thời gian sửa đổi của thư mục mẹ ngay lập tức (không có
phải trì hoãn điều đó cho đến khi một loạt các sao chép đệ quy kết thúc). Điều này
thành ngữ tạo sớm là không cần thiết nếu thời gian sửa đổi thư mục không diễn ra
được bảo quản, vì vậy nó được bỏ qua. Vì các thư mục tạo sớm không có
chế độ, mtime hoặc quyền sở hữu, việc sử dụng tùy chọn này có thể hữu ích khi ai đó muốn
tránh những thư mục đã hoàn thành một phần này.
-NS, --bỏ qua-thời gian liên kết
Điều này yêu cầu rsync bỏ qua các liên kết tượng trưng khi nó đang duy trì thời gian sửa đổi (xem
- thời gian).
--siêu
Điều này cho bên nhận cố gắng thực hiện các hoạt động của người dùng siêu cấp ngay cả khi
nhận rsync không được chạy bởi siêu người dùng. Các hoạt động này bao gồm:
người dùng thông qua --chủ nhân tùy chọn, bảo toàn tất cả các nhóm (không chỉ người dùng hiện tại
nhóm) thông qua --các nhóm và sao chép thiết bị thông qua - thiết bị tùy chọn.
Điều này rất hữu ích cho các hệ thống cho phép các hoạt động như vậy mà không cần phải là người dùng cấp cao,
và cũng để đảm bảo rằng bạn sẽ gặp lỗi nếu bên nhận không
chạy với tư cách là siêu người dùng. Để tắt các hoạt động của siêu người dùng, siêu người dùng có thể sử dụng
- không siêu.
--giả-siêu
Khi tùy chọn này được bật, rsync mô phỏng các hoạt động của siêu người dùng bằng cách
lưu / khôi phục các thuộc tính đặc quyền thông qua các thuộc tính mở rộng đặc biệt
đính kèm vào mỗi tệp (khi cần thiết). Điều này bao gồm chủ sở hữu và nhóm của tệp (nếu nó
không phải là mặc định), thông tin thiết bị của tệp (thiết bị và các tệp đặc biệt được tạo dưới dạng
tệp văn bản trống) và bất kỳ bit quyền nào mà chúng tôi không cho phép đặt trên
tệp thực (ví dụ: tệp thực giúp chúng tôi, gs, ot để đảm bảo an toàn) hoặc điều đó sẽ hạn chế
quyền truy cập của chủ sở hữu (vì người dùng cấp cao thực sự luôn có thể truy cập / thay đổi tệp,
các tệp chúng tôi tạo luôn có thể được truy cập / thay đổi bởi người dùng tạo). Tùy chọn này
cũng xử lý ACL (nếu --acls đã được chỉ định) và các thuộc tính mở rộng không phải người dùng (nếu
--xatt đã được chỉ định).
Đây là một cách tốt để sao lưu dữ liệu mà không cần sử dụng siêu người dùng và lưu trữ ACL
từ các hệ thống không tương thích.
--giả-siêu tùy chọn chỉ ảnh hưởng đến phía mà tùy chọn được sử dụng. Ảnh hưởng
phía điều khiển từ xa của một kết nối remote-shell, hãy sử dụng --tùy chọn từ xa (-M) Lựa chọn:
rsync -av -M - fake-super / src / host: / dest /
Đối với bản sao cục bộ, tùy chọn này ảnh hưởng đến cả nguồn và đích. nếu bạn
muốn một bản sao cục bộ để kích hoạt tùy chọn này chỉ cho các tệp đích, chỉ định
-M - giả-siêu. Nếu bạn muốn một bản sao cục bộ để bật tùy chọn này chỉ cho nguồn
tệp, kết hợp --giả-siêu với -M - siêu.
Tùy chọn này được ghi đè bởi cả hai --siêu và - không siêu.
Xem thêm cài đặt "siêu giả" trong tệp rsyncd.conf của daemon.
-NS, - thô
Cố gắng xử lý các tệp thưa thớt một cách hiệu quả để chúng chiếm ít dung lượng hơn trên
điểm đến. Xung đột với --nơi vì không thể ghi đè dữ liệu
theo kiểu thưa thớt.
- phân bổ trước
Điều này cho người nhận biết phân bổ từng tệp đích theo kích thước cuối cùng của nó
trước khi ghi dữ liệu vào tệp. Rsync sẽ chỉ sử dụng cấp hệ thống tệp thực
hỗ trợ phân bổ trước do Linux cung cấp sai lệch(2) cuộc gọi hệ thống hoặc Cygwin's
posix_fallocate(3), không phải việc triển khai glibc chậm mà ghi một byte XNUMX vào
mỗi khối.
Nếu không có tùy chọn này, các tệp lớn hơn có thể không hoàn toàn liền kề trên hệ thống tệp,
nhưng với tùy chọn này, rsync có thể sẽ sao chép chậm hơn. Nếu điểm đến là
không phải là hệ thống tệp hỗ trợ mức độ (chẳng hạn như ext4, xfs, NTFS, v.v.), tùy chọn này
có thể không có tác dụng tích cực nào cả.
-N, - chạy thử
Điều này làm cho rsync thực hiện quá trình chạy thử mà không thực hiện bất kỳ thay đổi nào (và tạo ra
hầu hết là cùng một đầu ra như một lần chạy thực). Nó được sử dụng phổ biến nhất trong sự kết hợp
với -v, --dài dòng và / hoặc -tôi, --itemize-thay đổi tùy chọn để xem những gì một rsync
lệnh sẽ thực hiện trước khi thực sự chạy nó.
Đầu ra của --itemize-thay đổi được cho là hoàn toàn giống nhau trong quá trình chạy khô và
một lần chạy thực tiếp theo (ngăn chặn các thủ thuật cố ý và các lỗi cuộc gọi hệ thống); nếu như
nó không phải, đó là một lỗi. Các đầu ra khác hầu như không thay đổi, nhưng có thể khác ở
một số lĩnh vực. Đáng chú ý, quá trình chạy khô không gửi dữ liệu thực tế để truyền tệp,
so --phát triển không có hiệu lực, "byte đã gửi", "byte đã nhận", "dữ liệu theo nghĩa đen",
và thống kê "dữ liệu phù hợp" quá nhỏ và giá trị "tăng tốc" tương đương
chạy mà không cần chuyển tệp.
-À, --toàn bộ tập tin
Với tùy chọn này, thuật toán chuyển delta của rsync không được sử dụng và toàn bộ tệp
được gửi như hiện tại. Quá trình chuyển có thể nhanh hơn nếu tùy chọn này được sử dụng khi
băng thông giữa máy nguồn và máy đích cao hơn băng thông
vào đĩa (đặc biệt khi "đĩa" thực sự là một hệ thống tệp được nối mạng). Đây là
mặc định khi cả nguồn và đích đều được chỉ định làm đường dẫn cục bộ, nhưng
chỉ khi không có tùy chọn ghi hàng loạt nào có hiệu lực.
-NS, --một hệ thống tập tin
Điều này cho rsync biết để tránh vượt qua ranh giới hệ thống tệp khi đệ quy. Điều này không
không giới hạn khả năng của người dùng trong việc chỉ định các mục để sao chép từ nhiều hệ thống tệp,
chỉ đệ quy của rsync thông qua hệ thống phân cấp của mỗi thư mục mà người dùng
được chỉ định, và cả đệ quy tương tự ở phía nhận trong quá trình xóa.
Cũng xin lưu ý rằng rsync xử lý gắn kết "ràng buộc" với cùng một thiết bị như khi bật
cùng một hệ thống tập tin.
Nếu tùy chọn này được lặp lại, rsync sẽ bỏ qua tất cả các thư mục điểm gắn kết khỏi bản sao.
Nếu không, nó bao gồm một thư mục trống tại mỗi điểm gắn kết mà nó gặp phải (sử dụng
các thuộc tính của thư mục được gắn kết bởi vì các thuộc tính của điểm gắn kết cơ bản
thư mục không thể truy cập được).
Nếu rsync đã được thông báo để thu gọn các liên kết tượng trưng (thông qua - liên kết nội dung or
- nội dung-không an toàn-liên kết), một liên kết tượng trưng đến một thư mục trên một thiết bị khác được coi như một
điểm gắn kết. Các liên kết tượng trưng đến không phải thư mục không bị ảnh hưởng bởi tùy chọn này.
- tồn tại, --ignore-không tồn tại
Điều này yêu cầu rsync bỏ qua việc tạo tệp (bao gồm cả thư mục) không tồn tại
chưa về đích. Nếu tùy chọn này được kết hợp với - không tồn tại
tùy chọn, sẽ không có tệp nào được cập nhật (điều này có thể hữu ích nếu tất cả những gì bạn muốn làm là
xóa các tệp không liên quan).
Tùy chọn này là quy tắc chuyển, không phải là loại trừ, vì vậy nó không ảnh hưởng đến dữ liệu
đi vào danh sách tệp và do đó nó không ảnh hưởng đến việc xóa. Nó chỉ giới hạn
các tệp mà người nhận yêu cầu được chuyển.
- không tồn tại
Điều này yêu cầu rsync bỏ qua việc cập nhật các tệp đã tồn tại trên đích (điều này
làm không bỏ qua các thư mục hiện có hoặc không có gì được thực hiện). Xem thêm
- tồn tại.
Tùy chọn này là quy tắc chuyển, không phải là loại trừ, vì vậy nó không ảnh hưởng đến dữ liệu
đi vào danh sách tệp và do đó nó không ảnh hưởng đến việc xóa. Nó chỉ giới hạn
các tệp mà người nhận yêu cầu được chuyển.
Tùy chọn này có thể hữu ích cho những người thực hiện sao lưu bằng cách sử dụng --link-đích tùy chọn khi
họ cần tiếp tục chạy dự phòng bị gián đoạn. Từ một --link-đích chạy
được sao chép vào một hệ thống phân cấp thư mục mới (khi nó được sử dụng đúng cách), sử dụng --phớt lờ
hiện tại sẽ đảm bảo rằng các tệp đã được xử lý không bị chỉnh sửa (điều này tránh
thay đổi quyền đối với các tệp được liên kết cứng). Điều này có nghĩa là tùy chọn này
chỉ xem xét các tệp hiện có trong chính hệ thống phân cấp đích.
--remove-source-files
Điều này yêu cầu rsync xóa các tệp khỏi phía gửi (nghĩa là
không phải thư mục) là một phần của quá trình chuyển giao và đã thành công
nhân đôi ở phía nhận.
Lưu ý rằng bạn chỉ nên sử dụng tùy chọn này trên các tệp nguồn không hoạt động. Nếu
bạn đang sử dụng quyền này để di chuyển các tệp hiển thị trong một thư mục cụ thể sang
một máy chủ khác, hãy đảm bảo rằng các tệp đã hoàn thành được đổi tên thành nguồn
thư mục, không được ghi trực tiếp vào nó, vì vậy rsync không thể chuyển một
tệp chưa được viết đầy đủ. Nếu trước tiên bạn không thể ghi các tệp vào một
thư mục khác, bạn nên sử dụng một thành ngữ đặt tên để cho phép rsync tránh
chuyển tệp chưa hoàn tất (ví dụ: đặt tên tệp là "foo.new" khi nó
được viết, đổi tên thành "foo" khi hoàn tất, sau đó sử dụng tùy chọn
--exclude = '*. new' để chuyển rsync).
Bắt đầu với 3.1.0, rsync sẽ bỏ qua thao tác xóa phía người gửi (và xuất ra lỗi)
nếu kích thước của tệp hoặc thời gian sửa đổi không thay đổi.
--xóa bỏ
Điều này yêu cầu rsync xóa các tệp không liên quan từ phía nhận (những tệp
không ở phía gửi), nhưng chỉ dành cho các thư mục đang được
đồng bộ hóa. Bạn phải yêu cầu rsync gửi toàn bộ thư mục (ví dụ: "dir" hoặc
"dir /") mà không sử dụng ký tự đại diện cho nội dung của thư mục (ví dụ: "dir / *") kể từ
ký tự đại diện được mở rộng bởi shell và rsync do đó nhận được yêu cầu chuyển
các tệp riêng lẻ, không phải thư mục mẹ của tệp. Các tệp bị loại trừ khỏi
chuyển giao cũng không bị xóa trừ khi bạn sử dụng
- loại trừ bị loại trừ tùy chọn hoặc đánh dấu các quy tắc là chỉ khớp ở phía gửi
(xem phần bổ nghĩa bao gồm / loại trừ trong phần QUY TẮC LỌC).
Trước rsync 2.6.7, tùy chọn này sẽ không có hiệu lực trừ khi --đệ quy là
đã được kích hoạt. Bắt đầu từ 2.6.7, việc xóa cũng sẽ xảy ra khi --dir (-d) là
được bật, nhưng chỉ cho các thư mục có nội dung đang được sao chép.
Tùy chọn này có thể nguy hiểm nếu sử dụng không đúng cách! Đó là một ý tưởng rất tốt trước tiên
thử chạy bằng cách sử dụng - chạy thử Lựa chọn (-n) để xem những tệp nào sẽ được
đã xóa.
Nếu phía gửi phát hiện bất kỳ lỗi I / O nào, thì việc xóa bất kỳ tệp nào tại
điểm đến sẽ tự động bị vô hiệu hóa. Điều này là để ngăn hệ thống tệp tạm thời
các lỗi (chẳng hạn như lỗi NFS) ở phía gửi do gây ra việc xóa nhiều
của các tệp trên đích. Bạn có thể ghi đè điều này bằng - lỗi nặng
tùy chọn.
--xóa bỏ tùy chọn có thể được kết hợp với một trong các tùy chọn --delete-WHEN mà không có
xung đột, cũng như - loại trừ bị loại trừ. Tuy nhiên, nếu không có - xóa-KHI NÀO
các tùy chọn được chỉ định, rsync sẽ chọn --xóa trong thời gian thuật toán khi nói chuyện
sang rsync 3.0.0 hoặc mới hơn, và --xóa trước đó thuật toán khi nói chuyện với một người lớn tuổi hơn
rsync. Xem thêm --xóa-độ trễ và --xóa-sau.
--xóa trước đó
Yêu cầu xóa tệp ở phía nhận được thực hiện trước khi chuyển
bắt đầu. Xem --xóa bỏ (ngụ ý) để biết thêm chi tiết về xóa tệp.
Xóa trước khi chuyển sẽ hữu ích nếu hệ thống tệp chật hẹp về dung lượng và
loại bỏ các tệp không liên quan sẽ giúp chuyển giao khả thi. Tuy nhiên, nó
có gây ra sự chậm trễ trước khi bắt đầu chuyển và sự chậm trễ này có thể gây ra
chuyển sang thời gian chờ (nếu --hết giờ đã được chỉ định). Nó cũng buộc rsync sử dụng
thuật toán đệ quy cũ, không gia tăng yêu cầu rsync để quét tất cả
các tệp trong quá trình chuyển vào bộ nhớ cùng một lúc (xem --đệ quy).
--xóa trong khi, --del
Yêu cầu xóa tệp ở phía nhận được thực hiện dần dần khi
chuyển giao xảy ra. Quét xóa từng thư mục được thực hiện ngay trước mỗi
thư mục được kiểm tra các bản cập nhật, vì vậy nó hoạt động giống như một
--xóa trước đó, bao gồm thực hiện xóa trước bất kỳ bộ lọc theo thư mục nào
các tệp đang được cập nhật. Tùy chọn này lần đầu tiên được thêm vào phiên bản rsync 2.6.4. Xem
--xóa bỏ (ngụ ý) để biết thêm chi tiết về xóa tệp.
--xóa-độ trễ
Yêu cầu rằng việc xóa tệp ở phía nhận được tính toán trong
chuyển giao (như --xóa trong thời gian), và sau đó bị xóa sau khi quá trình chuyển hoàn tất.
Điều này rất hữu ích khi kết hợp với --delay-update và / hoặc --mờ, và hơn thế nữa
hiệu quả hơn sử dụng --xóa-sau (nhưng có thể cư xử khác, vì
--xóa-sau tính toán việc xóa trong một lần vượt qua riêng biệt sau khi tất cả các bản cập nhật được
xong). Nếu số lượng tệp bị xóa làm tràn bộ đệm nội bộ, thì tạm thời
tệp sẽ được tạo ở phía bên nhận để giữ các tên (nó bị xóa trong khi
mở, vì vậy bạn sẽ không nhìn thấy nó trong quá trình chuyển giao). Nếu việc tạo ra
tệp tạm thời không thành công, rsync sẽ cố gắng sử dụng lại --xóa-sau (cái đó
không thể làm nếu --đệ quy đang thực hiện quét gia tăng). Xem --xóa bỏ (đó là
ngụ ý) để biết thêm chi tiết về xóa tệp.
--xóa-sau
Yêu cầu xóa tệp ở phía nhận được thực hiện sau khi chuyển
đã hoàn thành. Điều này rất hữu ích nếu bạn đang gửi các tệp hợp nhất cho mỗi thư mục mới dưới dạng
một phần của quá trình chuyển giao và bạn muốn các loại trừ của họ có hiệu lực để xóa
giai đoạn chuyển giao hiện tại. Nó cũng buộc rsync sử dụng cái cũ,
thuật toán đệ quy không gia tăng yêu cầu rsync để quét tất cả các tệp trong
chuyển vào bộ nhớ cùng một lúc (xem --đệ quy). Xem --xóa bỏ (đó là
ngụ ý) để biết thêm chi tiết về xóa tệp.
- loại trừ bị loại trừ
Ngoài việc xóa các tệp ở phía nhận mà không phải ở phía gửi
bên, điều này yêu cầu rsync cũng xóa bất kỳ tệp nào ở bên nhận
loại trừ (xem --loại trừ). Xem phần QUY TẮC LỌC để biết cách thực hiện
các loại trừ cá nhân hoạt động theo cách này trên người nhận và để có một cách bảo vệ
tập tin từ - loại trừ bị loại trừ. Thấy --xóa bỏ (ngụ ý) để biết thêm chi tiết về
xóa tập tin.
--ignore-thiếu-args
Khi rsync lần đầu tiên xử lý các tệp nguồn được yêu cầu rõ ràng (ví dụ:
đối số dòng lệnh hoặc --files-từ các mục nhập), thường là một lỗi nếu
không thể tìm thấy tệp. Tùy chọn này loại bỏ lỗi đó và không cố gắng
chuyển tệp. Điều này không ảnh hưởng đến lỗi tệp biến mất tiếp theo nếu tệp
ban đầu được tìm thấy là có mặt và sau đó thì không còn nữa.
--xóa-thiếu-args
Tùy chọn này có hành vi của (ngụ ý) --ignore-thiếu-args tùy chọn một bước
xa hơn: mỗi đối số bị thiếu sẽ trở thành một yêu cầu xóa của đối số tương ứng
tệp đích ở phía nhận (nếu nó tồn tại). Nếu tệp đích
là một thư mục không trống, nó sẽ chỉ được xóa thành công nếu --force hoặc
- xóa đang có hiệu lực. Ngoài ra, tùy chọn này độc lập với bất kỳ
loại xử lý xóa.
Các tệp nguồn bị thiếu được biểu thị bằng các mục danh sách tệp đặc biệt hiển thị
như một mục nhập "* bị thiếu" trong - chỉ danh sách đầu ra.
- lỗi nặng
Kể --xóa bỏ để tiếp tục và xóa tệp ngay cả khi có lỗi I / O.
--lực lượng
Tùy chọn này yêu cầu rsync xóa một thư mục không trống khi nó được thay thế
bởi một thư mục không phải. Điều này chỉ có liên quan nếu quá trình xóa không hoạt động (xem
--xóa bỏ để biết chi tiết).
Lưu ý đối với các phiên bản rsync cũ hơn: --lực lượng vẫn được yêu cầu khi sử dụng
--xóa-sauvà nó đã từng không hoạt động trừ khi --đệ quy tùy chọn là
cũng được kích hoạt.
--max-delete = NUM
Điều này yêu cầu rsync không xóa nhiều hơn NUM tệp hoặc thư mục. Nếu giới hạn đó
bị vượt quá, tất cả các lần xóa tiếp theo sẽ được bỏ qua cho đến khi kết thúc quá trình chuyển. Tại
cuối cùng, rsync xuất ra một cảnh báo (bao gồm một số lần xóa đã bỏ qua) và
thoát với mã lỗi 25 (trừ khi một số điều kiện lỗi quan trọng hơn cũng
xảy ra).
Bắt đầu với phiên bản 3.0.0, bạn có thể chỉ định --max-delete = 0 được cảnh báo về bất kỳ
các tệp không liên quan trong đích mà không xóa bất kỳ tệp nào trong số chúng. Khách hàng cũ
đã hiểu điều này là "không giới hạn", vì vậy nếu bạn không biết phiên bản ứng dụng là gì,
bạn có thể sử dụng ít rõ ràng hơn --max-delete = -1 như một cách tương thích ngược để
chỉ định rằng không được phép xóa (mặc dù các phiên bản cũ thực sự không cảnh báo khi
đã vượt quá giới hạn).
--max-size = SIZE
Điều này cho rsync biết để tránh chuyển bất kỳ tệp nào lớn hơn mức đã chỉ định
KÍCH CỠ. Giá trị SIZE có thể được nối với một chuỗi để biểu thị hệ số kích thước,
và có thể là một giá trị phân số (ví dụ: "- kích thước tối đa = 1.5m").
Tùy chọn này là quy tắc chuyển, không phải là loại trừ, vì vậy nó không ảnh hưởng đến dữ liệu
đi vào danh sách tệp và do đó nó không ảnh hưởng đến việc xóa. Nó chỉ giới hạn
các tệp mà người nhận yêu cầu được chuyển.
Các hậu tố như sau: "K" (hoặc "KiB") là kibibyte (1024), "M" (hoặc "MiB") là
một mebibyte (1024 * 1024) và "G" (hoặc "GiB") là một gibibyte (1024 * 1024 * 1024). nếu bạn
muốn hệ số là 1000 thay vì 1024, hãy sử dụng "KB", "MB" hoặc "GB". (Ghi chú:
chữ thường cũng được chấp nhận cho tất cả các giá trị.) Cuối cùng, nếu hậu tố kết thúc bằng một trong hai
"+1" hoặc "-1", giá trị sẽ được bù đắp bởi một byte theo hướng được chỉ định.
Ví dụ: --max-size = 1.5mb-1 là 1499999 byte và --max-size = 2g + 1 là 2147483649
byte.
Lưu ý rằng các phiên bản rsync trước 3.1.0 không cho phép --max-size = 0.
--min-size = SIZE
Điều này cho rsync biết để tránh chuyển bất kỳ tệp nào nhỏ hơn tệp đã chỉ định
SIZE, có thể giúp không chuyển các tệp nhỏ, rác. Xem - kích thước tối đa
tùy chọn cho mô tả về SIZE và thông tin khác.
Lưu ý rằng các phiên bản rsync trước 3.1.0 không cho phép --min-size = 0.
-NS, --block-size = BLOCKSIZE
Điều này buộc kích thước khối được sử dụng trong thuật toán chuyển delta của rsync thành một
giá trị. Nó thường được chọn dựa trên kích thước của mỗi tệp được cập nhật. Xem
báo cáo kỹ thuật để biết chi tiết.
-e, --rsh = COMMAND
Tùy chọn này cho phép bạn chọn một chương trình shell từ xa thay thế để sử dụng
giao tiếp giữa các bản sao rsync cục bộ và từ xa. Thông thường, rsync là
được định cấu hình để sử dụng ssh theo mặc định, nhưng bạn có thể thích sử dụng rsh trên mạng cục bộ.
Nếu tùy chọn này được sử dụng với [user @] host :: module / path, sau đó là trình bao từ xa COMMAND
sẽ được sử dụng để chạy một daemon rsync trên máy chủ từ xa và tất cả dữ liệu sẽ
được truyền qua kết nối shell từ xa đó, thay vì thông qua trực tiếp
kết nối socket với daemon rsync đang chạy trên máy chủ từ xa. Xem phần
"SỬ DỤNG CÁC TÍNH NĂNG RSYNC-DAEMON QUA KẾT NỐI TỪ XA" ở trên.
Các đối số dòng lệnh được phép trong COMMAND với điều kiện là COMMAND được trình bày
để rsync như một đối số duy nhất. Bạn phải sử dụng dấu cách (không phải tab hoặc khoảng trắng khác)
để tách lệnh và args khỏi nhau, và bạn có thể sử dụng lệnh đơn và / hoặc
dấu ngoặc kép để bảo toàn khoảng trắng trong một đối số (nhưng không phải dấu gạch chéo ngược). Lưu ý rằng
nhân đôi một dấu ngoặc kép bên trong một chuỗi được trích dẫn đơn sẽ mang lại cho bạn một dấu ngoặc kép;
tương tự như vậy đối với dấu ngoặc kép (mặc dù bạn cần chú ý đến dấu ngoặc kép của bạn
shell đang phân tích cú pháp và dấu ngoặc kép rsync đang phân tích cú pháp). Vài ví dụ:
-e 'ssh -p 2234'
-e 'ssh -o "ProxyCommand nohup ssh firewall nc -w1% h% p"'
(Lưu ý rằng người dùng ssh có thể luân phiên tùy chỉnh các tùy chọn kết nối theo trang web cụ thể trong
tệp .ssh / config của họ.)
Bạn cũng có thể chọn chương trình shell từ xa bằng cách sử dụng môi trường RSYNC_RSH
biến, chấp nhận cùng một phạm vi giá trị như -e.
Xem thêm --chặn-io tùy chọn bị ảnh hưởng bởi tùy chọn này.
--rsync-path = CHƯƠNG TRÌNH
Sử dụng điều này để chỉ định chương trình nào sẽ được chạy trên máy từ xa để khởi động
rsync. Thường được sử dụng khi rsync không có trong đường dẫn của remote-shell mặc định (ví dụ:
--rsync-path = / usr / local / bin / rsync). Lưu ý rằng CHƯƠNG TRÌNH được chạy với sự trợ giúp của
shell, vì vậy nó có thể là bất kỳ chương trình, tập lệnh hoặc chuỗi lệnh nào bạn muốn chạy, vì vậy
miễn là nó không làm hỏng chuẩn in & chuẩn ra mà rsync đang sử dụng để
giao tiếp.
Một ví dụ khó là đặt một thư mục mặc định khác trên máy điều khiển từ xa
để sử dụng với --quan hệ Lựa chọn. Ví dụ:
rsync -avR --rsync-path = "cd / a / b && rsync" máy chủ: c / d / e /
-NS, --remote-option = TÙY CHỌN
Tùy chọn này được sử dụng cho các tình huống nâng cao hơn, nơi bạn muốn các hiệu ứng nhất định
chỉ được giới hạn ở một bên của chuyển nhượng. Ví dụ, nếu bạn muốn vượt qua
--log-file = FILE và --giả-siêu vào hệ thống từ xa, chỉ định nó như thế này:
rsync -av -M --log-file = foo -M - fake-super src / dest /
Nếu bạn muốn có một tùy chọn chỉ ảnh hưởng đến phía cục bộ của chuyển khoản khi nó
thường ảnh hưởng đến cả hai bên, gửi phủ định của nó đến phía xa. Như thế này:
rsync -av -x -M - no-x src / dest /
Hãy thận trọng khi sử dụng tùy chọn này, vì có thể chuyển đổi một tùy chọn sẽ gây ra rsync
để có một ý tưởng khác về dữ liệu sẽ mong đợi tiếp theo qua socket và
sẽ làm cho nó thất bại một cách khó hiểu.
Lưu ý rằng tốt nhất là sử dụng một --tùy chọn từ xa cho mỗi tùy chọn bạn muốn
vượt qua. Điều này làm cho công dụng của bạn tương thích với --bảo vệ-args Lựa chọn. Nếu điều đó
tùy chọn bị tắt, mọi khoảng trống trong tùy chọn từ xa của bạn sẽ được chia bởi trình bao từ xa
trừ khi bạn thực hiện các bước để bảo vệ chúng.
Khi thực hiện chuyển cục bộ, bên "cục bộ" là bên gửi và bên "từ xa"
bên là người nhận.
Lưu ý rằng một số phiên bản của thư viện phân tích cú pháp tùy chọn popt có một lỗi trong đó
ngăn bạn sử dụng một đối số liền kề với một đối số bằng nhau bên cạnh một tùy chọn ngắn
letter (ví dụ: -M - log-file = / tmp / foo. Nếu lỗi này ảnh hưởng đến phiên bản popt của bạn, bạn
có thể sử dụng phiên bản popt đi kèm với rsync.
-NS, --cvs-loại trừ
Đây là một cách viết tắt hữu ích để loại trừ một loạt các tệp mà bạn thường
không muốn chuyển giữa các hệ thống. Nó sử dụng một thuật toán tương tự như CVS để
xác định xem một tệp có nên bị bỏ qua hay không.
Danh sách loại trừ được khởi tạo để loại trừ các mục sau (các mục ban đầu này
được đánh dấu là dễ hư hỏng - xem phần QUY TẮC LỌC):
RCS SCCS CVS CVS.adm RCSLOG cvslog. * Thẻ TAGS .make.state .nse_depinfo * ~
# *. # *, * _ $ * * $ * .old * .bak * .BAK * .orig * .rej .del- * * .a * .olb * .o * .obj
* .so * .exe * .Z * .elc * .ln core .svn / .git / .hg / .bzr /
sau đó, các tệp được liệt kê trong $ HOME / .cvsignore được thêm vào danh sách và bất kỳ tệp nào được liệt kê
trong biến môi trường CVSIGNORE (tất cả các tên cvsignore được phân tách bằng
khoảng trắng).
Cuối cùng, bất kỳ tệp nào cũng bị bỏ qua nếu nó nằm trong cùng thư mục với tệp .cvsignore
và khớp với một trong các mẫu được liệt kê trong đó. Không giống như bộ lọc / loại trừ của rsync
các tệp, các mẫu này được phân chia trên khoảng trắng. Xem cvs(1) hướng dẫn sử dụng để biết thêm
thông tin.
Nếu bạn đang kết hợp -C với riêng của bạn --lọc các quy tắc, bạn cần lưu ý rằng các CVS này
loại trừ được thêm vào cuối các quy tắc của riêng bạn, bất kể vị trí -C là
được đặt trên dòng lệnh. Điều này làm cho chúng có mức độ ưu tiên thấp hơn bất kỳ quy tắc nào bạn
được chỉ định một cách rõ ràng. Nếu bạn muốn kiểm soát nơi các CVS loại trừ này được chèn vào
vào các quy tắc bộ lọc của bạn, bạn nên bỏ qua -C như một tùy chọn dòng lệnh và sử dụng
sự kết hợp của - bộ lọc =: C và - bộ lọc = -C (trên dòng lệnh của bạn hoặc bằng cách
đưa các quy tắc ": C" và "-C" vào tệp bộ lọc với các quy tắc khác của bạn). Các
tùy chọn đầu tiên bật tính năng quét theo từng thư mục cho tệp .cvsignore. Các
tùy chọn thứ hai thực hiện nhập một lần CVS loại trừ được đề cập ở trên.
-NS, --filter = RULE
Tùy chọn này cho phép bạn thêm các quy tắc để loại trừ một cách có chọn lọc các tệp nhất định khỏi
danh sách các tập tin sẽ được chuyển giao. Điều này hữu ích nhất khi kết hợp với
truyền đệ quy.
Bạn có thể sử dụng bao nhiêu --lọc các tùy chọn trên dòng lệnh mà bạn muốn xây dựng
danh sách các tệp cần loại trừ. Nếu bộ lọc chứa khoảng trắng, hãy đảm bảo trích dẫn
nó để shell cung cấp quy tắc cho rsync dưới dạng một đối số duy nhất. Văn bản bên dưới
cũng đề cập rằng bạn có thể sử dụng dấu gạch dưới để thay thế khoảng trắng ngăn cách
quy tắc từ lập luận của nó.
Xem phần QUY TẮC LỌC để biết thông tin chi tiết về tùy chọn này.
-F -F tùy chọn là cách viết tắt để thêm hai --lọc quy tắc cho lệnh của bạn. Các
lần đầu tiên nó được sử dụng là cách viết tắt của quy tắc này:
--filter = 'dir-merge /.rsync-filter'
Điều này yêu cầu rsync tìm kiếm các tệp .rsync-filter trên mỗi thư mục đã được
rắc rối qua hệ thống phân cấp và sử dụng các quy tắc của chúng để lọc các tệp trong
chuyển khoản. Nếu -F được lặp lại, nó là cách viết tắt của quy tắc này:
--filter = 'loại trừ .rsync-filter'
Thao tác này sẽ tự lọc ra các tệp .rsync-filter khỏi quá trình chuyển.
Xem phần QUY TẮC LỌC để biết thông tin chi tiết về cách hoạt động của các tùy chọn này.
--exclude = PATTERN
Tùy chọn này là một dạng đơn giản của --lọc tùy chọn mặc định là loại trừ
quy tắc và không cho phép cú pháp phân tích cú pháp quy tắc đầy đủ của các quy tắc bộ lọc thông thường.
Xem phần QUY TẮC LỌC để biết thông tin chi tiết về tùy chọn này.
--exclude-from = FILE
Tùy chọn này liên quan đến --loại trừ nhưng nó chỉ định một FILE
chứa các mẫu loại trừ (một mẫu trên mỗi dòng). Dòng trống trong tệp và dòng
bắt đầu với ';' hoặc '#' bị bỏ qua. Nếu FILE is -, danh sách sẽ được đọc từ
đầu vào chuẩn.
--include = PATTERN
Tùy chọn này là một dạng đơn giản của --lọc tùy chọn mặc định là bao gồm
quy tắc và không cho phép cú pháp phân tích cú pháp quy tắc đầy đủ của các quy tắc bộ lọc thông thường.
Xem phần QUY TẮC LỌC để biết thông tin chi tiết về tùy chọn này.
--include-from = FILE
Tùy chọn này liên quan đến --bao gồm nhưng nó chỉ định một FILE
chứa bao gồm các mẫu (một mẫu trên mỗi dòng). Dòng trống trong tệp và dòng
bắt đầu với ';' hoặc '#' bị bỏ qua. Nếu FILE is -, danh sách sẽ được đọc từ
đầu vào chuẩn.
--files-from = FILE
Sử dụng tùy chọn này cho phép bạn chỉ định danh sách chính xác các tệp cần chuyển (như
đọc từ FILE được chỉ định hoặc - cho đầu vào tiêu chuẩn). Nó cũng chỉnh sửa mặc định
hành vi của rsync để chỉ chuyển các tệp và thư mục được chỉ định
dễ dàng hơn:
o --quan hệ (-R) tùy chọn được ngụ ý, giữ nguyên thông tin đường dẫn
được chỉ định cho từng mục trong tệp (sử dụng --không họ hàng or --cũng không if
bạn muốn tắt nó đi).
o --dir (-d) được ngụ ý, sẽ tạo các thư mục được chỉ định
trong danh sách về điểm đến thay vì ồn ào bỏ qua chúng (sử dụng
--không có thư mục or - không-d nếu bạn muốn tắt nó đi).
o --lưu trữ (-a) hành vi của option không ngụ ý --đệ quy (-r), vì thế
chỉ định nó một cách rõ ràng, nếu bạn muốn nó.
o Những tác dụng phụ này thay đổi trạng thái mặc định của rsync, vì vậy vị trí của
--files-từ tùy chọn trên dòng lệnh không liên quan đến cách các tùy chọn khác
được phân tích cú pháp (ví dụ: -a hoạt động giống nhau trước hay sau --files-từ, cũng như
--cũng không và tất cả các tùy chọn khác).
Các tên tệp được đọc từ FILE đều liên quan đến mã nguồn - bất kỳ
dấu gạch chéo ở đầu bị xóa và không có tham chiếu ".." nào được phép đi cao hơn
nguồn dir. Ví dụ: lấy lệnh này:
rsync -a --files-from = / tmp / foo / usr điều khiển từ xa: / backup
Nếu / tmp / foo chứa chuỗi "bin" (hoặc thậm chí "/ thùng rác"), các / usr / bin thư mục sẽ
được tạo dưới dạng / backup / bin trên máy chủ từ xa. Nếu nó chứa "bin /" (lưu ý
dấu gạch chéo), nội dung ngay lập tức của thư mục cũng sẽ được gửi
(mà không cần phải được đề cập rõ ràng trong tệp - điều này đã bắt đầu trong phiên bản
2.6.4). Trong cả hai trường hợp, nếu -r tùy chọn đã được kích hoạt, toàn bộ hệ thống phân cấp của dir đó
cũng sẽ được chuyển (hãy nhớ rằng -r cần được chỉ định rõ ràng
với --files-từ, vì nó không được ngụ ý bởi -a). Cũng lưu ý rằng ảnh hưởng của
(được bật theo mặc định) --quan hệ tùy chọn là chỉ sao chép thông tin đường dẫn
được đọc từ tệp - nó không buộc sao chép đường dẫn mã nguồn
(/ usr trong trường hợp này).
Ngoài ra, --files-từ tệp có thể được đọc từ máy chủ từ xa thay vì
máy chủ cục bộ nếu bạn chỉ định "máy chủ:" trước tệp (máy chủ phải khớp với một
kết thúc chuyển khoản). Tóm lại, bạn có thể chỉ định một tiền tố ":" có nghĩa là
"sử dụng kết thúc chuyển giao từ xa". Ví dụ:
rsync -a --files-from =: / path / file-list src: / / tmp / copy
Thao tác này sẽ sao chép tất cả các tệp được chỉ định trong tệp / path / file-list
nằm trên máy chủ "src" từ xa.
Nếu --iconv và --bảo vệ-args các tùy chọn được chỉ định và --files-từ
tên tệp đang được gửi từ máy chủ này sang máy chủ khác, tên tệp sẽ được dịch
từ bộ mã của máy chủ gửi sang bộ mã của máy chủ nhận.
LƯU Ý: sắp xếp danh sách các tệp trong đầu vào --files-from giúp rsync được nhiều hơn
hiệu quả, vì nó sẽ tránh truy cập lại các phần tử đường dẫn được chia sẻ giữa
các mục liền kề. Nếu đầu vào không được sắp xếp, một số phần tử đường dẫn (ngụ ý
thư mục) có thể được quét nhiều lần và cuối cùng rsync sẽ
không trùng lặp chúng sau khi chúng được chuyển thành các phần tử danh sách tệp.
-0, --từ0
Điều này cho rsync biết rằng các quy tắc / tên tệp mà nó đọc từ một tệp được kết thúc bởi
ký tự null ('\ 0'), không phải là NL, CR hoặc CR + LF. Điều này ảnh hưởng đến --Loại khỏi,
--bao gồm-từ, --files-từvà mọi tệp đã hợp nhất được chỉ định trong --lọc qui định.
Nó không ảnh hưởng --cvs-loại trừ (vì tất cả các tên được đọc từ tệp .cvsignore là
chia trên khoảng trắng).
-S, --bảo vệ-args
Tùy chọn này gửi tất cả các tên tệp và hầu hết các tùy chọn tới rsync từ xa mà không
cho phép trình bao từ xa giải thích chúng. Điều này có nghĩa là không gian không bị chia cắt
trong tên và mọi ký tự đặc biệt không phải ký tự đại diện sẽ không được dịch (chẳng hạn như ~, $,
;, &, Vân vân.). Các ký tự đại diện được mở rộng trên máy chủ từ xa bằng rsync (thay vì
vỏ làm việc đó).
Nếu bạn sử dụng tùy chọn này với --iconv, các args liên quan đến phía điều khiển từ xa cũng sẽ
được dịch từ bộ ký tự cục bộ sang bộ điều khiển từ xa. Bản dịch xảy ra
trước khi các thẻ đại diện được mở rộng. Xem thêm --files-từ tùy chọn.
Bạn cũng có thể kiểm soát tùy chọn này thông qua biến môi trường RSYNC_PROTECT_ARGS.
Nếu biến này có giá trị khác XNUMX, tùy chọn này sẽ được bật theo mặc định,
nếu không nó sẽ bị vô hiệu hóa theo mặc định. Một trong hai trạng thái bị ghi đè bằng cách thủ công
đã chỉ định phiên bản tích cực hoặc tiêu cực của tùy chọn này (lưu ý rằng - không-s và
--no-protection-args là các phiên bản phủ định). Vì tùy chọn này là lần đầu tiên
được giới thiệu trong 3.0.0, bạn sẽ cần đảm bảo rằng nó bị vô hiệu hóa nếu bạn cần
tương tác với một rsync từ xa cũ hơn thế.
Rsync cũng có thể được định cấu hình (tại thời điểm xây dựng) để bật tùy chọn này theo mặc định
(with được ghi đè bởi cả môi trường và dòng lệnh). Tùy chọn này
cuối cùng sẽ trở thành cài đặt mặc định mới tại một số điểm vẫn chưa được xác định trong
tương lai.
-NS, --temp-dir = DIR
Tùy chọn này hướng dẫn rsync sử dụng DIR làm thư mục gốc khi tạo
bản sao tạm thời của các tệp được chuyển ở phía nhận. Mặc định
hành vi là tạo từng tệp tạm thời trong cùng thư mục với
tệp đích. Bắt đầu với rsync 3.1.1, tên tệp tạm thời bên trong
DIR được chỉ định sẽ không được bắt đầu bằng một dấu chấm phụ (mặc dù chúng vẫn sẽ có
hậu tố ngẫu nhiên được thêm vào).
Tùy chọn này thường được sử dụng nhất khi phân vùng đĩa nhận không có
đủ dung lượng trống để chứa một bản sao của tệp lớn nhất trong quá trình chuyển. Trong trường hợp này
(tức là khi thư mục xước nằm trên một phân vùng đĩa khác), rsync sẽ không
có thể đổi tên từng tệp tạm thời đã nhận trên đầu tệp được liên kết
tệp đích, nhưng thay vào đó phải sao chép nó vào đúng vị trí. Rsync thực hiện điều này bằng cách sao chép
tệp nằm trên đầu tệp đích, có nghĩa là điểm đến
tệp sẽ chứa dữ liệu bị cắt ngắn trong quá trình sao chép này. Nếu điều này không được thực hiện theo cách này
(ngay cả khi tệp đích lần đầu bị xóa, dữ liệu được sao chép cục bộ vào
tệp tạm thời trong thư mục đích, và sau đó được đổi tên vào vị trí) nó sẽ
có thể để tệp cũ tiếp tục chiếm dung lượng đĩa (nếu ai đó có
mở), và do đó có thể không có đủ chỗ để chứa phiên bản mới trên đĩa
cùng một lúc.
Nếu bạn đang sử dụng tùy chọn này vì các lý do khác ngoài việc thiếu dung lượng ổ đĩa, bạn
có thể muốn kết hợp nó với --delay-update tùy chọn này sẽ đảm bảo rằng tất cả
các tệp đã sao chép được đưa vào các thư mục con trong hệ thống phân cấp đích, đang chờ
kết thúc chuyển tiền. Nếu bạn không có đủ chỗ để sao chép tất cả những người đến
các tệp trên phân vùng đích, một cách khác để nói với rsync rằng bạn không
quá quan tâm đến không gian đĩa là sử dụng --partial-dir tùy chọn với một
đường dẫn tương đối; bởi vì điều này cho rsync biết rằng có thể lưu trữ bản sao của một
một tệp trong một nhóm con trong phân cấp đích, rsync sẽ sử dụng
part-dir như một khu vực tổ chức để chuyển tệp đã sao chép sang, sau đó đổi tên nó
vào vị trí từ đó. (Chỉ định một --partial-dir với một con đường tuyệt đối không
có tác dụng phụ này.)
-y, --mờ
Tùy chọn này cho rsync biết rằng nó sẽ tìm kiếm một tệp cơ sở cho bất kỳ điểm đến nào
tệp bị thiếu. Thuật toán hiện tại nằm trong cùng một thư mục với
tệp đích cho tệp có kích thước giống hệt nhau và thời gian sửa đổi, hoặc
một tệp có tên tương tự. Nếu được tìm thấy, rsync sử dụng tệp cơ sở mờ để cố gắng tăng tốc
lên chuyển khoản.
Nếu tùy chọn được lặp lại, quá trình quét mờ cũng sẽ được thực hiện trong bất kỳ kết quả phù hợp nào
thư mục đích thay thế được chỉ định qua - so sánh-đích,
--copy-đích, hoặc là --link-đích.
Lưu ý rằng việc sử dụng --xóa bỏ tùy chọn có thể loại bỏ bất kỳ kết hợp mờ tiềm năng nào
các tập tin, vì vậy hãy sử dụng --xóa-sau hoặc chỉ định một số loại trừ tên tệp nếu bạn cần
để ngăn chặn điều này.
--compare-dest = DIR
Tùy chọn này hướng dẫn sử dụng rsync DIR trên máy đích như một phần bổ sung
phân cấp để so sánh các tệp đích với việc thực hiện truyền (nếu các tệp
thiếu trong thư mục đích). Nếu một tập tin được tìm thấy trong DIR nó giống hệt nhau
đến tệp của người gửi, tệp sẽ KHÔNG được chuyển đến đích
danh mục. Điều này rất hữu ích để tạo một bản sao lưu thưa thớt chỉ các tệp có
đã thay đổi so với bản sao lưu trước đó. Tùy chọn này thường được sử dụng để sao chép vào
thư mục trống (hoặc mới tạo).
Bắt đầu từ phiên bản 2.6.4, nhiều - so sánh-đích thư mục có thể được cung cấp,
điều này sẽ khiến rsync tìm kiếm danh sách theo thứ tự được chỉ định cho chính xác
trùng khớp. Nếu tìm thấy kết quả trùng khớp chỉ khác nhau về các thuộc tính, một bản sao cục bộ sẽ được tạo
và các thuộc tính được cập nhật. Nếu không tìm thấy kết quả phù hợp, một tệp cơ sở từ một trong các
DIRs sẽ được chọn để cố gắng tăng tốc độ truyền.
If DIR là một đường dẫn tương đối, nó tương đối với thư mục đích. Xem thêm
--copy-đích và --link-đích.
LƯU Ý: bắt đầu với phiên bản 3.1.0, rsync sẽ xóa tệp khỏi tệp trống
phân cấp đích nếu tìm thấy kết hợp chính xác trong một trong các so sánh-đích
phân cấp (làm cho kết quả cuối cùng khớp chặt chẽ hơn với một bản sao mới).
--copy-dest = DIR
Tùy chọn này hoạt động như - so sánh-đích, nhưng rsync cũng sẽ sao chép các tệp không thay đổi
tìm thấy trong DIR tới thư mục đích bằng bản sao cục bộ. Điều này hữu ích cho
thực hiện chuyển đến một điểm đến mới trong khi vẫn giữ nguyên các tệp hiện có và sau đó
thực hiện flash-cutover khi tất cả các tệp đã được chuyển thành công.
nhiều --copy-đích thư mục có thể được cung cấp, điều này sẽ khiến rsync tìm kiếm
danh sách theo thứ tự được chỉ định cho một tệp không thay đổi. Nếu không tìm thấy kết quả phù hợp,
tập tin cơ sở từ một trong những DIRs sẽ được chọn để cố gắng tăng tốc độ truyền.
If DIR là một đường dẫn tương đối, nó tương đối với thư mục đích. Xem thêm
- so sánh-đích và --link-đích.
--link-dest = DIR
Tùy chọn này hoạt động như --copy-đích, nhưng các tệp không thay đổi được liên kết cứng từ DIR
đến thư mục đích. Các tệp phải giống hệt nhau trong tất cả các tệp được bảo quản
các thuộc tính (ví dụ: quyền, có thể là quyền sở hữu) để các tệp được
kết nối với nhau. Một ví dụ:
rsync -av --link-dest = $ PWD / máy chủ trước_dir: src_dir / new_dir /
Nếu tệp không liên kết, hãy kiểm tra kỹ các thuộc tính của chúng. Cũng kiểm tra xem một số
các thuộc tính đang bị buộc ngoài tầm kiểm soát của rsync, một tùy chọn gắn kết như vậy
cố định quyền root cho một người dùng hoặc gắn một ổ đĩa di động có quyền sở hữu chung
(chẳng hạn như tùy chọn "Bỏ qua quyền sở hữu đối với ổ đĩa này" của OS X).
Bắt đầu từ phiên bản 2.6.4, nhiều --link-đích thư mục có thể được cung cấp, mà
sẽ khiến rsync tìm kiếm danh sách theo thứ tự được chỉ định cho một kết quả khớp chính xác. Nếu
một kết quả phù hợp được tìm thấy chỉ khác nhau về các thuộc tính, một bản sao cục bộ được tạo ra và
các thuộc tính được cập nhật. Nếu không tìm thấy kết quả phù hợp, một tệp cơ sở từ một trong các DIRs
sẽ được chọn để cố gắng tăng tốc độ truyền.
Tùy chọn này hoạt động tốt nhất khi sao chép vào hệ thống phân cấp đích trống, như
các tệp hiện có có thể được chỉnh sửa các thuộc tính của chúng và điều đó có thể ảnh hưởng đến các tệp thay thế
tệp đích thông qua liên kết cứng. Ngoài ra, việc phân loại các thay đổi có thể có một chút
lộn xộn. Lưu ý rằng trước phiên bản 3.1.0, một thư mục thay thế khớp chính xác
sẽ không bao giờ được tìm thấy (cũng như được liên kết với đích) khi một tệp đích
đã tồn tại.
Lưu ý rằng nếu bạn kết hợp tùy chọn này với --ignore-lần, rsync sẽ không liên kết bất kỳ
các tệp với nhau bởi vì nó chỉ liên kết các tệp giống hệt nhau với nhau để thay thế cho
chuyển tệp, không bao giờ là một kiểm tra bổ sung sau khi tệp được cập nhật.
If DIR là một đường dẫn tương đối, nó tương đối với thư mục đích. Xem thêm
- so sánh-đích và --copy-đích.
Lưu ý rằng các phiên bản rsync trước 2.6.1 có một lỗi có thể ngăn --link-đích
hoạt động bình thường đối với một người không phải là người dùng siêu cấp khi -o đã được chỉ định (hoặc ngụ ý bởi
-a). Bạn có thể khắc phục lỗi này bằng cách tránh -o tùy chọn khi gửi đến một người cũ
rsync.
-z, - nén
Với tùy chọn này, rsync nén dữ liệu tệp khi nó được gửi đến đích
máy, làm giảm lượng dữ liệu được truyền đi - một cái gì đó
hữu ích qua kết nối chậm.
Lưu ý rằng tùy chọn này thường đạt được tỷ lệ nén tốt hơn mức có thể
đạt được bằng cách sử dụng một shell nén từ xa hoặc một phương tiện vận chuyển nén vì nó
tận dụng thông tin ngầm trong các khối dữ liệu phù hợp
không được gửi rõ ràng qua kết nối. Nén dữ liệu phù hợp này có
chi phí CPU, tuy nhiên, và có thể bị vô hiệu hóa bằng cách lặp lại -z tùy chọn, nhưng chỉ khi
cả hai bên ít nhất là phiên bản 3.1.1.
Lưu ý rằng nếu phiên bản rsync của bạn được biên dịch bằng zlib bên ngoài (thay vì
zlib được đóng gói với rsync) thì nó sẽ không hỗ trợ kiểu cũ
nén, chỉ nén kiểu mới (tùy chọn lặp lại). Trong tương lai điều này
nén kiểu mới có thể sẽ trở thành mặc định.
Rsync máy khách yêu cầu nén kiểu mới trên máy chủ thông qua
--new-nén tùy chọn, vì vậy nếu bạn thấy tùy chọn đó bị từ chối, điều đó có nghĩa là máy chủ
không đủ mới để hỗ trợ -zz. Rsync cũng chấp nhận - nén lạnh tùy chọn cho
thời gian trong tương lai khi nén kiểu mới trở thành mặc định.
Xem --skip-nén tùy chọn cho danh sách các hậu tố tệp mặc định sẽ không
được nén.
--compress-level = NUM
Đặt rõ ràng mức độ nén để sử dụng (xem - nén) thay vì để nó
mặc định. Nếu NUM khác XNUMX, thì - nén tùy chọn được ngụ ý.
--skip-nén = LIST
Ghi đè danh sách các hậu tố tệp sẽ không được nén. Các DANH SÁCH nên là
một hoặc nhiều hậu tố tệp (không có dấu chấm) được phân tách bằng dấu gạch chéo (/).
Bạn có thể chỉ định một chuỗi trống để chỉ ra rằng không có tệp nào được bỏ qua.
Đối sánh lớp ký tự đơn giản được hỗ trợ: mỗi đối sánh phải bao gồm một danh sách
các chữ cái bên trong dấu ngoặc vuông (ví dụ: không có lớp đặc biệt, chẳng hạn như "[: alpha:]",
được hỗ trợ và '-' không có ý nghĩa đặc biệt).
Các ký tự dấu hoa thị (*) và dấu chấm hỏi (?) Không có ý nghĩa đặc biệt.
Đây là một ví dụ chỉ định 6 hậu tố cần bỏ qua (vì 1 trong 5 quy tắc khớp với
2 hậu tố):
--skip-nén = gz / jpg / mp [34] / 7z / bz2
Danh sách các hậu tố mặc định sẽ không được nén là cái này (trong phiên bản này
của rsync):
7z khu vực avi bz2 deb gpg gz iso jpeg jpg lz lma lzo mov mp3 mp4 ogg png rar rpm rzip
tbz tgz tlz txz xz z zip
Danh sách này sẽ được thay thế bằng --skip-nén liệt kê tất cả trừ một tình huống: a
sao chép từ daemon rsync sẽ thêm các hậu tố đã bỏ qua của bạn vào danh sách
các tệp không nén (và danh sách của nó có thể được định cấu hình thành một mặc định khác).
--numeric-id
Với tùy chọn này, rsync sẽ chuyển nhóm số và ID người dùng thay vì sử dụng
tên người dùng và nhóm và ánh xạ chúng ở cả hai đầu.
Theo mặc định, rsync sẽ sử dụng tên người dùng và tên nhóm để xác định quyền sở hữu
đưa ra các tập tin. Uid đặc biệt 0 và nhóm đặc biệt 0 không bao giờ được ánh xạ qua
tên người dùng / nhóm ngay cả khi --numeric-id tùy chọn không được chỉ định.
Nếu người dùng hoặc nhóm không có tên trên hệ thống nguồn hoặc không có tên phù hợp trên
hệ thống đích, sau đó ID số từ hệ thống nguồn được sử dụng thay thế.
Xem thêm các nhận xét về cài đặt "sử dụng chroot" trong manpage rsyncd.conf cho
thông tin về cách cài đặt chroot ảnh hưởng đến khả năng tra cứu tên của rsync
của người dùng và nhóm và bạn có thể làm gì với điều đó.
--usermap = STRING, --groupmap = STRING
Các tùy chọn này cho phép bạn chỉ định người dùng và nhóm sẽ được ánh xạ tới
giá trị của bên nhận. Các STRING là một hoặc nhiều TỪ:ĐẾN các cặp giá trị
ngăn cách nhau bằng dấu phẩy. Mọi kết quả phù hợp TỪ giá trị từ người gửi được thay thế bằng ĐẾN
giá trị từ máy thu. Bạn có thể chỉ định tên người dùng hoặc ID người dùng cho TỪ và ĐẾN
giá trị và TỪ giá trị cũng có thể là một chuỗi ký tự đại diện, sẽ được khớp
so với tên của người gửi (các ký tự đại diện KHÔNG khớp với số ID, mặc dù hãy xem
dưới đây để biết lý do tại sao một '*' phù hợp với mọi thứ). Thay vào đó, bạn có thể chỉ định một dải ID
số thông qua một phạm vi bao gồm: LOW-HIGH. Ví dụ:
--usermap = 0-99: nothing, wayne: admin, *: normal --groupmap = usr: 1,1: usr
Kết quả đầu tiên trong danh sách là kết quả được sử dụng. Bạn nên chỉ định tất cả
ánh xạ người dùng bằng cách sử dụng một - sơ đồ tùy chọn và / hoặc tất cả các ánh xạ nhóm của bạn bằng cách sử dụng
một đơn - sơ đồ nhóm tùy chọn.
Lưu ý rằng tên của người gửi cho người dùng và nhóm 0 không được truyền tới
người nhận, vì vậy bạn nên đối sánh các giá trị này bằng số 0 hoặc sử dụng tên trong
ảnh hưởng đến phía nhận (thường là "gốc"). Tất cả những thứ khác TỪ tên phù hợp với những
đang được sử dụng ở phía gửi. Tất cả ĐẾN tên phù hợp với những tên đang được sử dụng ở phía nhận.
Bất kỳ ID nào không có tên ở phía gửi được coi là trống
tên cho mục đích phù hợp. Điều này cho phép chúng được so khớp thông qua dấu "*" hoặc
sử dụng một tên trống. Ví dụ:
--usermap =: không ai --groupmap = *: không ai cả
Khi --numeric-id tùy chọn được sử dụng, người gửi không gửi bất kỳ tên nào, vì vậy tất cả
ID được coi là có tên trống. Điều này có nghĩa là bạn sẽ cần phải
chỉ định số TỪ các giá trị nếu bạn muốn ánh xạ các ID không tên này với các
các giá trị.
Đối với - sơ đồ tùy chọn để có bất kỳ hiệu ứng nào, -o (--chủ nhân) tùy chọn phải được sử dụng
(hoặc ngụ ý), và người nhận sẽ cần phải chạy như một người dùng cấp cao (xem thêm
các --giả-siêu Lựa chọn). Cho - sơ đồ nhóm tùy chọn để có bất kỳ hiệu ứng nào, -g
(--các nhóm) tùy chọn phải được sử dụng (hoặc ngụ ý) và người nhận sẽ cần phải có
quyền thiết lập nhóm đó.
--chown = USER: GROUP
Tùy chọn này buộc tất cả các tệp thuộc quyền sở hữu của USER với nhóm GROUP. Đây là một
giao diện đơn giản hơn sử dụng - sơ đồ và - sơ đồ nhóm trực tiếp, nhưng nó là
được triển khai bằng cách sử dụng các tùy chọn đó trong nội bộ, vì vậy bạn không thể kết hợp chúng. Nếu một trong hai
USER hoặc GROUP trống, sẽ không có ánh xạ cho người dùng / nhóm bị bỏ qua. Nếu NHÓM
trống, dấu hai chấm ở cuối có thể bị bỏ qua, nhưng nếu USER để trống, dấu hai chấm ở đầu
phải được cung cấp.
Nếu bạn chỉ định "--chown = foo: bar, thì điều này giống hệt như chỉ định
"--usermap = *: foo --groupmap = *: bar", chỉ dễ dàng hơn.
--timeout = TIMEOUT
Tùy chọn này cho phép bạn đặt thời gian chờ I / O tối đa tính bằng giây. Nếu không có dữ liệu là
được chuyển trong một thời gian nhất định thì rsync sẽ thoát. Giá trị mặc định là 0,
có nghĩa là không có thời gian chờ.
- thời gian chờ
Tùy chọn này cho phép bạn đặt khoảng thời gian mà rsync sẽ đợi
kết nối với daemon rsync để thành công. Nếu đạt đến thời gian chờ, rsync sẽ thoát
với một lỗi.
--Địa chỉ
Theo mặc định, rsync sẽ liên kết với địa chỉ ký tự đại diện khi kết nối với rsync
daemon. Các --Địa chỉ tùy chọn cho phép bạn chỉ định một địa chỉ IP cụ thể (hoặc
tên máy chủ) để liên kết với. Xem thêm tùy chọn này trong --daemon phần chế độ.
--port = PORT
Điều này chỉ định một số cổng TCP thay thế để sử dụng thay vì mặc định là 873.
Điều này chỉ cần thiết nếu bạn đang sử dụng cú pháp dấu hai chấm (: :) để kết nối với
một daemon rsync (vì cú pháp URL có một cách để chỉ định cổng như một phần của
URL). Xem thêm tùy chọn này trong --daemon phần chế độ.
--sockopt
Tùy chọn này có thể mang đến niềm vui bất tận cho những người muốn điều chỉnh hệ thống của họ để
mức độ tối đa. Bạn có thể đặt tất cả các loại tùy chọn ổ cắm có thể thực hiện chuyển
nhanh hơn (hoặc chậm hơn!). Đọc trang người đàn ông cho lệnh gọi hệ thống setsockopt () để biết chi tiết
về một số tùy chọn mà bạn có thể đặt. Theo mặc định không có tùy chọn ổ cắm đặc biệt
được thiết lập. Điều này chỉ ảnh hưởng đến các kết nối ổ cắm trực tiếp với daemon rsync từ xa.
Tùy chọn này cũng tồn tại trong --daemon phần chế độ.
--chặn-io
Điều này yêu cầu rsync sử dụng chặn I / O khi khởi chạy vận chuyển shell từ xa. Nếu
trình bao từ xa là rsh hoặc remsh, rsync mặc định sử dụng chặn I / O,
nếu không, nó mặc định sử dụng I / O không chặn. (Lưu ý rằng ssh thích
I / O không chặn.)
--outbuf = MODE
Điều này đặt chế độ đệm đầu ra. Chế độ có thể là Không có (hay còn gọi là Unbuffered), Dòng,
hoặc Chặn (hay còn gọi là Đầy đủ). Bạn có thể chỉ định chỉ một chữ cái duy nhất cho chế độ,
và sử dụng chữ hoa hoặc chữ thường.
Công dụng chính của tùy chọn này là thay đổi Bộ đệm đầy đủ thành Bộ đệm dòng khi
Đầu ra của rsync sẽ là một tệp hoặc đường dẫn.
-tôi, --itemize-thay đổi
Yêu cầu một danh sách được chia thành từng mục đơn giản về những thay đổi đang được thực hiện cho mỗi tệp,
bao gồm các thay đổi thuộc tính. Điều này giống hệt như chỉ định
--out-format = '% i % n% L '. Nếu bạn lặp lại tùy chọn, các tệp không thay đổi cũng sẽ
đầu ra, nhưng chỉ khi rsync nhận ít nhất là phiên bản 2.6.7 (bạn có thể sử dụng -vv
với các phiên bản cũ hơn của rsync, nhưng điều đó cũng làm bật kết quả của chi tiết khác
tin nhắn).
Lối thoát "% i" có đầu ra khó hiểu dài 11 chữ cái. Định dạng chung
giống như một chuỗi YXcstpoguax, Nơi Y được thay thế bằng loại cập nhật đang
làm xong, X được thay thế bằng loại tệp và các chữ cái khác đại diện cho các thuộc tính
có thể được xuất ra nếu chúng đang được sửa đổi.
Các loại cập nhật thay thế Y như sau:
o Một < có nghĩa là một tệp đang được chuyển đến máy chủ lưu trữ từ xa (đã gửi).
o Một > có nghĩa là một tệp đang được chuyển đến máy chủ cục bộ (đã nhận).
o Một c có nghĩa là một thay đổi / tạo cục bộ đang xảy ra đối với mặt hàng (chẳng hạn như
việc tạo một thư mục hoặc thay đổi một liên kết tượng trưng, v.v.).
o Một h có nghĩa là mặt hàng đó là một liên kết cứng đến một mặt hàng khác (yêu cầu
- liên kết cứng).
o Một . có nghĩa là mặt hàng không được cập nhật (mặc dù nó có thể có
thuộc tính đang được sửa đổi).
o Một * có nghĩa là phần còn lại của vùng đầu ra được chia thành từng khoản có chứa một thông báo (ví dụ:
"xóa").
Các loại tệp thay thế X là: f cho một tệp, một d cho một thư mục, một L cho
một liên kết tượng trưng, một D cho một thiết bị và S cho một tệp đặc biệt (ví dụ: các ổ cắm được đặt tên và
năm mươi).
Các chữ cái khác trong chuỗi ở trên là các chữ cái thực tế sẽ được xuất ra nếu
thuộc tính liên quan cho mặt hàng đang được cập nhật hoặc một "." không thay đổi.
Ba ngoại lệ cho điều này là: (1) một mục mới được tạo thay thế mỗi chữ cái bằng một
"+", (2) một mục giống hệt nhau thay thế các dấu chấm bằng dấu cách và (3) một mục không xác định
thuộc tính thay thế mỗi chữ cái bằng dấu "?" (điều này có thể xảy ra khi nói chuyện với một người lớn tuổi hơn
rsync).
Thuộc tính được liên kết với mỗi chữ cái như sau:
o Một c có nghĩa là một tệp thông thường có tổng tổng kiểm tra khác (yêu cầu
--tổng kiểm tra) hoặc liên kết biểu tượng, thiết bị hoặc tệp đặc biệt có giá trị đã thay đổi.
Lưu ý rằng nếu bạn đang gửi tệp tới rsync trước 3.0.1, thì thay đổi này
cờ sẽ chỉ hiển thị cho các tệp thông thường khác nhau về tổng kiểm tra.
o Một s có nghĩa là kích thước của một tệp thông thường khác và sẽ được cập nhật bởi
chuyển tập tin.
o Một t có nghĩa là thời gian sửa đổi khác nhau và đang được cập nhật lên
giá trị của người gửi (yêu cầu - thời gian). Giá trị thay thế của T có nghĩa là
thời gian sửa đổi sẽ được đặt thành thời gian chuyển giao, điều này xảy ra khi
tệp / liên kết biểu tượng / thiết bị được cập nhật mà không có - thời gian và khi một liên kết biểu tượng được thay đổi
và người nhận không thể đặt thời gian của nó. (Lưu ý: khi sử dụng rsync 3.0.0
khách hàng, bạn có thể thấy s cờ kết hợp với t thay vì thích hợp T
cờ cho lỗi cài đặt thời gian này.)
o Một p có nghĩa là các quyền khác nhau và đang được cập nhật lên
giá trị của người gửi (yêu cầu --perm).
o An o có nghĩa là chủ sở hữu khác và đang được cập nhật giá trị của người gửi
(Yêu cầu --chủ nhân và các đặc quyền của người dùng siêu cấp).
o Một g có nghĩa là nhóm khác và đang được cập nhật giá trị của người gửi
(Yêu cầu --tập đoàn và thẩm quyền thành lập nhóm).
o u khe cắm được dành riêng để sử dụng trong tương lai.
o a nghĩa là thông tin ACL đã thay đổi.
o x có nghĩa là thông tin thuộc tính mở rộng đã thay đổi.
Có thể có một đầu ra khác: khi xóa tệp, "% i" sẽ xuất chuỗi
"* xóa" cho từng mục đang được xóa (giả sử rằng bạn đang nói chuyện với
rsync đủ gần đây để nó ghi lại các lần xóa thay vì xuất chúng dưới dạng chi tiết
thông điệp).
--out-format = FORMAT
Điều này cho phép bạn chỉ định chính xác những gì ứng dụng khách rsync xuất ra cho người dùng trên
cơ sở mỗi lần cập nhật. Định dạng là một chuỗi văn bản chứa ký tự đơn được nhúng
các chuỗi thoát có tiền tố là ký tự phần trăm (%). Định dạng mặc định của
"% n% L" được giả định nếu một trong hai --info = tên or -v được chỉ định (điều này cho bạn biết
tên của tệp và nếu mục là một liên kết thì nó trỏ đến đâu). Để có danh sách đầy đủ
các ký tự thoát có thể có, hãy xem cài đặt "định dạng nhật ký" trong rsyncd.conf
trang chủ.
Chỉ định - định dạng ngoài tùy chọn ngụ ý --info = tên tùy chọn, sẽ
đề cập đến từng tệp, dir, v.v. được cập nhật theo cách quan trọng (chuyển
tệp, liên kết biểu tượng / thiết bị được tạo lại hoặc thư mục được chạm). Ngoài ra, nếu
itemize-thay đổi thoát (% i) được bao gồm trong chuỗi (ví dụ: nếu
--itemize-thay đổi tùy chọn đã được sử dụng), việc ghi nhật ký tên sẽ tăng lên để đề cập đến bất kỳ
hàng được thay đổi dưới bất kỳ hình thức nào (miễn là phía nhận hàng ít nhất là 2.6.4).
Xem --itemize-thay đổi tùy chọn cho mô tả đầu ra của "% i".
Rsync sẽ xuất ra chuỗi định dạng ngoài trước khi chuyển tệp trừ khi một trong các
số liệu thống kê chuyển nhượng được yêu cầu, trong trường hợp đó, việc ghi nhật ký được thực hiện tại
khi kết thúc quá trình chuyển tệp. Khi việc ghi nhật ký muộn này có hiệu lực và --phát triển
cũng được chỉ định, rsync cũng sẽ xuất ra tên của tệp đang được chuyển
trước thông tin tiến trình của nó (tất nhiên là theo sau bởi đầu ra định dạng ngoài).
--log-file = FILE
Tùy chọn này khiến rsync ghi lại những gì nó đang làm với một tệp. Điều này tương tự như
ghi nhật ký mà daemon thực hiện, nhưng có thể được yêu cầu cho phía máy khách và / hoặc
phía máy chủ của chuyển giao không phải daemon. Nếu được chỉ định là tùy chọn khách hàng, hãy chuyển
ghi nhật ký sẽ được bật với định dạng mặc định là "% i% n% L". Xem
--log-file-định dạng tùy chọn nếu bạn muốn ghi đè điều này.
Đây là một lệnh ví dụ yêu cầu phía điều khiển từ xa ghi lại những gì đang xảy ra:
rsync -av --remote-option = - log-file = / tmp / rlog src / dest /
Điều này rất hữu ích nếu bạn cần gỡ lỗi tại sao kết nối bị đóng đột ngột.
--log-file-format = FORMAT
Điều này cho phép bạn chỉ định chính xác những gì ghi nhật ký mỗi lần cập nhật được đưa vào tệp
được chỉ định bởi --log-tệp tùy chọn (cũng phải được chỉ định cho tùy chọn này để
có tác dụng gì). Nếu bạn chỉ định một chuỗi trống, các tệp cập nhật sẽ không
được đề cập trong tệp nhật ký. Để biết danh sách các ký tự thoát có thể có, hãy xem
"định dạng nhật ký" trong trang rsyncd.conf.
Định dạng mặc định được sử dụng nếu --log-tệp được chỉ định và tùy chọn này không phải là '% i
% n% L '.
--thống kê
Điều này yêu cầu rsync in một bộ thống kê chi tiết về quá trình truyền tệp,
cho phép bạn cho biết thuật toán chuyển delta của rsync hiệu quả như thế nào đối với
dữ liệu. Tùy chọn này tương đương với --info = stats2 nếu kết hợp với 0 hoặc 1 -v
tùy chọn, hoặc --info = stats3 nếu kết hợp với 2 hoặc nhiều hơn -v tùy chọn.
Các số liệu thống kê hiện tại như sau:
o Con số of các tập tin là tổng số tất cả các "tệp" (theo nghĩa chung),
bao gồm các thư mục, liên kết tượng trưng, v.v. Tổng số sẽ được theo sau bởi
danh sách số lượng theo loại tệp (nếu tổng số khác XNUMX). Ví dụ: "(reg:
5, dir: 3, link: 2, dev: 1, special: 1) "liệt kê tổng số cho các tệp thông thường,
thư mục, liên kết tượng trưng, thiết bị và các tệp đặc biệt. Nếu bất kỳ giá trị nào là 0, nó
hoàn toàn bị bỏ qua trong danh sách.
o Con số of tạo ra các tập tin là số lượng "tệp" (nghĩa chung)
đã được tạo (thay vì cập nhật). Tổng số sẽ được theo sau bởi một
danh sách số lượng theo loại tệp (nếu tổng số khác XNUMX).
o Con số of xóa các tập tin là số lượng "tệp" (nghĩa chung)
đã được tạo (thay vì cập nhật). Tổng số sẽ được theo sau bởi một
danh sách số lượng theo loại tệp (nếu tổng số khác XNUMX). Lưu ý rằng dòng này
chỉ được xuất ra nếu quá trình xóa đang có hiệu lực và chỉ khi giao thức 31 đang được
được sử dụng (mặc định cho rsync 3.1.x).
o Con số of đều đặn các tập tin chuyển là số lượng tệp bình thường đã
được cập nhật thông qua thuật toán chuyển delta của rsync, không bao gồm dirs,
liên kết tượng trưng, v.v. Lưu ý rằng rsync 3.1.0 đã thêm từ "thông thường" vào
tiêu đề.
o Tổng cộng hồ sơ kích thước là tổng của tất cả các kích thước tệp trong quá trình chuyển. Cái này
không tính bất kỳ kích thước nào cho các thư mục hoặc tệp đặc biệt, nhưng bao gồm
kích thước của các liên kết tượng trưng.
o Tổng cộng chuyển hồ sơ kích thước là tổng của tất cả các kích thước tệp chỉ cho
các tập tin đã chuyển.
o Nghĩa đen dữ liệu là lượng dữ liệu cập nhật tệp chưa từng có mà chúng tôi phải gửi đến
bộ thu để nó tạo lại các tệp đã cập nhật.
o Phù hợp dữ liệu là lượng dữ liệu mà người nhận nhận được cục bộ khi tạo lại
các tập tin cập nhật.
o Tập tin kích thước dữ liệu danh sách tệp lớn như thế nào khi người gửi gửi nó đến
người nhận. Kích thước này nhỏ hơn kích thước trong bộ nhớ cho danh sách tệp do
để nén dữ liệu trùng lặp khi rsync gửi danh sách.
o Tập tin thế hệ thời gian là số giây mà người gửi đã dành
tạo danh sách tệp. Điều này yêu cầu một rsync hiện đại ở phía gửi
cho điều này là hiện tại.
o Tập tin chuyển thời gian là số giây mà người gửi đã dành
gửi danh sách tệp cho người nhận.
o Tổng cộng byte gởi là tổng số byte rsync được gửi từ
từ phía máy khách đến phía máy chủ.
o Tổng cộng byte nhận là tổng số tất cả các byte không phải tin nhắn rsync
được phía máy khách nhận từ phía máy chủ. Các byte "không phải tin nhắn" có nghĩa là
rằng chúng tôi không đếm số byte cho một thông báo dài mà máy chủ đã gửi đến
chúng tôi, điều này làm cho số liệu thống kê nhất quán hơn.
-8, --8-bit-đầu ra
Điều này cho rsync để thay thế tất cả các ký tự bit cao không thoát trong đầu ra
cố gắng kiểm tra chúng để xem chúng có hợp lệ ở ngôn ngữ hiện tại hay không và thoát
những cái không hợp lệ. Tất cả các ký tự điều khiển (nhưng không bao giờ các tab) luôn được thoát,
bất kể cài đặt của tùy chọn này.
Thành ngữ thoát bắt đầu trong 2.6.7 là tạo ra một dấu gạch chéo ngược theo nghĩa đen (\) và một
băm (#), theo sau là chính xác 3 chữ số bát phân. Ví dụ: một dòng mới sẽ xuất ra
là "\ # 012". Dấu gạch chéo ngược theo nghĩa đen có trong tên tệp không được thoát trừ khi
theo sau là một băm và 3 chữ số (0-9).
-NS, - có thể đọc được của con người
Đầu ra các số ở định dạng dễ đọc hơn. Có 3 cấp độ có thể: (1)
đầu ra các số có dấu phân cách giữa mỗi bộ 3 chữ số (dấu phẩy hoặc dấu
dấu chấm, tùy thuộc vào việc dấu thập phân được biểu thị bằng dấu chấm hay dấu phẩy);
(2) số đầu ra theo đơn vị 1000 (với hậu tố ký tự cho các đơn vị lớn hơn -
xem bên dưới); (3) số đầu ra theo đơn vị 1024.
Mặc định là cấp độ con người có thể đọc được 1. Mỗi -h tùy chọn tăng cấp độ lên một.
Bạn có thể hạ cấp độ xuống 0 (để xuất số dưới dạng chữ số thuần túy) bằng cách xác định
các - không con người có thể đọc được (- không-h) Lựa chọn.
Các chữ cái đơn vị được thêm vào ở cấp độ 2 và 3 là: K (kilo), M (mega), G
(giga), hoặc T (tera). Ví dụ: một tệp 1234567 byte sẽ xuất ra là 1.23M trong
cấp 2 (giả sử rằng một dấu chấm là dấu thập phân cục bộ của bạn).
Lưu ý về khả năng tương thích ngược: các phiên bản rsync trước 3.1.0 không hỗ trợ
con người có thể đọc được cấp độ 1 và chúng mặc định ở cấp độ 0. Do đó, chỉ định một hoặc hai
-h các tùy chọn sẽ hoạt động theo cách có thể so sánh được trong các phiên bản cũ và mới miễn là
bạn đã không chỉ định một - không-h tùy chọn trước một hoặc nhiều -h tùy chọn. Xem
- chỉ danh sách tùy chọn cho một sự khác biệt.
- một phần
Theo mặc định, rsync sẽ xóa bất kỳ tệp nào được chuyển một phần nếu quá trình chuyển
bị gián đoạn. Trong một số trường hợp, tốt hơn là nên giữ một phần
các tập tin đã chuyển. Sử dụng - một phần tùy chọn cho rsync biết để giữ một phần tệp
điều này sẽ làm cho quá trình chuyển tiếp phần còn lại của tệp nhanh hơn nhiều.
--partial-dir = DIR
Một cách tốt hơn để giữ một phần tệp hơn là - một phần tùy chọn là chỉ định một DIR
sẽ được sử dụng để giữ dữ liệu một phần (thay vì ghi nó ra
tệp đích). Trong lần chuyển tiếp theo, rsync sẽ sử dụng một tệp được tìm thấy trong dir này
dưới dạng dữ liệu để tăng tốc độ tiếp tục quá trình truyền và sau đó xóa nó sau khi
phục vụ mục đích của nó.
Lưu ý rằng nếu --toàn bộ tập tin được chỉ định (hoặc ngụ ý), bất kỳ tệp dir nào được
tìm thấy cho một tệp đang được cập nhật sẽ chỉ bị xóa (vì rsync là
gửi tệp mà không sử dụng thuật toán chuyển delta của rsync).
Rsync sẽ tạo ra DIR nếu nó bị thiếu (chỉ là dir cuối cùng - không phải toàn bộ
đường dẫn). Điều này giúp bạn dễ dàng sử dụng một đường dẫn tương đối (chẳng hạn như
"--partial-dir = .rsync-part") để rsync tạo thư mục một phần trong
thư mục của tệp đích khi cần và sau đó xóa lại khi phần
tập tin bị xóa.
Nếu giá trị một phần dir không phải là một đường dẫn tuyệt đối, rsync sẽ thêm một quy tắc loại trừ tại
kết thúc của tất cả các loại trừ hiện có của bạn. Điều này sẽ ngăn chặn việc gửi bất kỳ
các tệp một phần có thể tồn tại ở phía gửi và cũng sẽ ngăn
xóa không đúng lúc các mục bị mờ một phần ở phía nhận. Một ví dụ:
ở trên --partial-dir tùy chọn sẽ thêm tương đương với "-f '-P .rsync-part / '"tại
cuối của bất kỳ quy tắc lọc nào khác.
Nếu bạn đang cung cấp các quy tắc loại trừ của riêng mình, bạn có thể cần thêm
loại trừ / ẩn / bảo vệ quy tắc cho một phần dir vì (1) quy tắc được thêm tự động có thể
không hiệu quả ở cuối các quy tắc khác của bạn hoặc (2) bạn có thể muốn ghi đè
lựa chọn loại trừ của rsync. Ví dụ: nếu bạn muốn dọn dẹp rsync bất kỳ
các dirs thừa một phần có thể nằm xung quanh, bạn nên chỉ định --xóa-sau
và thêm quy tắc lọc "rủi ro", ví dụ: -f 'R .rsync-part / '. (Tránh sử dụng
--xóa trước đó or --xóa trong thời gian trừ khi bạn không cần rsync để sử dụng bất kỳ
dữ liệu từng phần còn lại trong quá trình chạy hiện tại.)
QUAN TRỌNG: --partial-dir không được ghi bởi những người dùng khác hoặc nó là một
rủi ro bảo mật. Vd: TRÁNH "/ Tmp".
Bạn cũng có thể đặt giá trị từng phần cho biến môi trường RSYNC_PARTIAL_DIR.
Đặt điều này trong môi trường không bắt buộc - một phần để được kích hoạt, nhưng đúng hơn
nó ảnh hưởng đến vị trí của các tệp một phần khi - một phần được quy định. Ví dụ,
thay vì sử dụng --partial-dir = .rsync-tmp cùng với --phát triển, bạn có thể đặt
RSYNC_PARTIAL_DIR = .rsync-tmp trong môi trường của bạn và sau đó chỉ cần sử dụng -P tùy chọn để
bật việc sử dụng dir .rsync-tmp để chuyển một phần. Lần duy nhất
các - một phần tùy chọn không tìm kiếm giá trị môi trường này là (1) khi
--nơi đã được chỉ định (kể từ --nơi xung đột với --partial-dir), và 2)
khi nào --delay-update đã được chỉ định (xem bên dưới).
Đối với mục đích của cài đặt "tùy chọn từ chối" của daemon-config, --partial-dir
làm không bao hàm, ngụ ý - một phần. Đây là lý do từ chối - một phần tùy chọn có thể được
được sử dụng để không cho phép ghi đè các tệp đích bằng cách chuyển một phần,
trong khi vẫn cho phép thành ngữ an toàn hơn được cung cấp bởi --partial-dir.
--delay-update
Tùy chọn này đặt tệp tạm thời từ mỗi tệp được cập nhật vào một thư mục lưu giữ
cho đến khi kết thúc quá trình chuyển giao, tại thời điểm đó tất cả các tệp được đổi tên vào vị trí
liên tiếp nhanh chóng. Điều này cố gắng làm cho việc cập nhật các tệp nhiều hơn một chút
nguyên tử. Theo mặc định, các tệp được đặt vào một thư mục có tên ". ~ Tmp ~" trong mỗi tệp
thư mục đích của tệp, nhưng nếu bạn đã chỉ định --partial-dir Tùy chọn,
thư mục đó sẽ được sử dụng thay thế. Xem các bình luận trong --partial-dir phần
để thảo luận về cách dir ". ~ tmp ~" này sẽ bị loại trừ khỏi quá trình chuyển giao và
bạn có thể làm gì nếu muốn rsync dọn dẹp các dirs ". ~ tmp ~" cũ có thể đang nói dối
xung quanh. Xung đột với --nơi và --endend.
Tùy chọn này sử dụng nhiều bộ nhớ hơn ở phía nhận (một bit cho mỗi tệp được truyền)
và cũng yêu cầu đủ dung lượng đĩa trống ở phía nhận để chứa
bản sao bổ sung của tất cả các tệp được cập nhật. Cũng lưu ý rằng bạn không nên sử dụng
con đường tuyệt đối đến --partial-dir trừ khi (1) không có bất kỳ tệp nào trong
chuyển nhượng có cùng tên (vì tất cả các tệp cập nhật sẽ được đưa vào một
thư mục đơn nếu đường dẫn là tuyệt đối) và (2) không có điểm gắn kết nào trong
phân cấp (vì các bản cập nhật bị trì hoãn sẽ không thành công nếu chúng không thể được đổi tên thành
địa điểm).
Xem thêm tập lệnh perl "nguyên tử-rsync" trong tiểu phân "hỗ trợ" để biết bản cập nhật
thuật toán thậm chí còn nguyên tử hơn (nó sử dụng --link-đích và một hệ thống phân cấp song song của
các tập tin).
-NS, --prune-rỗng-dirs
Tùy chọn này yêu cầu rsync nhận để loại bỏ các thư mục trống từ
danh sách tệp, bao gồm các thư mục lồng nhau không có con không phải là thư mục. Cái này
rất hữu ích để tránh việc tạo ra một loạt các thư mục vô dụng khi
gửi rsync là quét đệ quy một hệ thống phân cấp các tệp bằng cách sử dụng
bao gồm / loại trừ / quy tắc lọc.
Lưu ý rằng việc sử dụng các quy tắc chuyển giao, chẳng hạn như - kích thước tối thiểu tùy chọn, không ảnh hưởng
những gì đi vào danh sách tệp và do đó không để trống các thư mục, ngay cả khi
không có tệp nào trong thư mục phù hợp với quy tắc chuyển.
Bởi vì danh sách tệp thực sự đang được lược bớt, tùy chọn này cũng ảnh hưởng đến những gì
thư mục bị xóa khi xóa đang hoạt động. Tuy nhiên, hãy nhớ rằng
các tệp và thư mục bị loại trừ có thể ngăn các mục hiện có bị xóa do
loại trừ cả ẩn tệp nguồn và bảo vệ tệp đích. Xem
tùy chọn quy tắc bộ lọc dễ hư hỏng để biết cách tránh điều này.
Bạn có thể ngăn chặn việc cắt bớt một số thư mục trống nhất định khỏi danh sách tệp bằng cách
sử dụng bộ lọc "bảo vệ" toàn cầu. Ví dụ: tùy chọn này sẽ đảm bảo rằng
thư mục "blankdir" được giữ trong danh sách tệp:
- bộ lọc 'bảo vệ blankdir /'
Đây là một ví dụ sao chép tất cả các tệp .pdf trong một hệ thống phân cấp, chỉ tạo
các thư mục đích cần thiết để chứa các tệp .pdf và đảm bảo rằng bất kỳ
các tệp và thư mục thừa trong đích sẽ bị loại bỏ (lưu ý rằng ẩn
bộ lọc không phải thư mục đang được sử dụng thay vì loại trừ):
rsync -avm --del --include = '*. pdf' -f 'hide ,! * / 'src / dest
Nếu bạn không muốn xóa các tệp đích thừa, thì càng có nhiều thời gian
tùy chọn của "--include = '* /' --exclude = '*'"sẽ hoạt động tốt thay cho
ẩn bộ lọc (nếu điều đó là tự nhiên hơn đối với bạn).
--phát triển
Tùy chọn này yêu cầu rsync in thông tin hiển thị tiến trình chuyển.
Điều này mang đến cho người dùng cảm giác buồn chán để xem. Với rsync hiện đại, điều này cũng giống như vậy
như chỉ định --info = flist2, tên, tiến trình, nhưng bất kỳ cài đặt nào do người dùng cung cấp cho những
cờ thông tin được ưu tiên (ví dụ: "--info = flist0 --progress").
Trong khi rsync đang truyền một tệp thông thường, nó sẽ cập nhật một dòng tiến trình trông
như thế này:
782448 63% 110.64kB / giây 0:00:04
Trong ví dụ này, người nhận đã tạo lại 782448 byte hoặc 63% của người gửi
tệp đang được tạo lại với tốc độ 110.64 kilobyte mỗi giây và
quá trình chuyển sẽ kết thúc sau 4 giây nếu tốc độ hiện tại được duy trì cho đến khi
cuối.
Các số liệu thống kê này có thể gây hiểu nhầm nếu sử dụng thuật toán chuyển delta của rsync.
Ví dụ: nếu tệp của người gửi bao gồm tệp cơ sở, theo sau là tệp bổ sung
dữ liệu, tỷ lệ được báo cáo có thể sẽ giảm đáng kể khi người nhận
dữ liệu theo nghĩa đen và quá trình chuyển có thể mất nhiều thời gian hơn để hoàn thành
người nhận ước tính khi nó đang hoàn thành phần phù hợp của tệp.
Khi quá trình truyền tệp kết thúc, rsync sẽ thay thế dòng tiến trình bằng một bản tóm tắt
dòng trông như thế này:
1,238,099 100% 146.38kB / s 0:00:08 (xfr # 5, to-chk = 169/396)
Trong ví dụ này, tệp có tổng độ dài là 1,238,099 byte, tốc độ trung bình là
truyền cho toàn bộ tệp là 146.38 kilobyte mỗi giây trong 8 giây
cần phải hoàn thành, đây là lần chuyển thứ 5 của một tệp thông thường trong thời gian hiện tại
phiên rsync và có 169 tệp khác để người nhận kiểm tra (để xem nếu
chúng có được cập nhật hay không) còn lại trong tổng số 396 tệp trong danh sách tệp.
Trong quá trình quét đệ quy tăng dần, rsync sẽ không biết tổng số tệp trong
danh sách tệp cho đến khi kết thúc quá trình quét, nhưng vì nó bắt đầu chuyển
trong quá trình quét, nó sẽ hiển thị một dòng có văn bản "ir-chk" (cho
kiểm tra đệ quy gia tăng) thay vì "to-chk" cho đến khi nó biết
kích thước đầy đủ của danh sách, lúc này nó sẽ chuyển sang sử dụng "to-chk". Vì vậy,
nhìn thấy "ir-chk" cho bạn biết rằng tổng số tệp trong danh sách tệp là
vẫn tiếp tục tăng (và mỗi lần như vậy, số lượng tệp còn lại để kiểm tra
sẽ tăng theo số lượng tệp được thêm vào danh sách).
-P -P tùy chọn tương đương với - một phần --phát triển. Mục đích của nó là làm cho nó
dễ dàng hơn nhiều để chỉ định hai tùy chọn này cho một lần chuyển dài có thể
bị gián đoạn.
Cũng có một --info = process2 tùy chọn xuất ra số liệu thống kê dựa trên toàn bộ
chuyển, thay vì các tệp riêng lẻ. Sử dụng cờ này mà không xuất ra
tên tệp (ví dụ: tránh -v hoặc chỉ định --info = name0 nếu bạn muốn xem cách chuyển giao
đang làm mà không cần cuộn màn hình với rất nhiều tên. (Bạn không cần phải
chỉ định la --phát triển tùy chọn để sử dụng --info = process2.)
--password-file = FILE
Tùy chọn này cho phép bạn cung cấp mật khẩu để truy cập daemon rsync thông qua
tệp hoặc thông qua đầu vào tiêu chuẩn nếu FILE is -. Tệp chỉ nên chứa mật khẩu
trên dòng đầu tiên (tất cả các dòng khác bị bỏ qua). Rsync sẽ thoát với lỗi nếu
FILE có thể đọc được trên toàn thế giới hoặc nếu lệnh rsync do root-run tìm thấy tệp không thuộc sở hữu của root.
Tùy chọn này không cung cấp mật khẩu cho phương tiện truyền tải shell từ xa chẳng hạn như ssh; đến
tìm hiểu cách thực hiện điều đó, hãy tham khảo tài liệu của trình bao từ xa. Khi truy cập một
rsync daemon sử dụng trình bao từ xa làm phương tiện truyền tải, tùy chọn này chỉ có
có hiệu lực sau khi trình bao từ xa kết thúc quá trình xác thực của nó (tức là nếu bạn cũng có
đã chỉ định mật khẩu trong tệp cấu hình của daemon).
- chỉ danh sách
Tùy chọn này sẽ làm cho các tệp nguồn được liệt kê thay vì được chuyển. Cái này
tùy chọn được suy ra nếu có một đối số nguồn duy nhất và không có đích nào được chỉ định, vì vậy
công dụng chính của nó là: (1) để biến một lệnh sao chép bao gồm một đối số đích thành
lệnh liệt kê tệp hoặc (2) để có thể chỉ định nhiều đối số nguồn
(lưu ý: hãy chắc chắn bao gồm điểm đến). Thận trọng: hãy nhớ rằng một nguồn
đối số với một thẻ đại diện được mở rộng bởi shell thành nhiều args, vì vậy nó không bao giờ
an toàn để cố gắng liệt kê một đối số như vậy mà không sử dụng tùy chọn này. Ví dụ:
rsync -av --list-only foo * dest /
Bắt đầu với rsync 3.1.0, các kích thước xuất ra bằng - chỉ danh sách bị ảnh hưởng bởi
- có thể đọc được của con người lựa chọn. Theo mặc định, chúng sẽ chứa dấu phân tách chữ số, nhưng cao hơn
mức độ dễ đọc sẽ xuất ra các kích thước với các hậu tố đơn vị. Cũng lưu ý rằng
chiều rộng cột cho đầu ra kích thước đã tăng từ 11 lên 14 ký tự cho tất cả
mức độ con người có thể đọc được. Sử dụng - không-h nếu bạn chỉ muốn các chữ số trong kích thước và
chiều rộng cột cũ 11 ký tự.
Lưu ý về khả năng tương thích: khi yêu cầu một danh sách từ xa các tệp từ một rsync
là phiên bản 2.6.3 trở lên, bạn có thể gặp lỗi nếu yêu cầu
danh sách không đệ quy. Điều này là do danh sách tệp ngụ ý --dir tùy chọn
w / o --đệ quyvà các rsync cũ hơn không có tùy chọn đó. Để tránh vấn đề này,
hoặc chỉ định --không có thư mục tùy chọn (nếu bạn không cần mở rộng
content), hoặc bật đệ quy và loại trừ nội dung của các thư mục con: -r
--exclude = '/ * / *'.
--bwlimit = RATE
Tùy chọn này cho phép bạn chỉ định tốc độ truyền tối đa cho dữ liệu được gửi qua
ổ cắm, được chỉ định bằng đơn vị trên giây. Giá trị RATE có thể được nối với một
chuỗi để chỉ ra một hệ số kích thước và có thể là một giá trị phân số (ví dụ:
"--bwlimit = 1.5m"). Nếu không có hậu tố nào được chỉ định, giá trị sẽ được giả định là
đơn vị 1024 byte (như thể "K" hoặc "KiB" đã được thêm vào). Xem - kích thước tối đa
tùy chọn để mô tả tất cả các hậu tố có sẵn. Giá trị bằng XNUMX chỉ định
không giới hạn.
Vì lý do tương thích ngược, giới hạn tỷ lệ sẽ được làm tròn đến gần nhất
Đơn vị KiB, vì vậy không thể có tốc độ nhỏ hơn 1024 byte mỗi giây.
Rsync ghi dữ liệu qua socket trong các khối và tùy chọn này vừa giới hạn kích thước
của các khối mà rsync viết và cố gắng giữ tốc độ truyền trung bình ở
giới hạn yêu cầu. Một số "burstiness" có thể được nhìn thấy khi rsync viết ra một khối
dữ liệu và sau đó ngủ để đưa tỷ lệ trung bình vào tuân thủ.
Do bộ đệm bên trong của dữ liệu, --phát triển tùy chọn có thể không chính xác
phản ánh về tốc độ dữ liệu được gửi. Điều này là do một số tệp có thể hiển thị
nhanh chóng được gửi đi khi dữ liệu nhanh chóng được lưu vào bộ đệm, trong khi dữ liệu khác có thể hiển thị
rất chậm khi xảy ra quá trình xả bộ đệm đầu ra. Điều này có thể được khắc phục trong một
phiên bản tương lai.
--write-batch = FILE
Ghi lại một tệp mà sau này có thể được áp dụng cho một điểm đến giống hệt khác với
--đọc-đợt. Xem phần "CHẾ ĐỘ BATCH" để biết thêm chi tiết và cả
--chỉ-ghi-hàng loạt tùy chọn.
--only-write-batch = FILE
Hoạt động như --write-batch, ngoại trừ việc không có cập nhật nào được thực hiện trên hệ thống đích
khi tạo lô. Điều này cho phép bạn vận chuyển các thay đổi đến đích
hệ thống thông qua một số phương tiện khác và sau đó áp dụng các thay đổi qua --đọc-đợt.
Lưu ý rằng bạn có thể thoải mái ghi lô trực tiếp vào một số phương tiện di động: nếu
phương tiện này sẽ đầy dung lượng trước khi kết thúc quá trình chuyển giao, bạn chỉ cần đăng ký
chuyển một phần đến đích và lặp lại toàn bộ quá trình để có được
phần còn lại của những thay đổi (miễn là bạn không bận tâm về một điểm đến được cập nhật một phần
hệ thống trong khi chu kỳ cập nhật nhiều lần đang diễn ra).
Cũng lưu ý rằng bạn chỉ tiết kiệm băng thông khi đẩy các thay đổi vào hệ thống từ xa
bởi vì điều này cho phép dữ liệu theo lô được chuyển hướng từ người gửi vào trong lô
tập tin mà không cần phải truyền qua dây đến người nhận (khi kéo, người gửi
là từ xa, và do đó không thể ghi lô).
--read-batch = FILE
Áp dụng tất cả các thay đổi được lưu trữ trong FILE, một tệp được tạo trước đó bởi
--write-batch. Nếu FILE is -, dữ liệu lô sẽ được đọc từ đầu vào chuẩn. Xem
phần "CHẾ ĐỘ TRÒ CHƠI" để biết thêm chi tiết.
- giao thức = NUM
Buộc sử dụng phiên bản giao thức cũ hơn. Điều này rất hữu ích để tạo một loạt
tệp tương thích với phiên bản rsync cũ hơn. Ví dụ: nếu rsync
2.6.4 đang được sử dụng với --write-batch tùy chọn, nhưng rsync 2.6.3 sẽ là
sử dụng để chạy --đọc-đợt tùy chọn, bạn nên sử dụng "--protocol = 28" khi tạo
tệp lô để buộc phiên bản giao thức cũ hơn được sử dụng trong tệp lô
(giả sử bạn không thể nâng cấp rsync trên hệ thống đọc).
--iconv = CONVERT_SPEC
Rsync có thể chuyển đổi tên tệp giữa các bộ ký tự bằng cách sử dụng tùy chọn này. Sử dụng một
CONVERT_SPEC trong tổng số "." yêu cầu rsync tra cứu bộ ký tự mặc định qua ngôn ngữ
thiết lập. Ngoài ra, bạn có thể chỉ định hoàn toàn việc chuyển đổi cần thực hiện bằng cách đưa ra
cục bộ và một bộ ký tự từ xa được phân tách bằng dấu phẩy theo thứ tự --iconv = ĐỊA PHƯƠNG, TỪ XA,
ví dụ --iconv = utf8, iso88591. Lệnh này đảm bảo rằng tùy chọn sẽ không thay đổi
cho dù bạn đang đẩy hay kéo tệp. Cuối cùng, bạn có thể chỉ định một trong hai
--no-iconv hoặc CONVERT_SPEC của "-" để tắt bất kỳ chuyển đổi nào. Mặc định
cài đặt của tùy chọn này là dành riêng cho từng trang web và cũng có thể bị ảnh hưởng bởi
Biến môi trường RSYNC_ICONV.
Để có danh sách bộ ký tự đặt tên cho thư viện iconv cục bộ của bạn hỗ trợ, bạn có thể chạy
"iconv - danh sách".
Nếu bạn chỉ định --bảo vệ-args Lựa chọn (-s), rsync sẽ dịch tên tệp
bạn chỉ định trên dòng lệnh đang được gửi đến máy chủ từ xa. Xem thêm
các --files-từ tùy chọn.
Lưu ý rằng rsync không thực hiện bất kỳ chuyển đổi tên nào trong các tệp bộ lọc (bao gồm
bao gồm / loại trừ tệp). Việc đảm bảo rằng bạn đang chỉ định đối sánh là tùy thuộc vào bạn
các quy tắc có thể phù hợp với cả hai bên của chuyển nhượng. Ví dụ, bạn có thể chỉ định
bổ sung quy tắc bao gồm / loại trừ nếu có sự khác biệt về tên tệp ở hai bên
cần được hạch toán.
Khi bạn vượt qua một --iconv tùy chọn cho một daemon rsync cho phép nó, daemon sử dụng
bộ ký tự được chỉ định trong tham số cấu hình "bộ ký tự" của nó bất kể
bảng mã từ xa mà bạn thực sự vượt qua. Do đó, bạn có thể thoải mái chỉ định
bộ ký tự cục bộ để truyền daemon (ví dụ: --iconv = utf8).
-4, --ipv4 or -6, --ipv6
Cho rsync biết ưu tiên IPv4 / IPv6 hơn khi tạo ổ cắm. Điều này chỉ ảnh hưởng đến ổ cắm
mà rsync có quyền kiểm soát trực tiếp, chẳng hạn như ổ cắm đi khi trực tiếp
liên hệ với daemon rsync. Xem thêm các tùy chọn này trong --daemon phần chế độ.
Nếu rsync được tuân thủ mà không hỗ trợ IPv6, thì --ipv6 tùy chọn sẽ không có
hiệu ứng. Các --phiên bản đầu ra sẽ cho bạn biết nếu đây là trường hợp.
--checksum-seed = NUM
Đặt hạt giống tổng kiểm tra thành số nguyên NUM. Hạt giống tổng kiểm tra 4 byte này được bao gồm trong
mỗi khối và tính toán tổng kiểm tra tệp MD4 (tổng kiểm tra tệp MD5 hiện đại hơn
không sử dụng hạt giống). Theo mặc định, hạt giống tổng kiểm tra được tạo bởi máy chủ và
mặc định là thời gian hiện tại (). Tùy chọn này được sử dụng để đặt tổng kiểm tra cụ thể
hạt giống, hữu ích cho các ứng dụng muốn tổng kiểm tra khối có thể lặp lại hoặc trong
trong trường hợp người dùng muốn một hạt giống tổng kiểm tra ngẫu nhiên hơn. Đặt NUM thành 0 nguyên nhân
rsync để sử dụng mặc định của time () cho hạt giống tổng kiểm tra.
DAEMON LỰA CHỌN
Các tùy chọn được phép khi khởi động daemon rsync như sau:
--daemon
Điều này cho rsync biết rằng nó sẽ chạy như một daemon. Daemon bạn bắt đầu chạy có thể
được truy cập bằng ứng dụng khách rsync bằng cách sử dụng máy chủ :: mô-đun or rsync: // host / module /
cú pháp.
Nếu đầu vào tiêu chuẩn là một ổ cắm thì rsync sẽ giả định rằng nó đang được chạy qua
inetd, nếu không nó sẽ tách khỏi thiết bị đầu cuối hiện tại và trở thành nền
daemon. Daemon sẽ đọc tệp cấu hình (rsyncd.conf) trên mỗi kết nối được tạo bởi
khách hàng và phản hồi các yêu cầu tương ứng. Xem rsyncd.conf(5) trang người đàn ông cho
biết thêm chi tiết.
--Địa chỉ
Theo mặc định, rsync sẽ liên kết với địa chỉ ký tự đại diện khi chạy dưới dạng daemon với
--daemon Lựa chọn. Các --Địa chỉ tùy chọn cho phép bạn chỉ định một địa chỉ IP cụ thể
(hoặc tên máy chủ) để liên kết với. Điều này làm cho lưu trữ ảo có thể kết hợp với
các --config lựa chọn. Xem thêm tùy chọn chung "địa chỉ" trong rsyncd.conf
trang chủ.
--bwlimit = RATE
Tùy chọn này cho phép bạn chỉ định tốc độ truyền tối đa cho dữ liệu mà daemon
gửi qua ổ cắm. Khách hàng vẫn có thể chỉ định một --bwgiới hạn giá trị, nhưng
không có giá trị lớn hơn sẽ được cho phép. Xem phiên bản ứng dụng của tùy chọn này (ở trên) cho
một số chi tiết bổ sung.
--config = FILE
Điều này chỉ định một tệp cấu hình thay thế hơn mặc định. Điều này chỉ có liên quan
khi nào --daemon được quy định. Mặc định là /etc/rsyncd.conf trừ khi daemon là
chạy trên một chương trình shell từ xa và người dùng từ xa không phải là người dùng siêu cấp; trong
trong trường hợp đó, giá trị mặc định là rsyncd.conf trong thư mục hiện tại (thường là $ HOME).
-NS, --dparam = OVERRIDE
Tùy chọn này có thể được sử dụng để đặt tham số daemon-config khi khởi động rsync trong
chế độ daemon. Nó tương đương với việc thêm tham số vào cuối toàn cục
cài đặt trước định nghĩa của mô-đun đầu tiên. Tên tham số có thể là
được chỉ định mà không có dấu cách, nếu bạn muốn. Ví dụ:
rsync --daemon -M pidfile = / path / rsync.pid
- không tách rời
Khi chạy dưới dạng daemon, tùy chọn này hướng dẫn rsync không tự tách ra và
trở thành một quá trình nền. Tùy chọn này là bắt buộc khi chạy như một dịch vụ trên
Cygwin và cũng có thể hữu ích khi rsync được giám sát bởi một chương trình như
daemontools hoặc AIX's WELFARE Tài nguyên Người điều khiển. - không tách rời cũng được khuyến khích
khi rsync được chạy trong trình gỡ lỗi. Tùy chọn này không có hiệu lực nếu rsync được chạy từ
inetd hoặc sshd.
--port = PORT
Điều này chỉ định một số cổng TCP thay thế cho daemon để lắng nghe thay vì
mặc định là 873. Xem thêm tùy chọn chung "cổng" trong trang rsyncd.conf.
--log-file = FILE
Tùy chọn này yêu cầu trình nền rsync sử dụng tên tệp nhật ký đã cho thay vì sử dụng
cài đặt "tệp nhật ký" trong tệp cấu hình.
--log-file-format = FORMAT
Tùy chọn này yêu cầu trình nền rsync sử dụng chuỗi FORMAT đã cho thay vì sử dụng
cài đặt "định dạng nhật ký" trong tệp cấu hình. Nó cũng cho phép "ghi nhật ký chuyển giao"
trừ khi chuỗi trống, trong trường hợp đó, ghi nhật ký chuyển sẽ bị tắt.
--sockopt
Điều này ghi đè ổ cắm lựa chọn cài đặt trong tệp rsyncd.conf và có cùng
cú pháp.
-v, --dài dòng
Tùy chọn này làm tăng lượng thông tin mà daemon ghi lại trong quá trình khởi động
giai đoạn. Sau khi máy khách kết nối, mức độ chi tiết của daemon sẽ được kiểm soát
bởi các tùy chọn mà khách hàng đã sử dụng và cài đặt "độ dài tối đa" trong mô-đun của
phần cấu hình.
-4, --ipv4 or -6, --ipv6
Cho rsync biết ưu tiên IPv4 / IPv6 hơn khi tạo các ổ cắm đến mà rsync
daemon sẽ sử dụng để lắng nghe các kết nối. Một trong những tùy chọn này có thể được yêu cầu trong
các phiên bản Linux cũ hơn để khắc phục lỗi IPv6 trong nhân (nếu bạn thấy
lỗi "địa chỉ đã được sử dụng" khi không có gì khác đang sử dụng cổng, hãy thử chỉ định
--ipv6 or --ipv4 khi khởi động daemon).
Nếu rsync được tuân thủ mà không hỗ trợ IPv6, thì --ipv6 tùy chọn sẽ không có
hiệu ứng. Các --phiên bản đầu ra sẽ cho bạn biết nếu đây là trường hợp.
-NS, --Cứu giúp
Khi được chỉ định sau --daemon, in một trang trợ giúp ngắn mô tả các tùy chọn
có sẵn để khởi động daemon rsync.
LỌC QUY TẮC
Các quy tắc bộ lọc cho phép lựa chọn linh hoạt các tệp để chuyển (bao gồm) và
những tệp nào cần bỏ qua (loại trừ). Các quy tắc hoặc trực tiếp chỉ định các mẫu bao gồm / loại trừ
hoặc họ chỉ định một cách để có được nhiều mẫu bao gồm / loại trừ hơn (ví dụ: đọc chúng từ
nộp).
Khi danh sách các tệp / thư mục cần chuyển được tạo, rsync sẽ kiểm tra từng tên để
Lần lượt được chuyển đối với danh sách các mẫu bao gồm / loại trừ và đối sánh đầu tiên
mẫu được thực hiện: nếu đó là mẫu loại trừ, thì tệp đó sẽ bị bỏ qua; nếu nó là một
bao gồm mẫu thì tên tệp đó không bị bỏ qua; nếu không tìm thấy mẫu phù hợp, thì
tên tệp không bị bỏ qua.
Rsync xây dựng một danh sách có thứ tự các quy tắc lọc như được chỉ định trên dòng lệnh. Lọc
quy tắc có cú pháp sau:
QUY TẮC [PATTERN_OR_FILENAME]
RULE, MODIFIERS [PATTERN_OR_FILENAME]
Bạn có thể lựa chọn sử dụng tên RULE ngắn hoặc dài, như được mô tả bên dưới. nếu bạn
sử dụng quy tắc được đặt tên ngắn, dấu ',' tách RULE khỏi MODIFIERS là tùy chọn. Các
PATTERN hoặc FILENAME theo sau (khi có mặt) phải đứng sau một dấu cách hoặc
dấu gạch dưới (_). Dưới đây là các tiền tố quy tắc có sẵn:
loại trừ, - chỉ định một mẫu loại trừ.
bao gồm, + chỉ định một mẫu bao gồm.
hợp nhất, . chỉ định một tệp hợp nhất để đọc để biết thêm quy tắc.
hợp nhất dir, : chỉ định một tệp hợp nhất cho mỗi thư mục.
ẩn giấu, H chỉ định một mẫu để ẩn tệp khỏi quá trình truyền.
chỉ, S các tệp phù hợp với mẫu không bị ẩn.
bảo vệ, P chỉ định một mẫu để bảo vệ tệp khỏi bị xóa.
rủi ro, R các tệp phù hợp với mẫu không được bảo vệ.
thông thoáng, ! xóa danh sách bao gồm / loại trừ hiện tại (không có tranh luận)
Khi các quy tắc đang được đọc từ một tệp, các dòng trống sẽ bị bỏ qua, cũng như các dòng nhận xét
bắt đầu bằng "#".
Lưu ý rằng --bao gồm/--loại trừ các tùy chọn dòng lệnh không cho phép toàn bộ phạm vi quy tắc
phân tích cú pháp như được mô tả ở trên - chúng chỉ cho phép đặc tả của bao gồm / loại trừ
các mẫu cộng với dấu "!" mã thông báo để xóa danh sách (và phân tích cú pháp bình thường khi các quy tắc
đọc từ một tệp). Nếu một mẫu không bắt đầu bằng "-" (dấu gạch ngang, dấu cách) hoặc "+" (dấu cộng,
khoảng trắng), thì quy tắc sẽ được hiểu là "+" (đối với tùy chọn bao gồm) hoặc "-" (đối với
một tùy chọn loại trừ) đã được đặt trước vào chuỗi. Một --lọc mặt khác,
phải luôn chứa tên quy tắc ngắn hoặc dài ở đầu quy tắc.
Cũng lưu ý rằng --lọc, --bao gồmvà --loại trừ mỗi tùy chọn có một quy tắc / mẫu.
Để thêm nhiều cái, bạn có thể lặp lại các tùy chọn trên dòng lệnh, sử dụng tệp hợp nhất
cú pháp của --lọc tùy chọn, hoặc --bao gồm-từ/--Loại khỏi tùy chọn.
BAO GỒM LOẠI TRỪ MẪU QUY TẮC
Bạn có thể bao gồm và loại trừ các tệp bằng cách chỉ định các mẫu sử dụng bộ lọc "+", "-", v.v.
quy tắc (như đã giới thiệu trong phần QUY TẮC LỌC ở trên). Các quy tắc bao gồm / loại trừ mỗi
chỉ định một mẫu phù hợp với tên của các tệp sẽ được
chuyển nhượng. Các mẫu này có thể có một số dạng:
o nếu mẫu bắt đầu bằng a / thì nó được neo vào một điểm cụ thể trong
phân cấp của tệp, nếu không thì nó được so khớp với phần cuối của tên đường dẫn. Cái này
tương tự như ^ đứng đầu trong biểu thức chính quy. Vì vậy, "/ foo" sẽ khớp với một tên
"foo" ở "gốc của chuyển" (đối với quy tắc chung) hoặc trong
thư mục của merge-file (đối với quy tắc trên mỗi thư mục). Một "foo" không đủ tiêu chuẩn sẽ
khớp với tên của "foo" ở bất kỳ đâu trong cây vì thuật toán được áp dụng
đệ quy từ trên xuống; nó hoạt động như thể mỗi thành phần đường dẫn đến lượt
là phần cuối của tên tệp. Ngay cả "sub / foo" chưa được kiểm chứng cũng sẽ khớp với bất kỳ
điểm trong hệ thống phân cấp nơi tìm thấy "foo" trong thư mục có tên "sub". Xem
phần ANCHORING BAO GỒM / LOẠI TRỪ MẪU để thảo luận đầy đủ về cách
chỉ định một mẫu phù hợp tại gốc của quá trình chuyển giao.
o nếu mẫu kết thúc bằng dấu / thì nó sẽ chỉ khớp với một thư mục, không phải là một
tệp, liên kết biểu tượng hoặc thiết bị.
o rsync lựa chọn giữa thực hiện đối sánh chuỗi đơn giản và đối sánh ký tự đại diện bằng cách kiểm tra
nếu mẫu chứa một trong ba ký tự đại diện sau: '*', '?' và '['.
oa '*' khớp với bất kỳ thành phần đường dẫn nào, nhưng nó dừng lại ở dấu gạch chéo.
o sử dụng '**' để so khớp bất kỳ thứ gì, kể cả dấu gạch chéo.
oa '?' khớp với bất kỳ ký tự nào ngoại trừ dấu gạch chéo (/).
oa '[' giới thiệu một lớp ký tự, chẳng hạn như [az] hoặc [[: alpha:]].
o trong một mẫu ký tự đại diện, một dấu gạch chéo ngược có thể được sử dụng để thoát khỏi một ký tự đại diện, nhưng
nó được so khớp theo nghĩa đen khi không có ký tự đại diện nào. Điều này có nghĩa là có một
mức độ loại bỏ dấu gạch chéo ngược bổ sung khi một mẫu có chứa các ký tự đại diện
so với một mẫu không có. ví dụ: nếu bạn thêm ký tự đại diện vào "foo \ bar"
(khớp với dấu gạch chéo ngược) bạn sẽ cần sử dụng "foo \\ bar *" để tránh "\ b"
chỉ trở thành "b".
o nếu mẫu có chứa dấu / (không tính dấu /) hoặc "**", thì đó là
khớp với tên đường dẫn đầy đủ, bao gồm bất kỳ thư mục hàng đầu nào. Nếu
mẫu không chứa a / hoặc "**", thì nó chỉ được so khớp với mẫu cuối cùng
thành phần của tên tệp. (Hãy nhớ rằng thuật toán được áp dụng đệ quy nên
"tên tệp đầy đủ" thực sự có thể là bất kỳ phần nào của đường dẫn từ thư mục bắt đầu
trên xuống.)
dấu gạch chéo oa "dir_name / ***" sẽ khớp với cả thư mục (như thể "dir_name /" là
được chỉ định) và mọi thứ trong thư mục (như thể "dir_name / **" đã được
được chỉ định). Hành vi này đã được thêm vào trong phiên bản 2.6.7.
Lưu ý rằng, khi sử dụng --đệ quy (-r) tùy chọn (được ngụ ý bởi -a), mỗi
thành phần con của mọi đường dẫn được truy cập từ trên xuống, vì vậy các mẫu bao gồm / loại trừ nhận được
được áp dụng đệ quy cho tên đầy đủ của mỗi thành phần con (ví dụ: bao gồm "/ foo / bar / baz"
không được loại trừ các thành phần con "/ foo" và "/ foo / bar"). Các mẫu loại trừ thực sự
làm ngắn mạch giai đoạn duyệt thư mục khi rsync tìm thấy các tệp cần gửi. Nếu một
mẫu loại trừ một thư mục mẹ cụ thể, nó có thể hiển thị mẫu bao gồm sâu hơn
không hiệu quả vì rsync không đi xuống phần bị loại trừ đó của cấu trúc phân cấp.
Điều này đặc biệt quan trọng khi sử dụng quy tắc dấu '*'. Ví dụ, điều này sẽ không
công việc:
+ / some / path / this-file-will-not-be-found
+ / file-is-include
-*
Điều này không thành công vì thư mục mẹ "một số" bị loại trừ bởi quy tắc '*', vì vậy rsync không bao giờ
truy cập bất kỳ tệp nào trong thư mục "some" hoặc "some / path". Một giải pháp là yêu cầu
để bao gồm tất cả các thư mục trong hệ thống phân cấp bằng cách sử dụng một quy tắc duy nhất: "+ * /" (đặt nó
ở đâu đó trước quy tắc "- *") và có thể sử dụng --prune-rỗng-dirs lựa chọn. Nữa
giải pháp là thêm các quy tắc bao gồm cụ thể cho tất cả các dirs mẹ cần được truy cập.
Ví dụ: bộ quy tắc này hoạt động tốt:
+ / một số /
+ / some / path /
+ / some / path / this-file-is-found
+ / file-also-include
-*
Dưới đây là một số ví dụ về đối sánh loại trừ / bao gồm:
o "- * .o" sẽ loại trừ tất cả các tên khớp với * .o
o "- / foo" sẽ loại trừ một tệp (hoặc thư mục) có tên foo trong gốc chuyển
thư mục
o "- foo /" sẽ loại trừ bất kỳ thư mục nào có tên foo
o "- / foo / * / bar" sẽ loại trừ bất kỳ thanh có tên tệp nào nằm ở hai cấp bên dưới a
thư mục có tên foo trong thư mục gốc chuyển
o "- / foo / ** / bar" sẽ loại trừ bất kỳ tệp nào có tên là thanh từ hai cấp trở lên bên dưới a
thư mục có tên foo trong thư mục gốc chuyển
o Sự kết hợp của "+ * /", "+ * .c" và "- *" sẽ bao gồm tất cả các thư mục và C
các tệp nguồn chứ không có gì khác (xem thêm --prune-rỗng-dirs không bắt buộc)
o Sự kết hợp của "+ foo /", "+ foo / bar.c" và "- *" sẽ chỉ bao gồm foo
thư mục và foo / bar.c (thư mục foo phải được bao gồm rõ ràng nếu không sẽ
bị loại trừ bởi "*")
Các bổ ngữ sau được chấp nhận sau dấu "+" hoặc "-":
o Một / chỉ định rằng quy tắc bao gồm / loại trừ phải được đối sánh với quy tắc tuyệt đối
tên đường dẫn của mục hiện tại. Ví dụ, "-/ / etc / passwd"sẽ loại trừ
tệp mật khẩu bất kỳ lúc nào quá trình chuyển đang gửi tệp từ "/ Etc"thư mục và
"- / subir / foo" sẽ luôn loại trừ "foo" khi nó nằm trong một dir có tên "subir", ngay cả
nếu "foo" là ở gốc của quá trình chuyển giao hiện tại.
o Một ! chỉ định rằng bao gồm / loại trừ sẽ có hiệu lực nếu mẫu không
trận đấu. Ví dụ: "-! * /" Sẽ loại trừ tất cả các thư mục không phải là thư mục.
o Một C được sử dụng để chỉ ra rằng tất cả các quy tắc loại trừ CVS toàn cầu phải được chèn vào
loại trừ thay cho "-C". Không có lập luận nào nên tuân theo.
o An s được sử dụng để chỉ ra rằng quy tắc áp dụng cho phía gửi. Khi một quy tắc
ảnh hưởng đến phía gửi, nó ngăn không cho các tệp được chuyển. Mặc định là
để một quy tắc ảnh hưởng đến cả hai bên trừ khi - loại trừ bị loại trừ đã được chỉ định, trong đó
trường hợp mặc định quy tắc chỉ trở thành phía người gửi. Xem thêm ẩn (H) và hiển thị (S)
quy tắc, là một cách thay thế để chỉ định bao gồm / loại trừ phía gửi.
o An r được sử dụng để chỉ ra rằng quy tắc áp dụng cho phía nhận. Khi một quy tắc
ảnh hưởng đến phía nhận, nó ngăn không cho các tập tin bị xóa. Xem s
sửa đổi để biết thêm thông tin. Xem thêm các quy tắc bảo vệ (P) và rủi ro (R), là một
cách thay thế để chỉ định bao gồm / loại trừ phía người nhận.
o Một p chỉ ra rằng một quy tắc là dễ hỏng, có nghĩa là nó bị bỏ qua trong các thư mục
đang bị xóa. Ví dụ, -C các quy tắc mặc định của tùy chọn loại trừ
những thứ như "CVS" và "* .o" được đánh dấu là dễ hư hỏng và sẽ không ngăn
thư mục đã bị xóa trên nguồn khỏi bị xóa trên đích.
HỢP NHẤT-TỆP LỌC QUY TẮC
Bạn có thể hợp nhất toàn bộ tệp vào quy tắc bộ lọc của mình bằng cách chỉ định hợp nhất (.) Hoặc
quy tắc lọc dir-merge (:) (như đã giới thiệu trong phần QUY TẮC LỌC ở trên).
Có hai loại tệp được hợp nhất - tệp đơn ('.') Và tệp theo thư mục (':'). Một
tệp hợp nhất đơn thể được đọc một lần và các quy tắc của nó được kết hợp vào
danh sách lọc ở vị trí của "." luật lệ. Đối với các tệp hợp nhất theo từng thư mục, rsync sẽ quét
mọi thư mục mà nó đi qua cho tệp được đặt tên, hợp nhất nội dung của nó khi tệp
tồn tại trong danh sách hiện tại của các quy tắc kế thừa. Các tệp quy tắc cho mỗi thư mục này phải là
được tạo ở phía gửi vì nó là phía gửi đang được quét để tìm
các tệp có sẵn để chuyển. Các tệp quy tắc này cũng có thể cần được chuyển đến
bên nhận nếu bạn muốn chúng ảnh hưởng đến những tệp nào không bị xóa (xem PER-DIRECTORY
QUY TẮC VÀ XÓA bên dưới).
Vài ví dụ:
hợp nhất /etc/rsync/default.rules
. /etc/rsync/default.rules
dir-merge .per-dir-filter
dir-merge, n- .non-inherit-per-dir -ludes
: n- .non-inherit-per-dir -ludes
Các công cụ sửa đổi sau được chấp nhận sau quy tắc hợp nhất hoặc hợp nhất dir:
o Một - chỉ định rằng tệp chỉ nên bao gồm các mẫu loại trừ, không bao gồm các mẫu khác
phân tích cú pháp quy tắc ngoại trừ các nhận xét trong tệp.
o Một + chỉ định rằng tệp chỉ nên bao gồm các mẫu, không bao gồm các mẫu khác
phân tích cú pháp quy tắc ngoại trừ các nhận xét trong tệp.
o Một C là một cách để chỉ định rằng tệp phải được đọc theo cách tương thích với CVS.
Điều này sẽ bật 'n', 'w' và '-', nhưng cũng cho phép mã thông báo xóa danh sách (!)
được chỉ định. Nếu không có tên tệp nào được cung cấp, ".cvsignore" được giả định.
o Một e sẽ loại trừ tên tệp hợp nhất khỏi quá trình chuyển; ví dụ: "dir-merge, e .rules"
giống như "dir-merge .rules" và "- .rules".
o An n chỉ định rằng các quy tắc không được kế thừa bởi các thư mục con.
o Một w chỉ định rằng các quy tắc được tách từ trên khoảng trắng thay vì bình thường
tách dòng. Điều này cũng tắt nhận xét. Lưu ý: khoảng trắng ngăn cách
tiền tố từ quy tắc được coi là đặc biệt, vì vậy "- foo + bar" được phân tích cú pháp thành hai quy tắc
(giả sử rằng phân tích cú pháp tiền tố cũng không bị vô hiệu hóa).
o Bạn cũng có thể chỉ định bất kỳ công cụ sửa đổi nào cho quy tắc "+" hoặc "-" (ở trên) theo thứ tự
để có các quy tắc được đọc từ tệp mặc định để có công cụ sửa đổi đó
thiết lập (ngoại trừ ! bổ ngữ, sẽ không hữu ích). Ví dụ,
"merge, - / .excl" sẽ coi nội dung của .excl là loại trừ đường dẫn tuyệt đối, trong khi
"dir-merge, s .filt" và ": sC" sẽ áp dụng tất cả các quy tắc cho mỗi thư mục của chúng
chỉ ở phía gửi. Nếu quy tắc hợp nhất chỉ định các bên sẽ ảnh hưởng (thông qua s
or r sửa đổi hoặc cả hai), thì các quy tắc trong tệp không được chỉ định các bên (thông qua
sửa đổi hoặc một tiền tố quy tắc, chẳng hạn như ẩn).
Các quy tắc cho mỗi thư mục được kế thừa trong tất cả các thư mục con của thư mục nơi
merge-file được tìm thấy trừ khi sử dụng công cụ sửa đổi 'n'. Các quy tắc của mỗi thư mục con là
tiền tố cho các quy tắc trên mỗi thư mục được kế thừa từ cha mẹ của nó, quy tắc mới nhất
quy tắc mức độ ưu tiên cao hơn các quy tắc được kế thừa. Toàn bộ tập hợp các quy tắc hợp nhất dir là
được nhóm lại với nhau tại vị trí mà tệp hợp nhất được chỉ định, vì vậy có thể
ghi đè các quy tắc hợp nhất dir thông qua một quy tắc đã được chỉ định trước đó trong danh sách toàn cầu
quy tắc. Khi quy tắc xóa danh sách ("!") Được đọc từ tệp trên mỗi thư mục, nó chỉ
xóa các quy tắc kế thừa cho tệp hợp nhất hiện tại.
Một cách khác để ngăn không cho kế thừa một quy tắc từ tệp dir-merge là
neo nó bằng một dấu gạch chéo ở đầu. Các quy tắc cố định trong một tệp hợp nhất mỗi thư mục là tương đối
vào thư mục của tệp hợp nhất, do đó, một mẫu "/ foo" sẽ chỉ khớp với tệp "foo" trong
thư mục nơi tìm thấy tệp bộ lọc dir-merge.
Đây là một tệp bộ lọc mẫu mà bạn chỉ định qua --filter = ". tập tin":
hợp nhất /home/user/.global-filter
- * .gz
dir-merge .rules
+ *. [ch]
- * .o
Thao tác này sẽ hợp nhất nội dung của tệp /home/user/.global-filter khi bắt đầu
danh sách và cũng biến tên tệp ".rules" thành tệp bộ lọc cho mỗi thư mục. Tất cả các quy tắc
đọc trước khi bắt đầu quét thư mục tuân theo các quy tắc neo chung (tức là
dấu gạch chéo phù hợp ở gốc của quá trình chuyển giao).
Nếu một tệp hợp nhất cho mỗi thư mục được chỉ định với một đường dẫn là thư mục mẹ của
thư mục chuyển đầu tiên, rsync sẽ quét tất cả các dirs mẹ từ điểm bắt đầu đó đến
thư mục chuyển cho tệp trên mỗi thư mục được chỉ định. Ví dụ, đây là một
bộ lọc chung (xem -F):
--filter = ': /.rsync-filter'
Quy tắc đó yêu cầu rsync quét tệp .rsync-filter trong tất cả các thư mục từ thư mục gốc
xuống qua thư mục mẹ của quá trình chuyển giao trước khi bắt đầu bình thường
quét thư mục của tệp trong các thư mục được gửi như một phần của quá trình truyền.
(Lưu ý: đối với daemon rsync, gốc luôn giống với "đường dẫn" của mô-đun.)
Một số ví dụ về tính năng quét trước cho các tệp trên mỗi thư mục:
rsync -avF / src / path / / dest / dir
rsync -av --filter = ': ../../.rsync-filter' / src / path / / dest / dir
rsync -av --filter = ': .rsync-filter' / src / path / / dest / dir
Hai lệnh đầu tiên ở trên sẽ tìm kiếm ".rsync-filter" trong "/" và "/ src" trước
quá trình quét bình thường bắt đầu tìm kiếm tệp trong "/ src / path" và các thư mục con của nó. Cuối cùng
lệnh tránh quét cha mẹ và chỉ tìm kiếm các tệp ".rsync-filter" trong mỗi tệp
thư mục là một phần của quá trình chuyển giao.
Nếu bạn muốn bao gồm nội dung của ".cvsignore" trong các mẫu của mình, bạn nên sử dụng
quy tắc ": C", tạo ra một hợp nhất dir của tệp .cvsignore, nhưng được phân tích cú pháp trong một
Cách tương thích với CVS. Bạn có thể sử dụng điều này để ảnh hưởng đến nơi --cvs-loại trừ (-C) tùy chọn
bao gồm tệp .cvsignore trên mỗi thư mục sẽ được đưa vào các quy tắc của bạn bằng cách đặt
": C" ở bất kỳ đâu bạn muốn trong quy tắc bộ lọc của mình. Nếu không có điều này, rsync sẽ thêm dir-merge
quy tắc cho tệp .cvsignore ở cuối tất cả các quy tắc khác của bạn (cho nó thấp hơn
ưu tiên hơn các quy tắc dòng lệnh của bạn). Ví dụ:
con mèo <
+ foo.o
:C
- *.cũ
EOT
rsync -avC --include = foo.o -f: C --exclude = '*. old' a / b
Cả hai lệnh rsync trên đều giống hệt nhau. Mỗi người sẽ hợp nhất tất cả các thư mục
Quy tắc .cvsignore ở giữa danh sách hơn là ở cuối. Điều này cho phép họ
các quy tắc cụ thể để thay thế các quy tắc tuân theo: C thay vì là subservient
cho tất cả các quy tắc của bạn. Để ảnh hưởng đến các quy tắc loại trừ CVS khác (tức là danh sách mặc định của
loại trừ, nội dung của $ HOME / .cvsignore và giá trị của $ CVSIGNORE) bạn nên bỏ qua
các -C tùy chọn dòng lệnh và thay vào đó chèn quy tắc "-C" vào quy tắc bộ lọc của bạn; ví dụ
"- bộ lọc = -C".
DANH SÁCH XÓA LỌC Quy tắc
Bạn có thể xóa danh sách bao gồm / loại trừ hiện tại bằng cách sử dụng dấu "!" quy tắc lọc (như đã giới thiệu
trong phần QUY TẮC LỌC ở trên). Danh sách "hiện tại" là danh sách toàn cầu của các quy tắc
(nếu quy tắc gặp phải khi phân tích cú pháp các tùy chọn bộ lọc) hoặc một tập hợp mỗi thư mục
quy tắc (được kế thừa trong danh sách con của riêng chúng, vì vậy một thư mục con có thể sử dụng điều này để xóa
ra quy định của cha mẹ).
PHÂN TÍCH BAO GỒM LOẠI TRỪ THỰC TRẠNG
Như đã đề cập trước đó, các mẫu bao gồm / loại trừ toàn cầu được cố định tại "gốc của
chuyển giao "(trái ngược với các mẫu trên mỗi thư mục, được cố định tại tệp hợp nhất của
danh mục). Nếu bạn nghĩ việc chuyển giao là một cây con của các tên được gửi từ
người gửi đến người nhận, gốc chuyển là nơi cây bắt đầu được sao chép trong
Danh mục nơi nhận. Gốc này điều chỉnh vị trí các mẫu bắt đầu bằng dấu / so khớp.
Vì so khớp có liên quan đến gốc chuyển, việc thay đổi dấu gạch chéo trên
đường dẫn nguồn hoặc thay đổi việc bạn sử dụng --quan hệ tùy chọn ảnh hưởng đến đường dẫn bạn cần sử dụng
trong đối sánh của bạn (ngoài việc thay đổi số lượng cây tệp được sao chép trên
máy chủ đích). Các ví dụ sau đây chứng minh điều này.
Giả sử rằng chúng tôi muốn đối sánh hai tệp nguồn, một tệp có đường dẫn tuyệt đối là
"/ home / me / foo / bar" và một có đường dẫn là "/ home / you / bar / baz". Đây là cách các
các lựa chọn lệnh khác nhau đối với truyền 2 nguồn:
Ví dụ cmd: rsync -a / home / me / home / you / dest
+/- mẫu: / me / foo / bar
+/- mẫu: / you / bar / baz
Tệp đích: / dest / me / foo / bar
Tệp đích: / dest / you / bar / baz
Ví dụ cmd: rsync -a / home / me / / home / you / / dest
+/- mẫu: / foo / bar (lưu ý thiếu "tôi")
+/- mẫu: / bar / baz (lưu ý thiếu "bạn")
Tệp đích: / dest / foo / bar
Tệp đích: / dest / bar / baz
Ví dụ cmd: rsync -a --relative / home / me / / home / you / dest
+/- mẫu: / home / me / foo / bar (lưu ý đường dẫn đầy đủ)
+/- mẫu: / home / you / bar / baz (ditto)
Tệp đích: / dest / home / me / foo / bar
Tệp đích: / dest / home / you / bar / baz
Ví dụ cmd: cd / Home; rsync -a - tôi tương đối / foo bạn / / đích
+/- pattern: / me / foo / bar (bắt đầu tại đường dẫn được chỉ định)
+/- mẫu: / you / bar / baz (ditto)
Tệp đích: / dest / me / foo / bar
Tệp đích: / dest / you / bar / baz
Cách dễ nhất để xem bạn nên lọc tên nào là chỉ cần xem kết quả đầu ra khi
sử dụng --dài dòng và đặt dấu / trước tên (sử dụng - chạy thử tùy chọn nếu bạn không
chưa sẵn sàng để sao chép bất kỳ tệp nào).
TRỰC TIẾP MỖI NGƯỜI QUY TẮC VÀ DELETE
Không có tùy chọn xóa, các quy tắc trên mỗi thư mục chỉ có liên quan ở phía gửi, vì vậy bạn
có thể tự do loại trừ các tệp hợp nhất mà không ảnh hưởng đến quá trình chuyển. Đến
làm cho điều này dễ dàng, công cụ sửa đổi 'e' thêm loại trừ này cho bạn, như đã thấy trong hai
lệnh tương đương:
rsync -av --filter = ': .excl' --exclude = .excl host: src / dir / dest
rsync -av --filter = ': e .excl' host: src / dir / dest
Tuy nhiên, nếu bạn muốn xóa ở phía nhận VÀ bạn muốn một số tệp
được loại trừ khỏi việc bị xóa, bạn sẽ cần đảm bảo rằng bên nhận biết những gì
các tệp cần loại trừ. Cách dễ nhất là bao gồm các tệp hợp nhất cho mỗi thư mục trong
chuyển giao và sử dụng --xóa-sau, bởi vì điều này đảm bảo rằng bên nhận nhận được tất cả
cùng các quy tắc loại trừ như bên gửi trước khi nó cố gắng xóa bất kỳ thứ gì:
rsync -avF --delete-after host: src / dir / dest
Tuy nhiên, nếu các tệp hợp nhất không phải là một phần của quá trình chuyển, bạn sẽ cần chỉ định
một số quy tắc loại trừ toàn cầu (tức là được chỉ định trên dòng lệnh) hoặc bạn sẽ cần duy trì
các tệp hợp nhất cho mỗi thư mục của riêng bạn ở phía nhận. Một ví dụ về cái đầu tiên là cái này
(giả sử rằng các tệp .rules từ xa tự loại trừ chúng):
rsync -av --filter = ': .rules' --filter = '. /my/extra.rules '
--xóa máy chủ: src / dir / dest
Trong ví dụ trên, tệp extra.rules có thể ảnh hưởng đến cả hai phía của quá trình chuyển giao, nhưng (trên
phía gửi) các quy tắc phụ thuộc vào các quy tắc được hợp nhất từ các tệp .rules
vì chúng đã được chỉ định sau quy tắc hợp nhất mỗi thư mục.
Trong một ví dụ cuối cùng, phía điều khiển từ xa đang loại trừ các tệp .rsync-filter khỏi
chuyển, nhưng chúng tôi muốn sử dụng các tệp .rsync-filter của riêng mình để kiểm soát những gì bị xóa trên
bên nhận. Để làm điều này, chúng tôi phải loại trừ cụ thể các tệp hợp nhất theo từng thư mục
(để chúng không bị xóa) và sau đó đặt các quy tắc vào các tệp cục bộ để kiểm soát những gì
khác không nên bị xóa. Giống như một trong các lệnh sau:
rsync -av --filter=':e /.rsync-filter' --delete
máy chủ: src / dir / dest
rsync -avFF --xóa máy chủ: src / dir / dest
PIN PHƯƠNG THỨC
Chế độ hàng loạt có thể được sử dụng để áp dụng cùng một tập hợp các bản cập nhật cho nhiều hệ thống giống nhau. Cho rằng
một cây có một cây được sao chép trên một số vật chủ. Bây giờ, giả sử một số thay đổi có
được thực hiện cho cây nguồn này và những thay đổi đó cần được truyền sang các máy chủ khác.
Để thực hiện việc này bằng cách sử dụng chế độ hàng loạt, rsync được chạy với tùy chọn ghi hàng loạt để áp dụng
các thay đổi được thực hiện đối với cây nguồn đối với một trong các cây đích. Lô viết
tùy chọn khiến ứng dụng khách rsync lưu trữ trong một "tệp hàng loạt" tất cả thông tin cần thiết để
lặp lại thao tác này với các cây đích khác, giống hệt nhau.
Việc tạo tệp hàng loạt một lần giúp tiết kiệm việc phải thực hiện trạng thái tệp, tổng kiểm tra và dữ liệu
tạo khối nhiều lần khi cập nhật nhiều cây đích. Multicast
các giao thức vận chuyển có thể được sử dụng để chuyển các tệp cập nhật hàng loạt song song với nhiều
lưu trữ cùng một lúc, thay vì gửi cùng một dữ liệu đến từng máy chủ riêng lẻ.
Để áp dụng các thay đổi đã ghi cho một cây đích khác, hãy chạy rsync với loạt đọc
, chỉ định tên của cùng một tệp lô và cây đích. Rsync
cập nhật cây đích bằng cách sử dụng thông tin được lưu trữ trong tệp loạt.
Để thuận tiện cho bạn, một tệp tập lệnh cũng được tạo khi tùy chọn ghi lô được sử dụng:
nó sẽ được đặt tên giống như tệp loạt có thêm ".sh". Tập lệnh này
chứa một dòng lệnh phù hợp để cập nhật cây đích bằng cách sử dụng
tập tin hàng loạt. Nó có thể được thực thi bằng cách sử dụng shell Bourne (hoặc giống Bourne), tùy chọn chuyển
trong tên đường dẫn cây đích thay thế, sau đó được sử dụng thay vì tên gốc
đường dẫn đích. Điều này hữu ích khi đường dẫn cây đích trên máy chủ hiện tại
khác với tệp được sử dụng để tạo tệp hàng loạt.
Ví dụ:
$ rsync --write-batch = foo -a host: / source / dir / / adest / dir /
$ scp foo * điều khiển từ xa:
$ ssh từ xa ./foo.sh / bdest / dir /
$ rsync --write-batch = foo -a / source / dir / / adest / dir /
$ ssh từ xa rsync --read-batch = - -a / bdest / dir /
Trong các ví dụ này, rsync được sử dụng để cập nhật / adest / dir / from / source / dir / và
thông tin để lặp lại thao tác này được lưu trữ trong "foo" và "foo.sh". Máy chủ "từ xa"
sau đó được cập nhật với dữ liệu theo lô đi vào thư mục / bdest / dir. Các
sự khác biệt giữa hai ví dụ cho thấy một số tính linh hoạt mà bạn có trong cách bạn
đối phó với các lô:
o Ví dụ đầu tiên cho thấy rằng bản sao ban đầu không nhất thiết phải là cục bộ - bạn có thể
đẩy hoặc kéo dữ liệu đến / từ một máy chủ từ xa bằng cú pháp remote-shell hoặc
cú pháp daemon rsync, như mong muốn.
o Ví dụ đầu tiên sử dụng tệp "foo.sh" đã tạo để có các tùy chọn rsync phù hợp
khi chạy lệnh đọc hàng loạt trên máy chủ từ xa.
o Ví dụ thứ hai đọc dữ liệu hàng loạt thông qua đầu vào tiêu chuẩn để tệp hàng loạt
trước tiên không cần phải sao chép vào máy từ xa. Ví dụ này tránh
tập lệnh foo.sh vì nó cần sử dụng --đọc-đợt tùy chọn, nhưng bạn
có thể chỉnh sửa tệp script nếu bạn muốn sử dụng nó (chỉ cần đảm bảo rằng không
tùy chọn khác đang cố gắng sử dụng đầu vào tiêu chuẩn, chẳng hạn như "--exclude-from = -"
Tùy chọn).
Lưu ý:
Tùy chọn hàng loạt đọc yêu cầu cây đích mà nó đang cập nhật giống hệt với
cây đích đã được sử dụng để tạo tập hợp tệp cập nhật hàng loạt. Khi một sự khác biệt
giữa các cây đích gặp phải, bản cập nhật có thể bị hủy kèm theo cảnh báo
(nếu tệp dường như đã được cập nhật) hoặc có thể cố gắng cập nhật tệp và
sau đó, nếu tệp không thể xác minh, bản cập nhật sẽ bị loại bỏ do lỗi. Điều này có nghĩa là nó
sẽ an toàn khi chạy lại thao tác đọc loạt nếu lệnh bị gián đoạn. nếu bạn
muốn buộc cập nhật theo đợt luôn được thực hiện bất kể kích thước tệp và
ngày tháng, sử dụng -I tùy chọn (khi đọc hàng loạt). Nếu xảy ra lỗi, điểm đến
cây có thể sẽ ở trạng thái được cập nhật một phần. Trong trường hợp đó, rsync có thể được sử dụng trong
chế độ hoạt động thường xuyên (không theo đợt) để cố định cây đích.
Phiên bản rsync được sử dụng trên tất cả các điểm đến ít nhất phải mới như phiên bản đã sử dụng
tạo tệp hàng loạt. Rsync sẽ bị lỗi nếu phiên bản giao thức trong
tệp hàng loạt quá mới để rsync đọc hàng loạt có thể xử lý. Xem thêm - giao thức
tùy chọn cho một cách để tạo rsync tạo một tệp hàng loạt mà một rsync cũ hơn có thể
hiểu không. (Lưu ý rằng các tệp hàng loạt đã thay đổi định dạng trong phiên bản 2.6.3, vì vậy việc trộn các phiên bản
cũ hơn so với phiên bản mới hơn sẽ không hoạt động.)
Khi đọc một tệp hàng loạt, rsync sẽ buộc giá trị của các tùy chọn nhất định phải khớp với dữ liệu
trong tệp lô nếu bạn không đặt chúng giống như lệnh ghi lô. Khác
các tùy chọn có thể (và nên) được thay đổi. Ví dụ --write-batch thay đổi --đọc-đợt,
--files-từ bị bỏ, và --lọc/--bao gồm/--loại trừ các tùy chọn không cần thiết
trừ khi một trong những --xóa bỏ các tùy chọn được chỉ định.
Mã tạo tệp BATCH.sh chuyển đổi bất kỳ tùy chọn bộ lọc / bao gồm / loại trừ nào thành
một danh sách duy nhất được nối dưới dạng tài liệu "tại đây" vào tệp kịch bản shell. Nâng cao
người dùng có thể sử dụng điều này để sửa đổi danh sách loại trừ nếu một thay đổi trong những gì bị xóa bởi --xóa bỏ
khao khát. Một người dùng bình thường có thể bỏ qua chi tiết này và chỉ cần sử dụng shell script một cách dễ dàng
cách chạy phù hợp --đọc-đợt lệnh cho dữ liệu theo lô.
Chế độ hàng loạt ban đầu trong rsync dựa trên "rsync +", nhưng phiên bản mới nhất sử dụng
thực hiện.
BIỂU TƯỢNG LIÊN KẾT
Ba hành vi cơ bản có thể thực hiện được khi rsync gặp một liên kết tượng trưng trong nguồn
thư mục.
Theo mặc định, các liên kết tượng trưng hoàn toàn không được chuyển. Một thông báo "bỏ qua không thường xuyên"
tệp được phát ra cho bất kỳ liên kết tượng trưng nào tồn tại.
If - liên kết được chỉ định, sau đó các liên kết tượng trưng được tạo lại với cùng một mục tiêu trên
điểm đến. Lưu ý rằng --lưu trữ ngụ ý - liên kết.
If - liên kết nội dung được chỉ định, sau đó các liên kết tượng trưng được "thu gọn" bằng cách sao chép tham chiếu của chúng,
chứ không phải là liên kết biểu tượng.
Rsync cũng có thể phân biệt các liên kết tượng trưng "an toàn" và "không an toàn". Một ví dụ về nơi này
có thể được sử dụng là một nhân bản trang web muốn đảm bảo rằng mô-đun rsync đó là
được sao chép không bao gồm các liên kết tượng trưng đến / etc / passwd trong phần công khai của trang web.
Sử dụng - nội dung-không an toàn-liên kết sẽ khiến mọi liên kết được sao chép dưới dạng tệp mà chúng trỏ tới
đích đến. Sử dụng - liên kết an toàn sẽ khiến các liên kết không an toàn bị bỏ qua hoàn toàn.
(Lưu ý rằng bạn phải chỉ định - liên kết cho - liên kết an toàn có bất kỳ tác dụng nào.)
Các liên kết tượng trưng được coi là không an toàn nếu chúng là các liên kết tượng trưng tuyệt đối (bắt đầu bằng /), làm rỗng cái gì,
hoặc nếu chúng chứa đủ thành phần ".." để đi lên từ thư mục đang được sao chép.
Dưới đây là tóm tắt về cách các tùy chọn liên kết biểu tượng được diễn giải. Danh sách theo thứ tự
ưu tiên, vì vậy nếu kết hợp các tùy chọn của bạn không được đề cập, hãy sử dụng dòng đầu tiên
một tập hợp con đầy đủ các tùy chọn của bạn:
- liên kết nội dung
Chuyển tất cả các liên kết tượng trưng thành các tệp bình thường (không để lại các liên kết tượng trưng cho bất kỳ tùy chọn nào khác để
ảnh hưởng).
- liên kết - nội dung-không an toàn-liên kết
Biến tất cả các liên kết tượng trưng không an toàn thành tệp và sao chép tất cả các liên kết tượng trưng an toàn.
- nội dung-không an toàn-liên kết
Biến tất cả các liên kết tượng trưng không an toàn thành tệp, bỏ qua tất cả các liên kết tượng trưng an toàn một cách ồn ào.
- liên kết - liên kết an toàn
Nhân bản các liên kết tượng trưng an toàn và bỏ qua các liên kết không an toàn.
- liên kết
Nhân bản tất cả các liên kết tượng trưng.
CHẨN ĐOÁN
rsync đôi khi tạo ra các thông báo lỗi có vẻ hơi khó hiểu. Cái mà
dường như gây ra sự nhầm lẫn nhất là "phiên bản giao thức không phù hợp - shell của bạn có sạch không?".
Thông báo này thường do tập lệnh khởi động của bạn hoặc cơ sở trình bao từ xa tạo ra
rác không mong muốn trên luồng mà rsync đang sử dụng để vận chuyển. Cách chẩn đoán
vấn đề này là chạy trình bao từ xa của bạn như thế này:
ssh máy chủ từ xa / bin / true > out.dat
sau đó nhìn vào out.dat. Nếu mọi thứ hoạt động bình thường thì out.dat phải bằng XNUMX
độ dài tệp. Nếu bạn đang gặp lỗi ở trên từ rsync thì có thể bạn sẽ tìm thấy
out.dat đó chứa một số văn bản hoặc dữ liệu. Nhìn vào nội dung và cố gắng tìm ra
sản xuất nó. Nguyên nhân phổ biến nhất là do các tập lệnh khởi động shell được định cấu hình không chính xác (chẳng hạn
dưới dạng .cshrc hoặc .profile) chứa các câu lệnh đầu ra cho các lần đăng nhập không tương tác.
Nếu bạn gặp sự cố khi gỡ lỗi các mẫu bộ lọc, hãy thử chỉ định -vv tùy chọn.
Ở mức độ chi tiết này, rsync sẽ cho biết lý do tại sao từng tệp riêng lẻ được bao gồm hoặc
loại trừ
EXIT GIÁ TRỊ
0 Sự thành công
1 Cú pháp hoặc lỗi sử dụng
2 Giao thức không tương thích
3 Lỗi khi chọn tệp đầu vào / đầu ra, dirs
4 Hành động được yêu cầu không được hỗ trợ: một nỗ lực đã được thực hiện để thao tác các tệp 64 bit trên
nền tảng không thể hỗ trợ chúng; hoặc một tùy chọn đã được chỉ định được hỗ trợ bởi
máy khách chứ không phải máy chủ.
5 Lỗi khi khởi động giao thức máy khách-máy chủ
6 Daemon không thể nối vào tệp nhật ký
10 Lỗi trong I / O ổ cắm
11 Lỗi trong I / O tệp
12 Lỗi trong luồng dữ liệu giao thức rsync
13 Lỗi với chẩn đoán chương trình
14 Lỗi trong mã IPC
20 Đã nhận SIGUSR1 hoặc SIGINT
21 Một số lỗi được trả lại bởi waitpid ()
22 Lỗi phân bổ bộ đệm bộ nhớ lõi
23 Chuyển một phần do lỗi
24 Chuyển một phần do các tệp nguồn đã biến mất
25 - Giới hạn xóa tối đa đã dừng xóa
30 Hết thời gian chờ khi gửi / nhận dữ liệu
35 Hết thời gian chờ kết nối daemon
MÔI TRƯỜNG BIẾN
CVSIGNORE
Biến môi trường CVSIGNORE bổ sung bất kỳ mẫu bỏ qua nào trong .cvsignore
các tập tin. Xem --cvs-loại trừ để biết thêm chi tiết.
RSYNC_ICONV
Chỉ định một mặc định --iconv cài đặt bằng cách sử dụng biến môi trường này. (Được hỗ trợ đầu tiên
vào năm 3.0.0.)
RSYNC_PROTECT_ARGS
Chỉ định một giá trị số khác XNUMX nếu bạn muốn --bảo vệ-args tùy chọn để trở thành
được bật theo mặc định hoặc giá trị XNUMX để đảm bảo rằng nó bị tắt theo mặc định.
(Được hỗ trợ lần đầu trong 3.1.0.)
RSYNC_RSH
Biến môi trường RSYNC_RSH cho phép bạn ghi đè trình bao mặc định được sử dụng làm
vận chuyển cho rsync. Các tùy chọn dòng lệnh được cho phép sau lệnh
tên, giống như trong -e tùy chọn.
RSYNC_PROXY
Biến môi trường RSYNC_PROXY cho phép bạn chuyển hướng ứng dụng khách rsync của mình đến
sử dụng proxy web khi kết nối với daemon rsync. Bạn nên đặt RSYNC_PROXY thành
tên máy: cặp cổng.
RSYNC_PASSWORD
Đặt RSYNC_PASSWORD thành mật khẩu yêu cầu cho phép bạn chạy được xác thực
Kết nối rsync với daemon rsync mà không có sự can thiệp của người dùng. Lưu ý rằng điều này không
không cung cấp mật khẩu cho phương tiện vận chuyển shell từ xa chẳng hạn như ssh; để học cách làm
đó, hãy tham khảo tài liệu của trình bao từ xa.
USER or TÊN ĐĂNG NHẬP
Các biến môi trường USER hoặc LOGNAME được sử dụng để xác định giá trị mặc định
tên người dùng được gửi đến daemon rsync. Nếu cả hai đều không được đặt, tên người dùng mặc định là
"không ai".
TRANG CHỦ Biến môi trường HOME được sử dụng để tìm tệp .cvsignore mặc định của người dùng.
Sử dụng rsync trực tuyến bằng các dịch vụ onworks.net