我正在使用 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
选项中。