Tôi đang sử dụng rsync (1) để cập nhật kho lưu trữ debian cục bộ. Gần đây, đĩa tôi đang sử dụng để lưu trữ nó bắt đầu cạn kiệt dung lượng, vì vậy tôi quyết định sử dụng symlink để cho phép tôi chuyển một số thư mục sang một đĩa có kích thước tương tự khác.
Thật không may, có vẻ như rsync đang xóa các liên kết tượng trưng và nạp lại đĩa gần đầy. Sau một số tìm kiếm, tôi phát hiện ra --keep-dirlinks
tùy chọn rsync, có vẻ như được thiết kế riêng để khắc phục vấn đề của tôi.
Chỉ có nó không. Các liên kết tượng trưng trên mục tiêu vẫn đang bị xóa.
Đây là lệnh rsync của tôi:
rsync --recursive --keep-dirlinks --links --hard-links --times --verbose \
--delete --delete-excluded $EXCLUDE $SOURCE_EXCLUDE \
$RSYNC_HOST::$RSYNC_DIR/pool/ $TO/pool/
Các EXCLUDE mở rộng ra để loại bỏ một số lượng lớn các kiến trúc mà tôi không quan tâm, dọc theo dòng --exclude binary-alpha/ --exclude disks-alpha ...
. Trước khi rsync ra mắt, thư mục pool của tôi trông như thế này:
lrwxrwxrwx 1 root root 23 2014-09-22 13:58 contrib -> /u2/debian/pool/contrib
drwxrwxr-x 62 root root 4096 2012-04-09 03:02 main
lrwxrwxrwx 1 root root 24 2014-09-22 13:58 non-free -> /u2/debian/pool/non-free
Khi rsync khởi động, tôi nhận được điều này:
receiving incremental file list
deleting non-free
deleting contrib
./
contrib/
contrib/a/
Và như vậy, và các liên kết tượng trưng được thay thế bằng các thư mục chứa đầy các tệp.
Có một số tùy chọn rsync khác can thiệp vào --keep-dirlinks
? Những cái tôi không thể kết hợp? Hay đó là thứ tự của các lựa chọn gây ra vấn đề của tôi?