我需要重新安装服务器我们之一,作为预防措施,我想移动/home,/etc,/opt,和/Services备份服务器.
但是,我有一个问题:由于大量的符号链接,很多文件被复制多次.
是否可以scp忽略符号链接(或实际上将链接复制为链接而不是目录或文件)?如果没有,还有另一种方法吗?
Kri*_*s_R 74
我知道这是可能的,我只是采取了错误的工具.我用rsync做到了
rsync --progress -avhe ssh /usr/local/ XXX.XXX.XXX.XXX:/BackUp/usr/local/
Run Code Online (Sandbox Code Playgroud)
Luk*_*uke 27
我发现,该rsync法并没有为我工作,但是我发现这个网站(在没有工作的替代www.docstore.mik.ua/orelly).
特别是"O'Reilly:SSH:The Secure Shell.The Definitive Guide"的第7.5.3节.
7.5.3.目录的递归副本
...
虽然scp可以复制目录,但它不一定是最好的方法.如果您的目录包含硬链接或软链接,则不会重复这些链接.链接被复制为普通文件(链接目标),更糟糕的是,循环目录链接导致scp1无限循环.(scp2检测符号链接并复制其目标.)其他类型的特殊文件(如命名管道)也未正确复制.更好的解决方案是使用tar,它正确处理特殊文件,并将其发送到远程机器通过SSH解压缩:
$ tar cf - /usr/local/bin | ssh server.example.com tar xf -
Run Code Online (Sandbox Code Playgroud)
Voj*_*tek 17
使用tarover ssh作为发送者和接收者也可以做到这一点:
cd $DEST_DIR
ssh user@remote-host 'cd $REMOTE_SRC_DIR; tar cf - ./' | tar xvf -
Run Code Online (Sandbox Code Playgroud)