推薦
Zabbix拓撲圖繪制,快速定位故障主機位置
一小時帶你學習完zabbix監控,生産全套詳細學習教程
一/編寫腳本
#!/bin/bash
#############################################################################
host='127.0.0.1'
port='12345'
#mongodump檔案路徑
sourcepath='/usr/local/mongodb/bin/'
#目前時間
nowtime=$(date "+%Y%m%d")
#前一天時間
yesterday=$(date -d "1 day ago" +%Y-%m-%d)
#日志時間年月
nowtime_log=$(date "+%Y%m")
#庫
mongo_DB=test
#壓縮包備份路徑
backupdir=/data/mongodb_backups
#### 自動檢查/建立備份路徑 ####
if [ ! -d /data/mongodb_backups/mongo_bak ];then
mkdir -p /data/mongodb_backups/mongo_bak
fi
if [ ! -d /data/mongodb_backups/log ];then
mkdir -p /data/mongodb_backups/log
fi
#備份路徑
targetpath="/data/mongodb_backups/mongo_bak"
#日志
logpath="/data/mongodb_backups/log"
#### 備份函數 ####
start(){
$sourcepath/mongodump --host $host --port $port --db $mongo_DB --gzip --out ${targetpath}/${nowtime}
}
#### 判斷備份成功 ####
execute(){
echo "=========================$(date) 備份所有mongodb啟動 ${nowtime}=========" >> ${logpath}/${nowtime_log}.log
#為什麼要這樣做,zabbix監控檢查檔案是否存在vfs.file.size[/data/mongodb_backups/test.tar.gz]
mv $backupdir/$mongo_DB.tar.gz $backupdir/${mongo_DB}_${yesterday}.tar.gz
start
if [ $? -eq 0 ];then
cd ${targetpath}/${nowtime}/
#為什麼這樣做?包結構會備援很多,包含了上層目錄的問題
tar -czvf $backupdir/$mongo_DB.tar.gz $mongo_DB
echo " MongoDB備份成功 !" >> ${logpath}/${nowtime_log}.log
find $backupdir -mtime +7 -name *.tar.gz -exec rm -rf {} \;
else
echo " MongoDB備份失敗失敗失敗失敗 " >> ${logpath}/${nowtime_log}.log
fi
}
execute
find $targetpath -mtime +3 -name 20* -exec rm -rf {} \;
find $logpath -mtime +180 -name *.log -exec rm -rf {} \;
echo "========================= $(date) 備份mongodb結束 ${nowtime}=========" >> ${logpath}/${nowtime_log}.log
#導入指令/usr/local/mongodb/bin/mongorestore --host 127.0.0.1 --port 123456 --gzip /data/mongodb_backups/mongo_bak/20230619/
二/定時任務
[root@abc mongodb_backups]# chmod +x mongodb_bachups.sh
[root@iZ mongodb_backups]# crontab -l
* 5 * * * sh /data/mongodb_backups/mongodb_bachups.sh > /dev/null 2
三/zabbix監控檔案和檔案大小,觸發器
沒了就這樣了。