利用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 //编译并安装
未完待续......
发表评论