条件
两台机器的指定目录,这里以/usr/local/nginx/html/为例
被同步的机器(服务端):192.168.10.105
拉取数据的机器(客户端):192.168.10.106
安装
yum install -y rsync
拉取同步,定时
-
配置105服务器并启动
#操作配置文件 vim /etc/rsyncd.conf# See rsyncd.conf man page for more options. # configuration example: # uid = nobody # gid = nobody # use chroot = yes # max connections = 4 # 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 #rsync安全验证 auth users=admin secrets file=/etc/rsyncd.pwd #服务名 [ftp] #被监听同步的目录 path = /usr/local/nginx/html/#/etc/rsyncd.pwd的内容,用户名:密码 admin:123#将/etc/rsyncd.pwd文件降权 chmod 600 /etc/rsyncd.pwd #启动rsync后台进程 rsync --daemon -
操作106同步数据
#配置一个客户端密码文件 /etc/rsyncd.pwd.client 内容就是密码 123456#修改密码文件权限 chmod 600 /etc/rsyncd.pwd.client #查看105对应服务目录下的文件列表,不加file配置,输入密码123456 rsync --list-only --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/ #增量同步命令,输入密码123456 rsync -avz --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/ /usr/local/nginx/html/ #完全同步,删除了命令也会同步删除 rsync -avz --delete --password-file=/etc/rsyncd.pwd.client admin@192.168.10.105::ftp/ /usr/local/nginx/html/ -
如果不需要用户密码验证,去掉服务端和客户端中的验证相关的配置和文件即可,客户端命令变化一下
rsync --list-only 192.168.10.105::ftp/ rsync -avz 192.168.10.105::ftp/ /usr/local/nginx/html/
推送同步,实时
-
106服务器接收,启动rsync后台进程
配置流程和上面拉取同步配置105一样,些许不一样
# See rsyncd.conf man page for more options. # configuration example: #如果使用其他用户和组得修改同步目录得权限 uid = root gid = root # use chroot = yes # max connections = 4 # 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 #rsync安全验证 auth users=admin secrets file=/etc/rsyncd.pwd #关掉默认只读,允许外部提交文件 read only=no #服务名 [ftp] #被监听同步的目录 path = /usr/local/nginx/html/ -
105作为客户端执行命令
#查看106指定ftp服务目录文件列表 rsync --list-only --password-file=/etc/rsyncd.pwd.client admin@192.168.10.106::ftp/ #将105指定文件夹推送到ftp服务目录 rsync -avz --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/ rsync -avz --delete --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/
使用inotify-tool监控
-
安装
#先装一下自动编译工具 yum install -y automake #下载安装包解压 tar -zxvf inotify-tools-3.22.6.0.tar.gz #进入源文件目录,这一步依赖上面的工具 ./autogen.sh #这里如果出现缺少依赖的需要自己安装一下 ./configure --prefix=/usr/local/inotify/ #最后,分开执行也可 make && make install -
客户端105服务器使用脚本,简单实验
#创建一个sh vim /root/inotify_auto.sh chmod +x /root/inotify_auto.sh#!/bin/bash #脚本内容 nohup /usr/local/inotify/bin/inotifywait -mrq --timefmt '%Y-%m-%d %H:%M:%S' --format '%T %w%f%e' -e close_write,modify,delete,create,attrib,move /usr/local/nginx/html/ | while read file do rsync -avz --delete --password-file=/etc/rsyncd.pwd.client /usr/local/nginx/html/ admin@192.168.10.106::ftp/ done#后台进程启动脚本,启动完之后可以在105上操作监控的目录下的文件,106的文件会自动实时同步,也可以看一下日志 nohup /root/inotify_auto.sh >/root/inotify.log 2>&1 &
博客介绍了Linux环境下两台机器指定目录(如/usr/local/nginx/html/)的数据同步方法。包括拉取同步(定时)和推送同步(实时)的配置流程,还提及若无需用户密码验证的处理方式,最后介绍了使用inotify - tool监控的安装及简单实验。
1293

被折叠的 条评论
为什么被折叠?



