两台linux服务器之间同步文件

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服务器)

  • 打开或创建备份相关文件夹,进入备份目录。

  •  安装inotify先查看服务器是否支持inotify

    会有三个文件,这说明此服务器是支持 inotify的。可以yum源安装的,如epel源。
  • 创建同步任务脚本 vi rsyncData.sh

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

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

  • 创建同步文件所需要的密码文件,这样做是为了安全

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

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

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

 

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

  • 1、建立密码文件:

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

  • 2、写rsync的配置文件:

  • 3、目标备份服务器 启动 rsync (进程模式) (B服务器)

  • 查看rsync进程是否开启.


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

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

  • 4、源服务器启动同步脚本:

 

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