溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Cacti節(jié)點(diǎn)數(shù)據(jù)庫(kù)自動(dòng)同步腳本

發(fā)布時(shí)間:2020-07-04 15:05:31 來(lái)源:網(wǎng)絡(luò) 閱讀:547 作者:babyfenei 欄目:數(shù)據(jù)庫(kù)

因公司CA平臺(tái)較多,每次添加或修改數(shù)據(jù)都需要在好幾個(gè)CA上進(jìn)行操作,同時(shí)因公司每臺(tái)CA上都部署有自動(dòng)導(dǎo)出腳本,如果手動(dòng)給每臺(tái)CA服務(wù)器添加或修改數(shù)據(jù)的話會(huì)造成圖形ID不一致,從而導(dǎo)致自動(dòng)導(dǎo)出的圖形不一致等問(wèn)題。所以做次腳本。部署在主CA上。并添加crontab計(jì)劃任務(wù)。每日凌晨自動(dòng)同步所有節(jié)點(diǎn)數(shù)據(jù)庫(kù),使所有節(jié)點(diǎn)數(shù)據(jù)一致。

一、首先編輯腳本

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

二、插入一下腳本內(nèi)容,具體參數(shù)根據(jù)實(shí)際情況修改,節(jié)點(diǎn)可根據(jù)自己需求進(jìn)行增刪。

#!/bin/bash  
#Cacti節(jié)點(diǎn)數(shù)據(jù)庫(kù)自動(dòng)同步腳本
#By:Fenei QQ:407603129
#2016年5月12日
#轉(zhuǎn)載請(qǐng)注明出處
#http://babyfenei.blog.51cto.com/443861/1772494
  
st=$(date +%s)  
USER="root"   
PASSWORD="mysql數(shù)據(jù)庫(kù)密碼" 
DATABASE="cacti"   
MAIL="告警郵件收件箱"
#mail     
BACKUP_DIR=/root/data_backup/
CANAME=cacti.sql
#備份文件存儲(chǔ)路徑   
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表
  
#判斷備份文件存儲(chǔ)目錄是否存在,否則創(chuàng)建該目錄   
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
#判斷數(shù)據(jù)庫(kù)備份是否成功   
if [[ $? == 0 ]]  
then   
    tar czvf $ARCHIVE $DUMPFILE >> $LOGFILE 2>&1   
    echo "[$ARCHIVE] Backup Successful!" >> $LOGFILE   
    rm -f $DUMPFILE 
        #刪除原始備份文件,只需保留備份壓縮包  
    # 把壓縮包文件備份到其他機(jī)器上。  
 else   
    echo "Database Backup Fail!" >> $LOGFILE   
#備份失敗后向管理者發(fā)送郵件提醒   
mail -s "database:$DATABASE Daily Backup Fail!" $MAIL   
fi   
echo "Backup Process Done"  
# 備份文件為cacti.sql并遠(yuǎn)程備份到節(jié)點(diǎn)服務(wù)器 
cd $BACKUP_DIR
mysqldump $OPTIONS > $BACKUP_DIR$CANAME  

###############聯(lián)通CA同步#################
scp -P 17121 $BACKUP_DIR$CANAME root@聯(lián)通IP:/tmp/ >> $LOGFILE  2>&1
if [[ $? == 0 ]]
	then
		echo "scp is down"
		ssh -t -p 17121 root@聯(lián)通IP "mysql -uroot -p聯(lián)通數(shù)據(jù)庫(kù)密碼 cacti </tmp/cacti.sql"
		# -p 17121 為ssh端口 沒(méi)有的話可以刪掉
		ssh -t -p 17121 root@聯(lián)通IP "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "聯(lián)通CA數(shù)據(jù)庫(kù)同步出錯(cuò)!" $MAIL 
fi
###############聯(lián)通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電信數(shù)據(jù)庫(kù)密碼 cacti </tmp/cacti.sql"
		ssh -t -p 17121 root@電信IP "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "電信CA數(shù)據(jù)庫(kù)同步出錯(cuò)!" $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雙線數(shù)據(jù)庫(kù)密碼 cacti </tmp/cacti.sql"
		ssh -t  root@雙線IP  "rm -f /tmp/cacti.sql"
		echo "shell is down!"
	else
		mail -s "雙線CA-備數(shù)據(jù)庫(kù)同步出錯(cuò)!" $MAIL
fi
###############雙線CA-備同步############
rm -f $BACKUP_DIR$CANAME
#刪除3天以上的備份文件  
#Cleaning  
find $BACKUP_DIR  -type f -mtime +30 -name "*.tar.gz" -exec rm -f {} \;

三、備份和遠(yuǎn)程恢復(fù)需要對(duì)所有節(jié)點(diǎn)服務(wù)器做SSH免密碼登錄,具體可參考http://lhflinux.blog.51cto.com/1961662/526122

四、編輯ctontab 

vi /etc/cron.d/backup
#插入如下內(nèi)容
01 00  * * * root /root/back.sh > /dev/null 2>&1
#退出編輯狀態(tài),重啟crond服務(wù)
service crond restart


向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI