文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Cacti节点数据库自动同步脚本

2024-04-02 19:55

关注

因公司CA平台较多,每次添加或修改数据都需要在好几个CA上进行操作,同时因公司每台CA上都部署有自动导出脚本,如果手动给每台CA服务器添加或修改数据的话会造成图形ID不一致,从而导致自动导出的图形不一致等问题。所以做次脚本。部署在主CA上。并添加crontab计划任务。每日凌晨自动同步所有节点数据库,使所有节点数据一致。

一、首先编辑脚本

touch /root/back.sh
chmod +x /root/back.sh
vi /root/back.sh

二、插入一下脚本内容,具体参数根据实际情况修改,节点可根据自己需求进行增删。

#!/bin/bash  
#Cacti节点数据库自动同步脚本
#By:Fenei QQ:407603129
#2016年5月12日
#转载请注明出处
#http://babyfenei.blog.51cto.com/443861/1772494
  
st=$(date +%s)  
USER="root"   
PASSWORD="mysql数据库密码" 
DATABASE="cacti"   
MAIL="告警邮件收件箱"
#mail     
BACKUP_DIR=/root/data_backup/
CANAME=cacti.sql
#备份文件存储路径   
LOGFILE=/root/data_backup/data_backup.log
#日志文件路径  
   
DATE=`date +%Y%m%d-%H%M`
#用日期格式作为文件名  
DUMPFILE=$DATE.sql   
ARCHIVE=$DATE.sql.tar.gz   
OPTIONS="-u$USER -p$PASSWORD $DATABASE --ignore-table=cacti.settings" 
#排除settings表
  
#判断备份文件存储目录是否存在,否则创建该目录   
if [ ! -d $BACKUP_DIR ]   
then  
    mkdir -p "$BACKUP_DIR"  
fi    
  
#开始备份之前,将备份信息头写入日记文件   
echo "    ">> $LOGFILE   
echo "--------------------" >> $LOGFILE   
echo "BACKUP DATE:" $(date +"%y-%m-%d %H:%M:%S") >> $LOGFILE   
echo "-------------------" >> $LOGFILE    
  
#切换至备份目录   
cd $BACKUP_DIR   
mysqldump $OPTIONS > $DUMPFILE
#判断数据库备份是否成功   
if [[ $? == 0 ]]  
then   
    tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1   
    echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE   
    rm -f $DUMPFILE 
        #删除原始备份文件,只需保留备份压缩包  
    # 把压缩包文件备份到其他机器上。  
 else   
    echo "Database Backup Fail!" >> $LOGFILE   
#备份失败后向管理者发送邮件提醒   
mail -s "database:$DATABASE Daily Backup Fail!" $MAIL   
fi   
echo "Backup Process Done"  
# 备份文件为cacti.sql并远程备份到节点服务器 
cd $BACKUP_DIR
mysqldump $OPTIONS > $BACKUP_DIR$CANAME  

###############联通CA同步#################
scp -P 17121 $BACKUP_DIR$CANAME root@联通IP:/tmp/ >> $LOGFILE  2>&1
if [[ $? == 0 ]]
	then
		echo "scp is down"
		ssh -t -p 17121 root@联通IP "mysql -uroot -p联通数据库密码 cacti </tmp/cacti.sql"
		# -p 17121 为ssh端口 没有的话可以删掉
		ssh -t -p 17121 root@联通IP "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "联通CA数据库同步出错!" $MAIL 
fi
###############联通CA同步###############
###############电信CA同步###############
scp -P 17121 $BACKUP_DIR$CANAME root@1.82.190.139:/tmp/ >> $LOGFILE  2>&1
if [[ $? == 0 ]]
	then
		echo "scp is down"
		ssh -t -p 17121 root@电信IP "mysql -uroot -p电信数据库密码 cacti </tmp/cacti.sql"
		ssh -t -p 17121 root@电信IP "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "电信CA数据库同步出错!" $MAIL 
fi
###############电信CA同步###############
##############双线CA-备同步#############
scp  $BACKUP_DIR$CANAME root@双线IP :/tmp/ >> $LOGFILE  2>&1
if [[ $? == 0 ]]
	then
		echo "scp is down"
		ssh -t  root@双线IP  "mysql -uroot -p双线数据库密码 cacti </tmp/cacti.sql"
		ssh -t  root@双线IP  "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "双线CA-备数据库同步出错!" $MAIL
fi
###############双线CA-备同步############
rm -f $BACKUP_DIR$CANAME
#删除3天以上的备份文件  
#Cleaning  
find $BACKUP_DIR  -type f -mtime +30 -name "*.tar.gz" -exec rm -f {} \;

三、备份和远程恢复需要对所有节点服务器做SSH免密码登录,具体可参考http://lhflinux.blog.51cto.com/1961662/526122

四、编辑ctontab 

vi /etc/cron.d/backup
#插入如下内容
01 00  * * * root /root/back.sh > /dev/null 2>&1
#退出编辑状态,重启crond服务
service crond restart


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯