crond+rsync inotify+rsync
全网定时备份实践 crond + rsync (定时)
验证是否成功 1.打个标记 touch flag 2.md5sum 全网做识别 #######脚本开始############## cd / NAME=`hostname` IP=`ifconfig eth1 | awk -F " " ‘NR==2{print $2}‘` 取IP tar cvzhf $IP_$NAME_file test1 test2 test3 &&rsync avz $IP_$NAME_file [email?protected]::backup &&md5sum file >> $IP_$NAME_flag`date -I` 创建FLAG文件内容为md5sum &&rsync avz $IP_$NAME_flag`date -I` [email?protected]::backup ######脚本结束############## 服务端可用 $IP_$NAME_flag`date -I` 这个文件名做验证 全网实时备份实践 inotify sersync lrsyncd (这种软件很多) 原理监控磁盘变化 inotify-tools 异步文件系统监控 yum install -y inotify 包含下面两个命令 inotifywait inotifywatch inotifywait -mrq --timefmt ‘%d/%m/%y/%H:%M‘ --format ‘%T%w%f‘ -e modify,create,delete /nfsdata`` -m monitor 不加 只监视一次 -r 递归 不加只监视当前一层目录 -q quiet模式,不加输出信息多 --timefmt ‘%y %m %d %H %M‘ 指定时间格式 ‘‘ "" 目前测试效果一样 年 月 日 时 分 --format ‘%T%w%f‘ 输出监控结果的格式 stand output/stand error %T 代表使用--timefmt格式,不加则没有日期 %w 显示目录 不加为event号 %f 显示文件名 不加为空 -e 指定监控的动作 create delete modify attrib close_write(改) open moved_to moved_from move umount 等 具体man /nfsdata /var/log/lastlog 监控的目录或文件 inotifywait 触发rsync推送 #############################脚本开始 #!/bin/bash Path=/nfsdata Ip=10.3.3.3 inotifywait -mr --timefmt ‘%Y/%m/%d %H:%M ‘ --format ‘%T%w%f‘ -e modify,close_write $Path/ |while read line ###这里使用重定向,将文件内容输入到while命令,while命令每次使用read从输入中读取一行数据。 用 line file 都可以 do cd /nfsdata rsync -avz $Path/ --delete [email?protected]$10.3.3.3::backup --password-file=/etc/rsync.pp done ################################脚本结束 inotify 优点:监控文件系统事件变化,通过同步工具实现实时数据同步 高并发数据同步方案1.inotify rsync 文件级别 效率最低2.drbd 文件系统级别 基于block 缺点:备节点数据不可用3.第三方同步软件 mysql oracle mongodb4.程序双写,直接写两台服务器5.业务逻辑解决 读写分离6.NFS集群(双写主存储,备存储用 inotify(sersync) +rsync 备没有找主解决延迟问题 备与前端服务器 做inotify(sersync) +rsync (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |