您好,登錄后才能下訂單哦!
因公司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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。