1、前提条件

服务器A为主服务器,服务器B为备份服务器。我们将服务器A的/home/backup/data 目录同步到B服务器的/home/orhon/backup/data/ 目录。

思路是在A服务器上通过inotify监听文件夹的变化、如果有变化就运行rsync命令同步到B服务器。B服务器上以守护进程deamon的形式运行rsync。

  1. 两台服务器必须都需要安装rsync软件。安装方法不讲了。
  2. 源服务器安装inotify软件。

2、源服务器上的配置和操作(本文中的A服务器)

  • 打开或创建备份相关文件夹,进入备份目录。
mkdir /home/backup & cd /home/backup
  •  安装inotify先查看服务器是否支持inotify
    ll /proc/sys/fs/inotify

    会有三个文件,这说明此服务器是支持 inotify的。可以yum源安装的,如epel源。

  • 创建同步任务脚本vi rsyncData.sh
#!/bin/bash
host=192.168.100.100
src=/home/backup/data
des=web
user=orhon
rsyncd_secrets=/home/backup/rsync.passwd
/usr/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files
do
/usr/bin/rsync -zrtopg --delete --progress --password-file=$rsyncd_secrets $src $user@$host::$des
echo "${files} was rsynced" > /var/log/rsyncd.log 2>&1
done

# –delete 参数为本地删除的话远程也会被删除。

# rsyncd_secrets 参数为密码文件的路径,本文中将文件放到了备份相关的目录里了。

  • 创建同步文件所需要的密码文件,这样做是为了安全
touch /home/backup/rsync.passwd
echo 'newpassword' > /home/backup/rsync.passwd

注:这里的newpassword可以是任意字符

出于安全考虑要把此文件的权限改成600:

chmod 600 /home/backup/rsync.passwd

至此A服务器的改配置的项目基本完成,但是根据服务器和环境的不同可能会会出现不同的报错情况,如防火墙原因、读写权限、端口配置等,更多问题可以参考文章rsync 常见问题记录 进行查看。

 

3、备份服务器上的配置操作(本文中的B服务器)

  • 1、建立密码文件:
touch /etc/rsyncd.secrets
echo "webuser:newpassword" >/etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets

同样要给此文件一个600的权限,注:在源服务器A建立的密码文件,只有密码,没有用户名;而在目标备份服务器B里建立的密码文件,用户名与密码都有。

  • 2、写rsync的配置文件:
[web]
path = /home/orhon/backup/data/
comment = Data base files
ignore errors
read only = no
write only = no
hosts allow = 192.168.100.103
hosts deny = *
list = false
uid = root
gid = root
auth users = orhon
secrets file = /etc/rsyncd.secrets
  • 3、目标备份服务器 启动 rsync (进程模式) (B服务器)
/usr/bin/rsync --daemon --config=/etc/rsyncd.conf
  • 查看rsync进程是否开启.
    ps -ef |grep rsync
    root     12450     1  0 10:50 ?        00:00:00 /usr/bin/rsync --daemon --config=/etc/rsyncd.conf
    root     13254 13234  0 15:04 pts/0    00:00:00 grep --color=auto rsyn

    说明已开启

  • 实现开机自启动rsync守护进程

使用 rsync –daemon 然后放到 /etc/rc.local中的最后一行即可.
使用 echo “rsync –daemon” >>/etc/rc.local  就行了。切记是 >>  不是>  .
然后使用tail -2 /etc/rc.local查看一下是否追加成功.

  • 4、源服务器启动同步脚本:
/usr/bin/rsyncData.sh &

 

到这里,所有的都已完成。可以到源服务器下的/home/backup/data 目录下建一个文件,然后再看一下目标服务器下的/home/orhon/backup/data/ 下是否有?

最后修改日期: 2018年1月15日

作者