加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

利用shell脚本调用ansible自动化实现企业备份基本环境

发布时间:2020-12-15 23:11:59 所属栏目:安全 来源:网络整理
导读:inotify+rsync实时监控推送NFS挂载目录脚本 #!/bin/ bash Path =/ data /usr/bin/inotifywait -mrq --format ‘ %w%f ‘ -e create,close_write,delete /data | while read line do if [ - f $line ];then rsync -azP $line --delete [email?protected] 192.

inotify+rsync实时监控推送NFS挂载目录脚本

#!/bin/bash Path=/data /usr/bin/inotifywait -mrq --format %w%f -e create,close_write,delete /data | while read line do
        if [ -f $line ];then rsync -azP $line --delete [email?protected]192.168.200.129::nfs --password-file=/etc/rsync.password else cd $Path rsync -azP ./ --delete [email?protected]192.168.200.129::nfs --password-file=/etc/rsync.password fi done

mysql服务器增备脚本

#!/bin/bash name=192.168.200.139 inotifywait -mq --format %f -e create,close_write /usr/local/mysql/data | while read line do cd /usr/local/mysql/data if [ -f $line ];then mv $line /wbq/"$name"_"$line"_`date +%F-%H-%M-%w` #移动改名,因为检查脚本是根据抓IP进行比对MD5sum校验文件个数的 cd /wbq && /usr/bin/md5sum "$name"_"$line"_`date +%F-%H-%M-%w` >> md5sum_"$name".txt #生成校验文件 rsync -az /wbq --delete [email?protected]192.168.200.129::mysql --password-file=/etc/rsync.password  #推送/data这个目>录到备份服务器的mysql目录里 fi done

mysql服务器全备脚本

#!/bin/bash name=192.168.200.127 lujing="/mysql/mysql_all_$(date +%F-%w).sql"

/usr/local/bin/mysqldump -uroot -p666666 --all-databases > $lujing cd /mysql /usr/bin/md5sum $lujing > md5sum.txt /usr/bin/rsync -az /mysql/* [email?protected]::mysql --password-file=/etc/rsync.password find /mysql/ ! -name "mysql_all_*-1" -type f -mtime +30 | xargs rm -f cd /usr/local/mysql/data rm -f mysql-bin.0*

web服务器自动打包系统重要文件脚本

#!/bin/bash name=192.168.200.128 cd /var/spool/cron && tar jcf /bak/root_"$name"_`date +%F-%H-%M-%w`.tar.bz2 root if [ $? -ne 0 ];then test -d  /var/spool/cron || echo "没有cron这个目录!" >> /root/729 fi cd /var/html && tar jcf /bak/www_"$name"_`date +%F-%H-%M-%w`.tar.bz2 www if [ $? -ne 0 ];then test -d  /var/html/www || echo "没有www这个目录!" >> /root/729 fi cd /app && tar jcf /bak/logs_"$name"_`date +%F-%H-%M-%w`.tar.bz2 logs if [ $? -ne 0 ];then test -d  /app || echo "没有app这个目录!">> /root/729 fi cd /etc && tar jcf /bak/rc.local_"$name"_`date +%F-%H-%M-%w`.tar.bz2 rc.local if [ $? -ne 0 ];then test -d /etc || echo "找不到etc这个目录!">> /root/729 fi cd /etc/sysconfig && /bin/tar jcf /bak/iptables_"$name"_`date +%F-%H-%M-%w`.tar.bz2 iptables if [ $? -ne 0 ];then test -d /etc/sysconfig || echo "没有iptables这个配置文件!">> /root/729 fi #删除7天外的数据 find /bak -type f -mtime +7 | xargs rm -f cd / && tar jcf /backup/"$name"_`date +%F-%H-%M-%w`.tar.bz2 bak #对那个目录下所有文件进行校验 然后 重定向到 md5sum文件里,作服务端比对用 cd /backup && /usr/bin/md5sum "$name"_`date +%F-%H-%M-%w`.tar.bz2 > md5sum_"$name".txt rsync -az /backup [email?protected]192.168.200.129::backup --password-file=/etc/rsync.password if [ $? -ne 0 ];then exit 1
else echo "已成功推送" >> /root/729 fi

备份服务器检查完整性脚本

#!/bin/bash function xxx() { #系统重要文件检查脚本 path=/backup path1=/backup/backup clients=`find "$path1" -type f -name "192.168.200*" | awk -F "[/_]" {h[$4]++}END{for(i in h)print i} | wc -l` cmd=`find $path -type f -name "md5sum*"` #找到 根目录里backup下的md5sum打头的校验文件和客户端数量进行比对 #然后我md5sum -c 对文件进行校验 并反回码 if [ `find $path -type f -name "md5sum*" | wc -l` == $clients ];then cd $path1 /usr/bin/md5sum -c $cmd if [ $? -eq 0 ];then echo "系统重要备份文件推送文件完整。完美~" find $path -type f -name "md5sum*" | xargs rm -f else echo "推送文件不完整!" fi else
        return fi } function yyy(){ #增备检查脚本 mulu=/mysql mulu1=/mysql/wbq/ shuliang=`find "$mulu1" -type f -name "192.168.200*" | awk -F "[/_]" {h[$4]++}END{for(i in h)print i} | wc -l` cmd1=`find $mulu1 -type f -name "md5sum*"` if [ `find $mulu1 -type f -name "md5sum*" | wc -l` == $shuliang ];then cd $mulu1 /usr/bin/md5sum -c $cmd1 if [ $? -eq 0 ];then echo "增备推送文件完整。完美~" find $mulu1 -type f -name "md5sum*" | xargs rm -f else echo "推送文件不完整!" fi fi } function zzz(){ #全备检查脚本 mulu=/mysql cd $mulu /usr/bin/md5sum -c md5sum.txt if [ $? -eq 0 ];then echo "全备推送文件完整。完美~" rm -f md5sum.txt else echo "推送文件不完整!" fi } cd /backup/backup test -f md5sum*
if [ $? -eq 0 ];then xxx else echo "没有新的数据更新" fi cd /mysql/wbq test -f md5sum*
if [ $? -eq 0 ];then yyy else echo "没有新的数据更新" fi cd /mysql test -f md5sum*
if [ $? -eq 0 ];then zzz else echo "没有新的数据更新" fi #因为是0点, 所以排除周二的周一的打包文件是周日的数据 find $path ! -name "*-1.tar.gz" -type f -mtime +180 | xargs rm -f find $mulu ! -name "*-1.tar.gz" -type f -mtime +180 | xargs rm -f

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读