Я тестирую rsync с сервером WebDAV в контейнере Docker:
- локальный каталог: /Users /user /files /
- "удаленный" смонтированный сервер: /Volumes /webdav /
Вот начальное состояние:
# remote
➜ cat /Volumes/webdav/remotefile
change
➜ ls -la /Volumes/webdav/remotefile
-rwx------ 1 user staff 7 Dec 2 01:39 /Volumes/webdav/remotefile
# local
➜ cat /Users/user/files/remotefile
change
➜ ls -la /Users/user/files/remotefile
-rwx------ 1 user staff 7 Dec 2 01:39 /Users/user/files/remotefile
Теперь давайте изменим локальный файл и загрузим его на "удаленный" сервер:
➜ files echo 'add#0' > ./remotefile
➜ files cat remotefile
add#0
➜ files \rsync -varP /Users/user/files/* /Volumes/webdav/ --delete
building file list ...
1 file to consider
remotefile
6 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 132 bytes received 42 bytes 348.00 bytes/sec
total size is 6 speedup is 0.03
Файл успешно загружен, так как он был изменен. Но если я снова запускаю rsync local => remote, он загружает его заново:
➜ files \rsync -varP /Users/user/files/* /Volumes/webdav/ --delete
building file list ...
1 file to consider
remotefile
6 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 132 bytes received 42 bytes 348.00 bytes/sec
total size is 6 speedup is 0.03
Сейчас я проверяю противоположное направление:
➜ files \rsync -varP /Volumes/webdav/* /Users/user/files/ --delete
building file list ...
1 file to consider
remotefile
6 100% 0.00kB/s 0:00:00 (xfer#1, to-check=0/1)
sent 132 bytes received 42 bytes 348.00 bytes/sec
total size is 6 speedup is 0.03
Файл успешно загружен. И еще раз ...
➜ files \rsync -varP /Volumes/webdav/* /Users/user/files/ --delete
building file list ...
1 file to consider
sent 80 bytes received 20 bytes 200.00 bytes/sec
total size is 6 speedup is 0.06
... показывает 0 передач, так как файл не был изменен. Это ожидаемое поведение.
Почему это не работает с локальной => удаленной загрузкой и всегда повторно загружает файл?
Благодарю.