rsync

rsync是linux下的数据备份工具,支持远程同步、本地复制。

这是一篇rsync简单的使用文章,很多rsync的认识不足,更多的rsync知识请

到rsync官网研读:

rsyrsync是系统自带的(至少2.6内核是这样的),如果不是自己编译的内核应该是自带。

检查一个安装 rpm -qa | grep rsync

如果没有安装,自己下载rpm包或者使用yum安装,这里就不演示。

配置rsync服务

vim /etc/xinetd.d/rsync

把disable的yes改成no

设置rsync开机自启

chkconfig --level 35 rsync on

 

rsync的两种同步方式

一种是单次同步

一种是多次(每天定时同步)

单次同步只要服务器和客户端都开启rsync服务

使用rsync命令去同步

例如:

输入15.5root密码

这就把15.5服务器的rsync.sh的数据给同步过来了

这和scp相类似

 

每天定时同步的是下面的设置

cd /etc/

mkdir rsyncd

touch rsyncd.conf            //rsync的主配置文件

touch rsyncd.motd            //rsync的欢迎信息

touch rsyncd.secrets        //rsync用户的密码文件

vim rsyncd.secrets          //文件把用户和密码写入用:分隔

kingvon:test

chmod 600 rsyncd.secrets

配置rsync的主配置文件

vim /etc/rsyncd/rsyncd.conf

 

前半部分是全局设置

port            //设置rsync的端口

uid             //运行rsync的守护进程的用户

gid             //运行rsync的守护进程的组

use chroot      //不使用chroot

strict modes    //是否检查口令

read only       //是否只读

lock file       //指定支持最大并发量参数的锁文件。

log file        //日志文件

pid file        //守护进程的pid文件

后面是模块设置

[tmp]           //这里认证模块的名字,在client端需要指定

path/           //需要同步的目录

ignore errors   //忽略一些无关的io错误

auth users      //认证的用户名,此用户与系统无关不用去useradd

hosts allow     //允许的主机或网段

hosts deny      //禁止的主机或网段

secrets file    //rsync用户密码文件

 

配置好rsyncd.conf

还要做一个连接

ln -s /etc/rsyncd/rsyncd.conf  /etc/rsyncd.conf

因为rsync只会去查找/etc/rsyncd.conf文件

如果原来就存在/etc/rsyncd.conf,且文件里面有数据

rsync会以/etc/rsyncd.conf为准

如果不建立这个连接rsync找不到配置文件

使用rsync同步时会提示错误

rsync: read error: Connection reset by peer (104)

rsync error: error in rsync protocol data stream (code 12) at io.c(759) [receiver=3.0.6] 

关闭或配置iptabeles

开启873端口或直接关闭iptables

因为我这是一个samba服务器,使用的是内部网络所以我之前就关闭了iptables

 

客户端的设置

安装好rsync

设置rsync开机启动

编辑用户密码文件

vim /etc/rsyncd/ryncd.secrets

kingvon:test

 

下面是rsync命令的一些常用的参数

-a        归档模式,以递归方式传输文件并保持属性

-r        对子目录以递归模式处理

-R        使用相对路径

-p        保持文件的权限

-o        owner文件的所有者

-g        group文件的所属组

-t        time保持文件的时间(atime,ctime)

-z        对文件传输时进行压缩传输

--progress 传输时实现传输过程

--password-file 密码文本的参数

-h        显示帮助

更多参数请自行google

 

使用rsync命令去同步

 /usr/bin/rsync -azrtopg --progress --delete kingvon@172.16.15.55::tmp /opt/ --password-file=/etc/rsyncd/rsyncd.secrets

 

写个脚本去自动执行

vim /root/backup.sh

#!/bin/bash

 /usr/bin/rsync -azrtopg --progress --delete kingvon@172.16.15.55::tmp /opt/ --password-file=/etc/rsyncd/rsyncd.secrets

chmod 755 backup.sh

 

crontab -e

去设置执行的时间

* 1 * * *    /root/backup.sh

每天1点自动执行同步