2015-12-02 33 views
1

我在我的机器上使用Ubuntu Linux 12.04 LTS如何使用scp命令将文件和文件夹从一台远程服务器复制到另一台远程服务器?

有两个远程服务器,

  • 64.211.219.95
  • 42.11.37.153

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

现在我想副本所有关于本文件夹中的文件和文件夹“/无功/网络/”从服务器64.211.219.95到文件夹“/无功/网络/ PROJECT_DIR /”服务器'42 .11.37.153'远程即使用scp命令

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

请有人帮助我。

在此先感谢。

+0

据我所知,这两个目录是在同一台服务器上,从而[你不t需要scp](http://stackoverflow.com/questions/305035/how-to-use-ssh-to-run-shell-script-on-a-remote-machine)。 – Emilien

+0

@Emilien:不,两个目录都在不同的服务器上。 – user2839497

回答

2

我认为你的问题是指定一个通配符。您可以使用从目录递归副本以斜杠,可见避免这种困难:

scp -r [email protected]:/var/www/ [email protected]:/var/www/project_dir 

scp命令可以从任何你喜欢的服务器,而不是仅限于源或目标机器上运行。

+0

这两个目录位于不同的服务器上。你能否相应地修改你的答案。另外让我知道我要登录哪台服务器来运行scp命令。 – user2839497

+0

我应该使用ssh登录哪个服务器并运行您提供的命令? – user2839497

+0

你可以从任何服务器运行这个 - 你提到的两个之一或你喜欢的任何其他服务器。 –

1

登录服务器时和64.211.219.95使用:

scp -r /var/www [email protected]:/var/www/project_dir 
1

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

在这种情况下,你要的是rsync的

rsync -Cravgtzp --delete --exclude="*.gz" -e ssh [email protected]_host:source_dir/ [email protected]_host:remote_dir/ >> /tmp/logfile.log 

注意:当你想要的时候,他们已经source_dir内删除remote_dir内删除文件

--delete使用。

--exclude当你没有在复制这些文件的兴趣被使用(假设*。广州是临时文件弄不好例子)..

相关问题