如何使用scp命令将文件和文件夹从一个远程服务器复制到另一个远程服务器?

时间:2015-12-02 10:00:50

标签: linux terminal remote-access scp remote-server

我在我的机器上使用 Ubuntu Linux 12.04 LTS

有两个远程服务器即

  • 64.211.219.95
  • 42.11.37.153

我可以使用ssh命令登录这两台服务器。这两个服务器都有用户名 root

现在,我想复制来自服务器 64.211的' / var / www /' 文件夹中的所有文件和文件夹。 219.95 到服务器' 42.11.37.153' 上的文件夹' / var / www / project_dir /' 远程,即使用 scp命令

我该怎么办?什么应该是没有任何语法错误的确切命令我用来使这个操作工作?

请有人帮助我。

提前致谢。

3 个答案:

答案 0 :(得分:2)

我认为您的问题在于指定通配符。您可以使用带有斜杠的目录中的递归副本来避免此困难:

scp -r root@64.211.219.95:/var/www/ root@42.11.37.153:/var/www/project_dir

scp命令可以从您喜欢的任何服务器运行,不限于源或目标计算机。

答案 1 :(得分:1)

登录服务器64.211.219.95并使用:

scp -r /var/www root@42.11.37.153:/var/www/project_dir

答案 2 :(得分:1)

在某些情况下,根据您的解决方案和基础架构,您可能希望 使用remote_dir同步 您的source_dir,仍然使用SSH安全和快速协议。这样您就不需要复制整个包,但只需要复制(更改)。

在这种情况下,您想要的是 rsync

rsync -Cravgtzp --delete --exclude="*.gz" -e ssh user@source_host:source_dir/ user@remote_host:remote_dir/ >> /tmp/logfile.log

注意:

如果要在source_dir中删除文件时删除remote_dir中的文件,则使用

--delete

当您对复制这些文件感兴趣时,使用

--exclude(假设* .gz是临时文件修复示例)..