Rsync是一个非常简单和方便的小工具,而且也非常的适用;不仅可以用来方便的下拉文件,而且也可以用来作为数据备份的一个工具。下面我自己实验来搭建一个使用rsync作为备份工具。
实验一、
A、 B两个linux系统服务器,服务器A作为网站服务器,上面有重要的数据需要实时备份;服务器B作为备份服务器,需要实时去将A服务器的数据和文件下载下来进行异地备份。
A服务器ip :192.168.5.120
B服务器ip :192.168.5.147
1. rsync的安装(此步骤非常的简单,可以忽略不计)
1).下载rsync源码包:
wget https://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
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启动
[[email protected] ~]# 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
或者查看端口是否监听
[[email protected] ~]# 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 [email protected]::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 [email protected]::www /data/www_root_back --password-file=/root/rsyncd.secrets