因公司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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。