rsync是类unix系统下的数据镜像备份工具——remote sync。一款快速增量备份工具 Remote Sync,远程同步支持本地复制,或者与其他SSH、rsync主机同步。与传统的cp、scp、tar备份方式相比,rsync具有安全性高、备份迅速、支持增量备份等优点,通过rsync可以解决对实时性要求不高的数据备份需求,例如定期的备份文件服务器数据到远端服务器,对本地磁盘定期做数据镜像等。
环境
CentOS 5.8(64) 192.168.23.130 (service)
centos 5.8(64) 192.168.23.131 (client)
软件
rsync-3.1.1.tar.gz()
安装步骤
1.前期的准备条件
a.关闭selinux、防火墙(个人习惯不管什么情况下,自己玩都是必须关闭)
b.yum install -y make gcc
2.安装rsync(service、client)
a.tar -zxf rsync-3.1.1.tar.gz
b.cd rsync-3.1.1
c. ./configure --prefix=/usr/local/rsync
d.make
e.make install
3.配置rsync
a.vim /etc/rsyncd.conf(service)
uid = root
gid = root
use chroot = no
[apps]
auth users = root
secrets file = /etc/rsyncd.passwd
munge symlinks = no
read only = no
path=/data/test
b.vim /etc/rsyncd.passwd(service)
root:111111
c.vim /etc/rsync.passwd(client)
111111
4.启动rsync(service)
/usr/local/rsync/bin/rsync --daemon --config=/etc/rsyncd.conf
5.同步文件(client)
/usr/local/rsync/bin/rsync -vzrtopg --progress --delete rsync://root@192.168.23.131/apps /tmp/tmp/ --password-file=/etc/rsync.pas (service->client)
/usr/local/rsync/bin/rsync -vzrtopg --progress --delete /tmp/tmp/ rsync://root@192.168.23.131/apps --password-file=/etc/rsync.pas (client->service)
6.验证
到相应的目录查看是否存在同步的文件
以后是手动运行的,对于比较懒的人肯定不适合,下边就介绍Inotify-tools工具,可以实现实时自动同步。Inotify 是一个 Linux特性,它监控文件系统操作,比如读取、写入和创建。Inotify 反应灵敏,用法非常简单,并且比 cron 任务的繁忙轮询高效得多。学习如何将 inotify 集成到您的应用程序中,并发现一组可用来进一步自动化系统治理的命令行工具。
7.安装Inotify-tools
a.wget
b.tar -zxf inotify-tools-3.14.tar.gz
c.cd inotify-tools-3.14
d. ./configure --prefix=/usr/local/inotify
e.make
f.make install
8.编写shell脚本(rsync.sh)
#!/bin/sh
#local dir
dstdir="/tmp/tmp/"
#sync user
rsyncuser="root"
#sync password
rsyncpassword="/etc/rsync.pas"
#remote ip
remoteip="192.168.23.131"
#remote module
module="apps"
#sync remote server module to local dir
for ip in $remoteip
do
/usr/local/rsync/bin/rsync -vzrtopg --progress --delete $rsyncuser@$ip::$module $dstdir --password-file=$rsyncpassword
done
#monitor local dir, then rsync remote server module
/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move $dstdir | while read file
do
for ip in $remoteip
do
/usr/local/rsync/bin/rsync -vzrtopg --progress --delete $dstdir $rsyncuser@$ip::$module --password-file=$rsyncpassword
echo " ${file} was rsynced" >> /tmp/rsync.log 2>&1
done
done
9.chmod 755 rsync.sh
10.运行shell脚本,并到相应的目录操作看是否操作成功
11.设置开机自启动
echo "sh /usr/local/inotify/rsync.sh &" >> /etc/rc.d/rc.local