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

How to copy files and folders from one remote server to another remote server using scp command?

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

有两个远程服务器,即

我可以使用 ssh 命令登录到两台服务器。两台服务器的用户名都是 root.

现在我想从服务器复制文件夹'/var/www/'中的所有文件和文件夹64.211.219.95 到服务器 '42.11.37.153' 上的文件夹 '/var/www/project_dir/' 远程即使用 scp 命令.

我应该怎么做?我必须使用什么命令才能使此操作正常运行?

请有人帮助我。

提前致谢。

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

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

scp命令可以运行来自任何你喜欢的服务器,不限于源或目标机器。

登录服务器 64.211.219.95 并使用:

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

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

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

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

注:

--delete 用于在 remote_dir 中删除文件,而文件已在 source_dir 中删除。

--exclude 当您对复制这些文件不感兴趣时​​使用(假设 *.gz 是临时文件修复示例)..