lig 发表于 2019-1-9 12:33:12

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

  因公司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.运维网.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/ >> $LOGFILE2>&1
if [[ $? == 0 ]]
then
echo "scp is down"
ssh -t -p 17121 root@联通IP "mysql -uroot -p联通数据库密码 cacti
页: [1]
查看完整版本: Cacti节点数据库自动同步脚本