Skip to content

Instantly share code, notes, and snippets.

@85636682
Created March 13, 2014 11:49
Show Gist options
  • Save 85636682/9526959 to your computer and use it in GitHub Desktop.
Save 85636682/9526959 to your computer and use it in GitHub Desktop.
使用rsync在两台VPS间传输文件
使用rsync在两台VPS间传输文件
如果你的VPS上有个文件要传到另一个VPS上,最最简单的方法有两种。一个是先下载到本地,然后上传到另一个VPS,这个方法的缺点是速度慢。另一个方法是放到http可以访问的目录下,然后在另一台VPS上使用wget命令下载,这个方法的缺点是操作较为麻烦,需要分别登陆两台VPS,而且无法使用自动脚本。当然还有一个方法,可以克服上面两个方法的缺点,这就是本文要讲的rsync。
rsync介绍
rsync是通过SSH的方法,将VPS上的文件传输到另一台VPS,它需要建立密钥认证。其最大的优点在于,建立了密钥认证以后,只需要在一台VPS操作,就可以实现两台VPS间的数据同步。这个优点主要是针对于自动脚本,这样可以很方便地用于数据定时备份同步。
rsync使用方法
首先假设在VPS1中有个文件/root/file.tar要传到VPS2的home目录中。
1.建立密钥认证
在VPS1中执行
ssh-keygen -t rsa
执行后会提示输入密钥文件输出目录,直接回车使用默认目录即可,然后是询问设定的密码,直接回车两次,表示无密码。
2.上传密钥证书
将刚才生成的密钥证书(默认在/root/.ssh/id_rsa.pub)上传到VPS2的/root/.ssh目录中,并重命名为authorized_keys
3.传输文件
rsync -avz -e 'ssh -p 22' /root/file.tar root@vps2.com:/home
上面的命令在VPS1中执行,将/root/file.tar文件上传到VPS2(这里假设域名是vps2.com)的/home目录下。
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment