Chỉ hiển thị các tệp đã thay đổi trong khi đồng bộ hóa từ ext4 sang NTFS


9

Tôi muốn rsync in các tệp đã sửa đổi và bị xóa. Tùy chọn verbose (-v) không in các tệp đã sửa đổi nhưng cũng có danh sách các thư mục con, có thể do các thư mục đã chạm được coi là sửa đổi. Vì tôi đồng bộ nhiều tệp từ nhiều thư mục con, không thể thấy các thay đổi thực tế.

Vì vậy, có cách nào để không in các thư mục bằng rsync?

Tôi không tìm kiếm grep -v "*/$"loại câu trả lời vì nó cũng sẽ loại trừ các thư mục mới.

Lệnh tôi đang sử dụng: rsync -avh --delete /media/data/src /media/data/bkp

Và mỗi khi nó in danh sách của tất cả các thư mục:

src/dir1/

src/dir1/sdir1/

src/dir1/sdir2/

src/dir2/

EDIT: Ok, sau một số thử nghiệm chuyên sâu .. Nó không in tất cả các thư mục khi đồng bộ hóa từ phân vùng ext4 sang ext4 và từ NTFS sang NTFS. Nó chỉ thực hiện khi đồng bộ hóa từ ext4 sang NTFS .. Và các tùy chọn -choặc --omit-dir-timeskhông thay đổi điều đó.

Câu trả lời:


4

Bạn có thể thử sử dụng --omit-dir-timeschuyển đổi để bỏ qua thời gian thư mục (hãy xem trang man rsync).

Cá nhân tôi thấy rằng sử dụng -cchuyển đổi là cách tốt nhất để đảm bảo rằng chỉ các tệp có nội dung đã được thay đổi hiển thị trong đầu ra.

Lưu ý rằng việc sử dụng -csẽ làm chậm rsync.


Cảm ơn vi đa trả lơi. Tôi cảm thấy khó tin rằng nó không được hỗ trợ về mặt bản chất, ít nhất là không mất đi sự hoàn hảo (hoặc tùy chọn) .. Tôi sẽ phải tin tưởng nó đồng bộ hóa tất cả.
qox

Xin lỗi, chỉnh sửa của tôi đã thay đổi câu hỏi sau câu trả lời của bạn.
qox

1

Thay vì thay đổi loại gắn kết, bạn cũng có thể yêu cầu rsync bỏ qua quyền truy cập tệp khi sao chép vào hệ thống tệp không hỗ trợ. Lệnh sau làm việc cho tôi.

Từ trang người đàn ông rsync:

Tóm lại: để cung cấp cho các tệp đích (cả cũ và mới) các quyền nguồn, hãy sử dụng --perms. Để cung cấp cho các tệp mới các quyền mặc định đích (trong khi vẫn giữ nguyên các tệp hiện có), hãy đảm bảo rằng tùy chọn --perms bị tắt và sử dụng --chmod = ugo = rwX (đảm bảo rằng tất cả các bit không có mặt nạ đều được bật). Nếu bạn 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ư đặt dòng này vào tệp ~ / .popt (sau đây xác định tùy chọn -Z và bao gồm --no- g để sử dụng nhóm mặc định của thư mục đích):

rsync alias -Z --no-p --no-g --chmod=ugo=rwX

1

không sử dụng -a, nó chứa -p -o -g.


Bạn vẫn có thể sử dụng -anếu bạn muốn, sau đó thêm --no-o --no-p --no-gvào chủ sở hữu, nhóm và quyền.
Ian Dunn

0

Có vẻ như đó là một vấn đề cho phép. Không chắc chắn tại sao .. Nhưng tôi đã chỉnh sửa / etc / fstab cho các phân vùng NTFS và hiện tại nó hoạt động như mong đợi, tức là không in các thư mục chưa được sửa đổi.

Mục nhập fstab cũ: người dùng ntfs-3g, mặc định, exec, uid = 1000 0 0

Mục nhập fstab mới: người dùng ntfs-3g, mặc định, exec, uid = 1000, gid = 1000, dmask = 077, fmask = 137 0 0

Tôi đoán (ai biết ..) dmask = 077 đã thực hiện thủ thuật tức là 'drwx ---' thay vì 'drwxrwx'.


-1

Tôi đã sử dụng:

sudo rsync -auzhni --progress --omit-dir-times --no-o  src_dir/ dst_dir 

Đó là một chạy khô (tùy chọn n). Xóa tùy chọn đó để rsyncthực sự chuyển tập tin.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.