Rsync是一个非常简单和方便的小工具,而且也非常的适用;不仅可以用来方便的下拉文件,而且也可以用来作为数据备份的一个工具。下面我自己实验来搭建一个使用rsync作为备份工具。

 

实验一、

A、     B两个linux系统服务器,服务器A作为网站服务器,上面有重要的数据需要实时备份;服务器B作为备份服务器,需要实时去将A服务器的数据和文件下载下来进行异地备份。

A服务器ip :192.168.5.120

B服务器ip :192.168.5.147

1.  rsync的安装(此步骤非常的简单,可以忽略不计)

1).下载rsync源码包:

2).进行编译安装:

tar –zxvf rsync-3.0.9.tar.gz

cd rsync-3.0.9

./configure

Make && make install 

 

2.  配置rsync (A服务器上配置)

1).简单配置rsync

Rsync的配置文件为rsyncd.conf 这个文件默认是没有的,需要自己手动创建或者去其他地方cp一份,一些全局参数和模块参数,模块参数以方括弧开始,配置完毕的配置文件如下:

<在配置文件中最好不要保留后面汉字注释,这里仅供参考>

list=no                         #是否列出模块 默认是yes

uid=root                        #守护进程用户id默认是nobody

gid=root                        #守护进程组id 默认是nobody

strict modes = yes              #是否检查口令文件权限,yes为检查权限,口令文件权限必须为root用户权限

max connections=10000           #最大连接数

log file=/data0/logs/rsync/rsyncd.log

pid file=/var/run/rsyncd.pid

lock file=/var/run/rsync.lock

#hosts deny=*

 

[www]         #模块的开始

path=/data/www_root/            #需要备份的路径

comment=web

ignore errors                   #忽略一下IO错误

read only=no                    #客户端可以上传文件,yes表示只读

write only = no                 #客户端可以下载文件,yes表示不能下载

hosts allow=192.168.5.147

#osts deny=*

secrets file = /root/rsyncd.secrets   #密码文件

 

2).sync服务:rsync --daemon --config=/etc/rsyncd.conf

3).查看rsync启动

[root@bogon ~]# ps axuf | grep rsync

root      8387  0.0  0.2  63424   784 pts/1    D+   22:46   0:00          \_ grep rsync

root      8382  0.0  0.1  61436   616 ?        Ss   22:46   0:00 rsync --daemon --config=/etc/rsyncd.conf

 

或者查看端口是否监听

[root@bogon ~]# netstat -nap | grep 873

tcp        0      0 0.0.0.0:873                 0.0.0.0:*                   LISTEN      8382/rsync         

tcp        0      0 :::873                      :::*                        LISTEN      8382/rsync

 

4).创建口令文件以及权限

echo “rsync:123456” > /root/rsyncd.secrets

chmod 600 /root/rsyncd.secrets

 

3.  B服务器上不需要做任何设置,只需要rsync执行同步就行。为了能在B服务器上自动同步需要在B服务器上创建一个密码文件,文件内容为指定用户的密码。

echo “123456” >/root/rsyncd.secrets

chmod 600 /root/rsyncd.secrets

 

/usr/bin/rsync -vzrtopg --delete --progress rsync@192.168.5.120::www /data/www_root_back --password-file=/root/rsyncd.secrets

 

v 详细模式输出

z 在传输中进行压缩

r 对子目录进行递归模式处理

t 保持文件时间信息

o 保持文件属主信息

p 保持文件权限信息

g 保持文件属组信息

--delete 以服务器端为基准,保持服务器端和客户端目录的完全一致

--progress 显示同步过程

--exclude 排除不需要传输的文件类型

--password-file  指定口令文件路径

 

4.  添加计划任务,定时自动备份

每5分钟同步一次

crontab –e

 

*/5 * * * * /usr/bin/rsync -vzrtopg --delete --progress rsync@192.168.5.120::www /data/www_root_back --password-file=/root/rsyncd.secrets