您好,登錄后才能下訂單哦!
因公司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
免責(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)容。