简介
rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而不是每次都整份传送,因此速度相当快。
语法
1 | # 1,拷贝本地文件。当SRC和DES路径信息都不包含有单个冒号":"分隔符时, |
选项
1 | -v, --verbose 详细模式输出。 |
实例
SSH方式
首先在服务端确定ssh服务状态:
1 | # 查看状态 |
使用rsync进行同步
SSH方式是通过系统用户来进行备份的,如下,描述了整个的备份过程,以及总共备份数据的大小:
1 | rsync -vzrtopg --progress -e ssh --delete work@172.16.78.192:/www/* /databack/experiment/rsync |
后台服务方式
启动rsync服务,编辑 /etc/xinetd.d/rsync
文件,将其中的 disable=yes
改为 disable=no
,并重启 xinetd
服务,如下:
1 | vi /etc/xinetd.d/rsync |
重启 xinetd:
1 | /etc/init.d/xinetd restart |
创建配置文件,默认安装好rsync程序后,并不会自动创建rsync的主配置文件,需要手工来创建,其主配置文件为 /etc/rsyncd.conf
,创建该文件并插入如下内容:
1 | touch /etc/rsyncd.conf |
创建密码文件,采用这种方式不能使用系统用户对客户端进行认证,所以需要创建一个密码文件,其格式为 username:password
,用户名可以和密码可以随便定义,最好不要和系统帐户一致,同时要把创建的密码文件权限设置为600。
1 | echo "work:abc123" > /etc/rsyncd.passwd |
备份,完成以上工作,现在就可以对数据进行备份了,如下:
1 | rsync -avz --progress --delete work@172.16.78.192::www /databack/experiment/rsync |
恢复,当服务器的数据出现问题时,那么这时就需要通过客户端的数据对服务端进行恢复,但前提是服务端允许客户端有写入权限,否则也不能在客户端直接对服务端进行恢复,使用rsync对数据进行恢复的方法如下:
1 | rsync -avz --progress /databack/experiment/rsync/ work@172.16.78.192::www |
参考: