我目前正在使用rsync
选项--link-dest
将一些文件从 Win10 (WSL) 备份到 Debian 盒子。
我观察到奇怪的行为,硬链接在某些文件夹中可以正常工作,而在其他文件夹中则完全被忽略。
这是我的脚本:
#!/bin/bash
# set date
date='date +"%d-%m-%Y-%H:%M"'
# Source
source=/mnt/c/Users/user/Desktop/test/
# Partial destination
dest=/media/external/user/laptop/desktop/
# log into server and retrieve last updated folder
last=`ssh -p XXXX -i ~/key [email protected] 'cd '$dest'; ls -ct | head -n 1'`
# --link-dest from the last updated folder
link_dest=/media/external/user/laptop/desktop/$last
rsync -PaSh --mkpath --delete --link-dest=$link_dest --stats -e 'ssh -p XXXX -i ~/key' $source [email protected]:$dest`$date/`
是--link-dest
不一致的。包含三个 png 图像文件的小测试文件夹可以正常工作。
第一次运行时,所有文件都会完全传输。
后续运行将正确获取--link-dest
且仅获取传输更改(如果有):
$ du -h --max-depth=1
304K ./10-10-2021-12:46
4.0K ./10-10-2021-12:51
4.0K ./10-10-2021-12:47
4.0K ./10-10-2021-12:49
320K .
我在一个包含一些 Word 文件的小文件夹中也得到了相同的结果。
但是,对于其他文件夹,例如较大的文件夹、jpg 图像文件等,后续运行不会仅复制更改的文件,而是覆盖原始文件夹。
例如,原来的运行:
$ du -h --max-depth=1
756M ./10-10-2021-22:04
756M .
第二次运行:
$ du -h --max-depth=1
756M ./10-10-2021-22:07
756M .
这仅有的我对脚本所做的更改是源文件夹:source=/mnt/c/Users/user/Desktop/XXX/
.没有其他变化。
我无法解释为什么--link-dest
在某些情况下有效而在其他情况下失败,以及这是否与文件类型或文件夹大小有关。
欢迎任何想法。