Rsync远程同步工具 1配置rsync源服务器(http://rsync.samba.org/) (1)建立配置文件 vim /etc/rsyncd.conf uid = nobody //指定运行程序的用户 gid = nobody //指定运行程序的组 use chroot = yes //禁锢在源目录,指只能访问我指定的目录不允许访问其他目录,类似以vsftpd的禁锢 address = 192.168.1.20 //指定监听的地址 port 873 //指定监听的端口 log file = /var/log/rsyncd.log //指定日志文件存放的位置 pid file = /var/run/rsyncd.pid //指定进程文件的位置 hosts allow = 192.168.1.0/24 //指定可以访问的地址,这里如果需要实现异地灾备的时候可以写上公网的IP地址,通过路由器映射进来就可以了。 [www] //指定共享的名字 path = /var/www/html //源目录的实际目录 comment = Dcoument Root of web.lzg.com //这个模块的描述信息 read only = yes(no) //目录为只读(可读可写) dont compress = .gz .bz2 .zip .z .rar //在传输过程中不在进行二次压缩的文件类型。 auth users = backuper //授权备份的用户 secrets file = /etc/rsyncdusers.db //指定账户信息的数据文件位置* (2)为备份账户创建数据文件 vim /etc/rsyncdusers.db backuper:123.com //用户和密码,无需建立同名系统用户* chmod 600 /etc/rsyncd_users.db rsync –daemon netstat –anput | grep rsync 2配置客户端进行验证 rsync -avz backuper@192.168.1.20::www /myweb** 3创建密码文件自动同步 vim /etc/server.pass 123.com chmod 600 /etc/server.pass rsync –avz –delete --password-file=/etc/server.pass backuper@192.168.1.20::www /myweb 计划任务定期同步 Crontab –e 30 22 * * * /usr/bin/rsync –avz --delete --password-file=/etc/server.pass backuper@192.168.1.20::www /myweb 4配置inotify+rsync 实时同步 调整inotify内核参数:
vim /etc/sysctl.conf
fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 1024 fs.inotify.max_user_watches = 1048576 sysctl –p 安装inotify-tools 编写触发时启动脚本 Mkdir /sh Vim /sh/inotify_rsync.sh #!/bin/bash INOTIFY="inotifywait -mrq -e modify,create,move,delete,attrib /myweb/" RSYNC="rsync -azH --delete --password-file=/etc/server.pass /myweb/ backuper@192.168.1.20::www" $INOTIFY | while read DIRECTORY EVENT FILE do $RSYNC Done 运行脚本 在服务器上 Chmod –R 777 /var/www/html 验证