如何远程复制另一台Linux服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何远程复制另一台Linux服务器相关的知识,希望对你有一定的参考价值。
怎么样远程复制另一台Linux服务器 我远程复制的时候 为什么总提示我 Linux服务器错误 该怎么弄 要详细一点 我刚开始研究这个 不详细 我会看不明白 谢谢 急!
1.从本机复制文件到远程scp 文件名 远程计算机用户名@远程计算机的ip:远程计算机存放该文件的路径
2.从远程复制文件到本机:
scp 远程计算机用户名@远程计算机ip:文件名 存放该文件的本机路径
3.本地复制目录到远程
scp -r 目录名 远程计算机用户名@远程计算机的ip:远程计算机存放该目录的路径
4.远程复制目录到本机
scp -r 远程计算机用户名@远程计算机ip:目录名 存放该目录的本机路径 参考技术A 远程复制什么?你是说传送文件吗?Linux下最常用的就是scp命令了,首先你要保证你两台机器的IP地址都能通信,防火墙iptables是关闭状态
关闭防火墙命令:/etc/init.d/iptables stop
发送文件命令:scp file.type user@192.168.1.2:/directory
然后输入用户的密码就可以了! 参考技术B 复制内容的话用scp就可以了
远程 Linux 服务器到远程 linux 服务器目录复制。如何? [关闭]
【中文标题】远程 Linux 服务器到远程 linux 服务器目录复制。如何? [关闭]【英文标题】:Remote Linux server to remote linux server dir copy. How? [closed] 【发布时间】:2010-09-09 07:46:44 【问题描述】:将目录(包含子目录和文件)从一台远程 Linux 服务器复制到另一台远程 Linux 服务器的最佳方法是什么?我已经使用 SSH 客户端(如 Putty)连接到两者。我对两者都有根访问权限。
【问题讨论】:
如果你有远程服务器的ftp访问权限,我们也可以使用wget下载,如$wget -r --level=9 --no-parent --reject "index.html*" ftp://<USERID>:<PASSWORD>@<MACHINE-NAME>/path/to
Reference1Reference2
【参考方案1】:
我通常有两种方法,都使用ssh:
scp -r sourcedir/ user@dest.com:/dest/dir/
或者,更健壮和更快(在传输速度方面)的方法:
rsync -auv -e ssh --progress sourcedir/ user@dest.com:/dest/dir/
如果您想了解有关它们如何工作的更多详细信息,请阅读每个命令的手册页。
【讨论】:
添加-L
以跟随符号链接并将它们复制为常规目录。这个链接有很多有用的例子:tecmint.com/rsync-local-remote-file-synchronization-commands【参考方案2】:
我会修改之前建议的回复:
rsync -avlzp /path/to/sfolder name@remote.server:/path/to/remote/dfolder
如下:
-a (用于存档)意味着 -rlptgoD 所以上面的 l 和 p 是多余的。我还喜欢包含 -H,它复制硬链接。默认情况下,它不是 -a 的一部分,因为它很昂贵。所以现在我们有了这个:
rsync -aHvz /path/to/sfolder name@remote.server:/path/to/remote/dfolder
您还必须小心尾随斜杠。你可能想要
rsync -aHvz /path/to/sfolder/ name@remote.server:/path/to/remote/dfolder
如果希望源“sfolder”的内容出现在目标“dfolder”中。如果没有尾部斜杠,则会在目标“dfolder”中创建一个“sfolder”子目录。
【讨论】:
这个答案值得更多的支持,应该被接受。如果你喜欢的话,唯一要添加的是--progress
。【参考方案3】:
rsync -avlzp /path/to/文件夹名@remote.server:/path/to/remote/folder
【讨论】:
【参考方案4】:scp -r <directory> <username>@<targethost>:<targetdir>
【讨论】:
【参考方案5】:登录一台机器
$ scp -r /path/to/top/directory user@server:/path/to/copy
【讨论】:
【参考方案6】:使用 rsync 以便在连接中断时可以继续。如果发生变化,您也可以更快地复制它们!
Rsync 与 SSH 配合使用,因此您的复制操作是安全的。
【讨论】:
【参考方案7】:如果任务重复,请尝试同步。 http://www.cis.upenn.edu/~bcpierce/unison/
【讨论】:
【参考方案8】:我使用了 rdiffbackup http://www.nongnu.org/rdiff-backup/index.html,因为它可以满足您的所有需求,而无需任何花哨的选项。它基于 rsync 算法。 如果您只需要复制一次,您可以稍后删除目标主机上的 rdiff-backup-data 目录。
rdiff-backup user1@host1::/source-dir user2@host2::/dest-dir
来自文档:
rdiff-backup 还保留 子目录、硬链接、开发文件、 权限、uid/gid 所有权、 修改时间,延长 属性、acls 和资源分支。
这是 scp -p 提案的一个好处,因为 -p 选项不会保留所有内容(例如,目录权限设置不当)
在 ubuntu 上安装:
sudo apt-get install rdiff-backup
【讨论】:
【参考方案9】:查看scp 或rsync,
man scp
man rsync
scp file1 file2 dir3 user@remotehost:path
【讨论】:
【参考方案10】:好吧,快速回答是看一下“scp”联机帮助页,或者可能是 rsync - 完全取决于您需要复制的内容。如果必须,您甚至可以使用 tar-over-ssh:
tar cvf - | ssh server tar xf -
【讨论】:
如果远端路径不同,则:(cd $path; tar xf -)【参考方案11】:我想你可以试试:
rsync -azvu -e ssh user@host1:/directory/ user@host2:/directory2/
(我假设您在 host0 上,并且您想直接从 host1 复制到 host2)
如果上面的方法不行,你可以试试:
ssh user@host1 "/usr/bin/rsync -azvu -e ssh /directory/ user@host2:/directory2/"
如果您已经设置了从 host1 到 host2 的无密码 SSH 登录,那么它会起作用
【讨论】:
Rsync 不能以这种方式工作。如果您尝试它,您会收到错误消息“源和目标不能都是远程的。”【参考方案12】:scp 会完成这项工作,但有一个问题:与第二个远程目标的连接将使用第一个远程目标上的配置,因此如果您在本地环境中使用 .ssh/config,并且您期望 rsa 和dsa 密钥才能工作,您必须将您的代理转发到第一个远程主机。
【讨论】:
【参考方案13】:最好是非root用户:
scp -r src $host:$path
如果您已经有 $host 上的一些内容,请考虑使用 rsync 和 ssh 作为隧道。
/艾伦
【讨论】:
【参考方案14】:如果你真的想要一个精确的副本,你可能还想使用 -p 开关到 scp,如果你正在使用它。我发现 scp 从设备读取,而我在 cpio 上遇到了问题,所以我个人一直使用 tar,像这样:
cd /origin; find . -xdev -depth -not -path ./lost+found -print0 \
| tar --create --atime-preserve=system --null --files-from=- --format=posix \
--no-recursion --sparse | ssh targethost 'cd /target; tar --extract \
--overwrite --preserve-permissions --sparse'
我将这个咒语保存在一个文件中,并使用各种其他方式复制文件。这个用于通过 SSH 复制;其他的用于复制到压缩存档,在同一台计算机内复制,以及在 SSH 太慢时通过未加密的 TCP 套接字进行复制。
【讨论】:
【参考方案15】:上面提到的 scp 通常是最好的方法,但不要忘记远程目录规范中的冒号,否则你会在本地机器上获得源目录的副本。
【讨论】:
【参考方案16】:我喜欢通过 ssh 传输 tar。
tar cf - [目录] | ssh [username]@[hostname] tar xf - -C [destination on remote box]
这种方法为您提供了很多选择。由于您应该以普通用户身份登录远程服务器,因此您应该禁用 root ssh 为多个用户帐户复制文件是困难的。为了解决这个问题,您可以在仍然保留所有权的远程机器上创建一个 tar 文件。
tar cf - [目录] | ssh [用户名]@[主机名] "cat > output.tar"
对于慢速连接,您可以添加压缩,z 用于 gzip 或 j 用于 bzip2。
tar cjf - [目录] | ssh [用户名]@[主机名] "cat > output.tar.bz2"
tar czf - [目录] | ssh [用户名]@[主机名] "cat > output.tar.gz"
tar czf - [目录] | ssh [username]@[hostname] tar xzf - -C [destination on remote box]
【讨论】:
以上是关于如何远程复制另一台Linux服务器的主要内容,如果未能解决你的问题,请参考以下文章
将一个Linux系统中的文件或文件夹复制到另一台Linux服务器上(scp的使用)
linux 将一个服务器上的文件或者文件夹复制到另一台服务器上
linux 将一个服务器上的文件或者文件夹复制到另一台服务器上
linux 将一个服务器上的文件或者文件夹复制到另一台服务器上