沙唐桔

VPS 间通过 rsync 无需密码同步文件(CentOS 7)

rsync 是 Unix 下一款应用软件,它能同步更新两处计算机(VPS)文件与目录。可同步,增量备份等。

rsync 官网:https://rsync.samba.org

安装 rsync

yum install rsync

rsync 使用教程

rsync 有两种工作方式:SSH 和 daemon。

这里只介绍 SSH 方式,SSH模式下进行同步操作,命令:rsync -options SRC DEST;SRC 代表源目录,DEST 代表目标目录,通过 ssh 链接时,有时需要指定 ssh 端口,使用这个方式:rsync -options -e "ssh -p 10000" SRC DEST

常用场景:

本地拷贝目录

将 /home/wwwroot/cyhour/ 拷贝到 /data/wwwroot/cyhour/

rsync -avu /home/wwwroot/cyhour/ /data/wwwroot/cyhour/

将本地目录拷贝到远程服务器

rsync -avu --progress --delete /home/wwwroot/cyhour.com/ root@1.1.1.1:/home/wwwroot/cyhour.com/

如果改了 SSH 端口,需要加-e "ssh -p SSH 端口",不想显示具体传输过程可以去掉P参数,需要压缩传输可以加z参数。

--delete,表示本地删除的文件,远程端也会删除,保持完整一致。

将远程服务器目录拷贝到本地

rsync -avu --progress --delete root@1.1.1.1:/home/wwwroot/cyhour.com/ /home/wwwroot/cyhour.com/

rsync 同步文件并删除多余文件

rsync -avP -e 'ssh -p 1024 -i /root/.ssh/id_rsa' --delete /data/wwwroot/xxx root@1.1.1.1:/data/wwwroot

将执行命令 VPS /data/wwwroot/ 目录下 xxx 同步至目标机器 1.1.1.1 /data/wwwroot 目录下 xxx,并删除目标机器 xxx 目录下多余文件(源机器没有的文件)。

其中 1024 为远程目标机器 SSH 端口;/root/.ssh/id_rsa 为连接远程目标机器的 SSH 私钥(最好不要加密码,否则每次同步需要输入密码),存放在源机器 /root/.ssh/ 目录下。

SSH 登陆可能提示 @ WARNING: UNPROTECTED PRIVATE KEY FILE! @ :

Permissions 0644 for '/root/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

解决方法:

chmod 400 /root/.ssh/id_rsa

400 拥有者只读不可执行;600 拥有者可读写不可执行;700 拥有者有读、写、执行权限。

rsync 常用参数

参考资料

rsync 文件同步/传输,增量备份传输利器使用教程