
Remote Linux server to remote linux server dir copy. How?将目录(带有子目录和文件)从一个远程Linux服务器复制到另一个远程Linux服务器的最佳方法是什么? 我已使用SSH客户端(如Putty)连接到两者。 我有两个root访问权限。 我通常有两种方法,都使用ssh:
或者,更强大和更快(在传输速度方面)方法:
如果您想了解有关它们如何工作的更多详细信息,请阅读每个命令的手册页。 我会修改之前建议的回复:
如下: -a(用于存档)暗示-rlptgoD所以上面的l和p是多余的。 我还想包括-H,它复制硬链接。 它不是-a的一部分,因为它很昂贵。 所以现在我们有了这个:
你还必须小心尾随斜杠。 你可能想要
如果希望源"sfolder"的内容出现在目的地"dfolder"中。 如果没有尾部斜杠,将在目标"dfolder"中创建"sfolder"子目录。 rsync -avlzp / path / to / folder name@remote.server:/ path / to / remote / folder
登录一台机器
如果任务重复,请尝试一致。
我使用了rdiffbackup http://www.nongnu.org/rdiff-backup/index.html,因为它可以满足您的所有需求而无需任何花哨的选项。它基于rsync算法。
来自文档:
这是scp -p提案的一个奖励,因为-p选项不能保留所有(例如,目录上的权限设置不当) 在ubuntu上安装:
使用rsync,以便在连接中断时可以继续。如果有什么变化,你也可以更快地复制它们! Rsync可与SSH配合使用,因此您的复制操作是安全的。
查看scp或rsync,
我想你可以尝试:
(我假设你在host0上,你想直接从host1复制到host2) 如果上述方法无效,您可以尝试:
如果你已经设置了从host1到host2的无密码SSH登录,它就可以工作了 那么,快速回答会看看'scp'手册页,或者可能是rsync - 完全取决于你需要复制的内容。如果必须,你甚至可以做tar-over-ssh:
scp将完成这项工作,但有一个问题:与第二个远程目标的连接将使用第一个远程目标上的配置,因此如果您在本地环境中使用.ssh / config,并且您希望rsa和dsa键为工作时,您必须将代理转发到第一个远程主机。 如果你真的想要一个精确的副本,你可能还想使用-p开关来scp,如果你正在使用它。我发现scp从设备读取,我遇到了cpio的问题,所以我个人总是使用tar,就像这样:
我将这个咒语保存在一个文件中,其中包含各种其他复制文件的方法。这个用于通过SSH进行复制;其他用于复制到压缩存档,在同一台计算机中复制,以及在SSH太慢时复制未加密的TCP套接字。 scp如上所述通常是最好的方法,但不要忘记远程目录规范中的冒号,否则你将获得本地机器上的源目录的副本。 我喜欢通过ssh管道tar。 tar cf - [目录] | ssh [username] @ [hostname] tar xf - -C [远程盒子上的目的地] 此方法为您提供了许多选项。由于您要以root用户身份禁用复制多个用户帐户的文件很困难,因为您以普通用户身份登录远程服务器。为了解决这个问题,你可以在远程盒子上创建一个tar文件,它仍保留所有权。 tar cf - [目录] | ssh [username] @ [hostname]"cat> output.tar" 对于慢速连接,您可以添加压缩,z为gzip或j为bzip2。 tar cjf - [目录] | ssh [username] @ [hostname]"cat> output.tar.bz2" tar czf - [目录] | ssh [username] @ [hostname]"cat> output.tar.gz" tar czf - [目录] | ssh [username] @ [hostname] tar xzf - -C [远程盒子上的目的地] 理想情况下,作为非root用户: scp -r src $ host:$ path 如果你已经在$ host上的一些内容考虑使用rsync和ssh作为隧道。 /艾伦 |