Đây có thể là những gì bạn đang theo đuổi.
% rsync -avvz --times --stats --checksum --human-readable --acls \
--itemize-changes --progress \
--out-format='[%t] [%i] (Last Modified: %M) (bytes: %-10l) %-100n' \
/usr/include/glib-2.0 my-glib-copy/
Sự cố chuyển mạch như sau:
- -avvz = lưu trữ, dài dòng x 2, nén
- --times = bảo toàn thời gian sửa đổi
- --stats = đưa ra một số thống kê chuyển tập tin
- --checksum = bỏ qua dựa trên tổng kiểm tra, không phải mod-time & size
- --human-readable = số đầu ra ở định dạng có thể đọc được
- --acls = bảo toàn ACL (ngụ ý -p)
- --itemize-thay đổi = xuất bản tóm tắt thay đổi cho tất cả các bản cập nhật
- --proceed = hiển thị tiến trình trong quá trình chuyển
- --out-format = '[% t] [% i] (Sửa đổi lần cuối:% M) (byte:% -10l)% -100n'
- % t = thời gian ngày hiện tại
- % i = danh sách được chia thành từng mục của những gì đang được cập nhật
- % M = thời gian sửa đổi lần cuối của tệp
- % -10l = chiều dài của tệp tính bằng byte (-10 là để căn chỉnh và chính xác)
- % -100n = tên tệp (dạng ngắn; dấu "/" trên thư mục) (-100 là để căn chỉnh và chính xác)
LƯU Ý: Xem các trang hướng dẫn rsync
và rsyncd.conf
để biết chi tiết đầy đủ về các công tắc trên.
Lệnh trên tạo ra bản phiên mã sau:
sending incremental file list
delta-transmission disabled for local transfer or --whole-file
[2012/12/23 21:34:46] [cd+++++++++] (Last Modified: 2010/12/19-08:13:31) (bytes: 4096 ) glib-2.0/
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 1511 ) glib-2.0/glib-object.h
1.51K 100% 0.00kB/s 0:00:00
1.51K 100% 0.00kB/s 0:00:00 (xfer#1, to-check=181/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:30) (bytes: 2910 ) glib-2.0/glib.h
2.91K 100% 2.78MB/s 0:00:00
2.91K 100% 2.78MB/s 0:00:00 (xfer#2, to-check=180/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 3613 ) glib-2.0/gmodule.h
3.61K 100% 3.45MB/s 0:00:00
3.61K 100% 3.45MB/s 0:00:00 (xfer#3, to-check=179/183)
...
...
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8431 ) glib-2.0/gobject/gvaluecollector.h
8.43K 100% 141.96kB/s 0:00:00
8.43K 100% 141.96kB/s 0:00:00 (xfer#178, to-check=1/183)
[2012/12/23 21:34:46] [>f+++++++++] (Last Modified: 2010/09/30-15:02:31) (bytes: 8507 ) glib-2.0/gobject/gvaluetypes.h
8.51K 100% 143.23kB/s 0:00:00
8.51K 100% 143.23kB/s 0:00:00 (xfer#179, to-check=0/183)
total: matches=0 hash_hits=0 false_alarms=0 data=1305506
rsync[2996] (sender) heap statistics:
arena: 540672 (bytes from sbrk)
ordblks: 3 (chunks not in use)
smblks: 7
hblks: 2 (chunks from mmap)
hblkhd: 401408 (bytes from mmap)
allmem: 942080 (bytes from sbrk + mmap)
usmblks: 0
fsmblks: 592
uordblks: 404784 (bytes used)
fordblks: 135888 (bytes free)
keepcost: 134240 (bytes in releasable chunk)
rsync[2999] (server receiver) heap statistics:
arena: 286720 (bytes from sbrk)
ordblks: 2 (chunks not in use)
smblks: 8
hblks: 3 (chunks from mmap)
hblkhd: 667648 (bytes from mmap)
allmem: 954368 (bytes from sbrk + mmap)
usmblks: 0
fsmblks: 672
uordblks: 174480 (bytes used)
fordblks: 112240 (bytes free)
keepcost: 102352 (bytes in releasable chunk)
rsync[2998] (server generator) heap statistics:
arena: 233472 (bytes from sbrk)
ordblks: 4 (chunks not in use)
smblks: 6
hblks: 2 (chunks from mmap)
hblkhd: 401408 (bytes from mmap)
allmem: 634880 (bytes from sbrk + mmap)
usmblks: 0
fsmblks: 448
uordblks: 83152 (bytes used)
fordblks: 150320 (bytes free)
keepcost: 131120 (bytes in releasable chunk)
Number of files: 183
Number of files transferred: 179
Total file size: 1.31M bytes
Total transferred file size: 1.31M bytes
Literal data: 1.31M bytes
Matched data: 0 bytes
File list size: 6.30K
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 350.39K
Total bytes received: 3.43K
sent 350.39K bytes received 3.43K bytes 707.64K bytes/sec
total size is 1.31M speedup is 3.69
Thanh tiến trình trong các phiên bản mới hơn của rsync?
Tôi đã xem qua câu hỏi SF này:
Một trong những câu trả lời được đề cập rằng trong các phiên bản mới hơn rsync
hiện có hỗ trợ cho thanh tiến trình. Nó trông như thế này:
% ./rsync -a --info=progress2 /usr .
305,002,533 80% 65.69MB/s 0:00:01 xfr#1653, ir-chk=1593/3594)
Thanh tiến trình này vẫn không hiển thị trạng thái của các tệp riêng lẻ trong quá trình chuyển, nhưng nó hiển thị phần trăm chuyển tổng thể có thể hữu ích.