使用 rsync 备份时,如何保留完整的目录结构?
例如,远程服务器是土星,我想备份土星的/主页/udi/文件/图片到名为的本地目录备份。
我想要(本地)备份/主页/udi/文件/图片而不是备份/图片。
答案1
使用-R
或--relative
选项来保留完整路径。
答案2
另一个常见的相关用例是使用来保留目录树的选定部分/./
,例如如果您想要:
/home/udi/files/pictures
要去:
backup/files/pictures
你可以写:
rsync --relative /home/udi/./files/pictures backup
在将该路径传递给系统调用之前,magic/./
会被特别解析,并告诉它从哪里开始创建目录。这对其他 POSIX 实用程序来说通常没有任何意义,例如路径与POSIX 中的相同。rsync
/./
a/./b
a/b
答案3
使用 Cygwin Windows rsync,并假设远程 rsync 指向根,我会执行以下操作:
rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files
这会将远程图片目录的内容放入 /backup/home/udi/files/pictures。unix 下的语法可能类似。
JR
答案4
你可以根据自己想要启动 rsync 的时间在 cron 中进行更改
rsync -avz -e ssh ruser@rserver:/home/udi/files/pictures/* /backup/pictures/
您还可以添加 ssh 密钥来无需密码即可连接远程服务器