rsync+inotify实现数据的实时备份
rsync主要用于做备份,其工作方式如下
1.本地文件系统实现同步(类似于cp)
2.本地与远程主机实现同步(类似scp),两台主机都要安装rsync
借用ssh加密
3.以守护进程方式运行。本地主机与远程主机通过网络套接字进行数据传输; 端口:873
- 部署rsync
- 首先服务端和客户端均安装rsync包:yum -y install rsync
- 在s端root家目录下创建目录dir1、dir2:mkdir dir1 dir2
- 在在dir1下放置1.txt文件,dir2下放置1.txt 2.txt 3.txt 4.txt四个文件。在客户端根目录下创建test目录:mkdir /test
- 我们把服务端dir1目录下的内容传到客户端/test目录下:rsync -r dir1/ root@192.168.1.21:/test
- rsync选项:
-r 递归
-v 显示信息信息
-P(大) 显示传输进度
-t 保持mtime不变
-o 保持文件的用户
-g 保持文件的用户组
-p 保持文件权限
-l 如果文件是链接文件,则复制链接文件,而不复制源文件
-D 复制特殊的设备文件
主要记住 -avz(rsync -avz )
-a = -rtopgDl
-z 传输时进行压缩,提高传输效率
--delete 无差异备份,删除源位置没有但目标位置有的文件
--exclude 排除,指定某个文件不进行复制
- 如果我们想把dir1连同目录都复制过来,我们需要去掉dir1后面的“/”:rsync -r dir1 root@192.168.1.21:/test
- 注意:rsync在复制时,目录后有“/”代表的是复制目录下的内容,如果没有,表示复制整个目录
- rsync的服务配置文件是/etc/rsyncd.conf,配置内容如下
- 以守护进程方式(一种后台工作模式)运行rsync:rsync --daemon
- 查看rsync监听端口号以及pid:ss -lnpt|grep rsync
- 将远端主机dir1目录中的内容(已在配置文件中设置标签为“test”)拉到本地主机/test目录下,格式rsync -avz 源文件路径 目标文件路径:rsync -avz root@192.168.1.20::test /test
- 如何实现本机文件推送到远程呢?首先修改远程主机配置文件:vim /etc/rsyncd.conf,修改内容如下:
- 将用户名backuper以及密码,写入rsync_passwd文件中:echo "backuper:123456" > /etc/rsync_passwd
- 修改rsync_passwd文件权限为600:chmod 600 /etc/rsync_passwd
- 重启服务端rsync服务:systemctl restart rsyncd
- 修改服务端(远端主机)目录dir1的用户和属组,使其与/etc/rsyncd.conf文件中UID、PID保持一致,此处我们以nobody为例:chown nobody:nobody dir1
- 客户端(本地主机)执行命令:
rsync -avz /test/ backuper@192.168.1.20::test
- 完成客户端(本地主机)到服务端(远程主机)的推送。
- 免密传输文件:客户端执行命令,生成pass文件存放密码echo“123456”> /etc/server.pass
- 更改密码文件权限:chmod 600 /etc/server.pass
- 客户端执行命令:
rsync -az --password-file=/etc/server.pass /test/ backuper@192.168.1.20::test
--password-file=:指定在传输过程中去/etc/server.pass文件中寻找密码,自动填充
- 利用rsync+inotify实现数据的实时备份
结合周期性计划任务可以做定时备份。假设每天晚上11点备份一次,在接近11点时,硬盘损坏;所以如果发现数据变化,就执行一次rsync,rsync本身执行不了此项操作,需要结合inotify(对目录进行一个持续的监控)
- 上传inotify-tools包到客户端家目录下。
- 解包:tar xf inotify-tools-3.14.tar.gz
- cd进解好的包中去
- 编译安装,执行命令:./configure && make && make install
- 客户端复制会话窗口,然后执行命令inotifywait -mrq -e create /test(监听test目录下创建文件的情况),然后再复制的另一个会话窗口中在test目录下创建一个文件,则会有以下显示:
- inotify监听成功
- inotifywait
-r 递归
-q 安静模式,仅打印监控事件的信息
-m 处于始终监听状态
-d 放到后台运行
-e 指定监听的事件
常用组合:-mrqe
第二参数:create,modify(调整,指对文件内容进行增删改),move,delete,attrib(修改或显示文件属性)
- 监控test目录下创建、移动、删除、调整(文件)的情况
inotifywait -mrq -e create,delete,move,modify, /test
- 点赞
- 收藏
- 关注作者
评论(0)