rsync --link-dest 未链接

rsync --link-dest 未链接

我正在使用 rsync 创建网站的备份。我想使用--link-dest链接到较旧的备份并减少所需的存储空间,因此不会多次存储重复的未更改文件。

我尝试了几种不同的路径组合,试图理解文档。据我所知,第一个路径必须是脚本文件执行的完整相对路径。最后一个路径只是目标文件夹名称而没有路径吗?

--link-dest=DIR 此选项的行为类似于 --copy-dest,但未更改的文件会从 DIR 硬链接到目标目录。这些文件的所有保留属性(例如权限、可能的所有权)必须相同,以便将文件链接在一起。示例: CW rsync -av --link-dest=$PWD/prior_dir 主机:src_dir/ new_dir/

显然我没有正确理解这一点,因为我尝试的所有操作都失败了,并且创建了文件的完整副本。

这是我目前拥有的示例:

rsync -zavx -e 'ssh -p22' \
    --numeric-ids \
    --delete -r \
    --link-dest=../backups/websites/testsite.co.uk/17-06-2018/ [email protected]:~/public_html 18-06-2018/;

有谁能够澄清路径应该是什么。

脚本 .sh 文件位于我的计算机上:

/Users/myname/Desktop/

那么我的目录的完整路径是:

/Users/myname/Desktop/backups/websites/testsite.co.uk/17-06-2018/
/Users/myname/Desktop/backups/websites/testsite.co.uk/18-06-2018/

任何有关指导的帮助将不胜感激。

答案1

rsync -av --link-dest=/path/to/previous/backup/ source/ /path/to/this/backup/

在您的情况下,更改source/[email protected]:public_html/(请注意,~可能不需要,并且/末尾应该有 a),然后使用本地计算机上的绝对路径(如果可能)。使用绝对路径允许您运行命令而不必过多关心从哪个目录运行它。

-e 'ssh -p22'默认情况下使用,因此您不需要它,并且-r包含在-a选项中。

相关内容