利用Rsync+Inotify实现远程差异文件自动同步备份,客户端主动同步服务器产生变化的文件。

配置服务端:

yum -y install rsync             //安装程序


vim /etc/rsyncd.conf              //修改配置文件,参照如下模板修改

# /etc/rsyncd: configuration file for rsync daemon mode


# See rsyncd.conf man page for more options.


# configuration example:


 uid = nobody

 gid = nobody

 use chroot = no                                //是否接收客户端上传数据

 max connections = 0                        //设置并发连接数量,0为无限制。

 port = 873                                          //指定端口

 secrets file = /etc/rsyncd.secrets      //指定密码文件路径

 auth users = test                                //指定密码文件用户名


# pid file = /var/run/rsyncd.pid     

# exclude = lost+found/

# transfer logging = yes

# timeout = 900

# ignore nonreadable = yes

# dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2


 [web]                                                          //共享标识

        path = /var/www/blog/                       //共享文件路径

#        comment = ftp export area


echo "test:123456" > /etc/rsyncd.secrets      //创建密码文件

chmod 600 /etc/rsyncd.secrets

rsync --daemon                                       //启动服务


配置客户端:

yum -y install rsync             //安装程序


rsync -vzrtopg --progress [email protected]::web /var/www/blog/        //执行此命令输入密码后,可简单的将文件一次性同步到本地的 /var/www/blog/ 路径下。

             选项参照下表          用户名@IP地址::共享标识        本地路径

选项详解:

-v                //显示详细信息

-q                //静默模式,无错误信息

-a                //递归模式,主要保留文件属性,相当于-lrptgoD

-r                //递归

-b                //保留同名文件,并将旧的文件重命名为 "~文件名"

-u                //如果服务端文件比本地文件旧,则不同步

-l                //保留符号链接

-p                //保留文件权限属性

-H                //保留硬连接

-A                //保留ACL权限

-X                //保留文件附加属性

-o                //保留文件所有者属性

-g                //保留文件所属组属性

-t                //保留修改时间属性

-W                //不论文件是否有变化,直接复制全部文件。

-z                //传输过程中对数据压缩

--existing                             //仅同步目标路径中已有的文件,不下载路径下新的文件

--delete                               //删除仅在目标路径中存在的文件(源路径中不存在)

--progress                            //显示数据传输的进度

--partial                               //保留因为故障传输未完成的文件

--password-file=文件          //指定密码文件,将密码写入文件,实现非交互式的数据同步


下载inotify软件包:http://dl.teddyou.cn/download/inotify-tools-master.zip

unzip inotify-tools-master.zip           //解压文件

cd inotify-tools-master/                    //进入目录

yum -y install automake libtool       //安装需要的依赖包

./autogen.sh                                         //执行脚本,创建configure安装脚本

./configure && make && make install        //编译并安装


未完待续......

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。