mongodb 數據自動備份


創建Mongodb數據庫備份目錄

mkdir -p ~/backup/mongod_bak/mongod_bak_now
mkdir -p ~/backup/mongod_bak/mongod_bak_list

新建Mongodb數據庫備份腳本

mkdir ~/crontab/ && vi ~/crontab/mongod_bak.sh #新建文件,輸入以下代碼

#!/bin/sh
DUMP=~/mongodb-linux-x86_64-4.0.1/bin/mongodump # mongodump備份文件執行路徑
OUT_DIR=~/backup/mongod_bak/mongod_bak_now # 臨時備份目錄
TAR_DIR=~/backup/mongod_bak/mongod_bak_list # 備份存放路徑
DATE=`date +%Y_%m_%d` # 獲取當前系統時間
DB_USER=youuser # 數據庫賬號
DB_PASS=youpassword # 數據庫密碼
DB_NAME=diary # 要備份的數據恢復庫名字
DAYS=30 # DAYS=30代表刪除30天前的備份,即只保留最近30天的備份
TAR_BAK="mongod_$DB_NAME_bak_$DATE.tar.gz" # 最終保存的數據庫備份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1 --port 27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE # 備份全部數據庫
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 壓縮為.tar.gz格式
find $TAR_DIR/ -mtime +$DAYS -delete # 刪除天前的備份文件
chmod +x ~/crontab/mongod_bak.sh #修改文件屬性,使其可執行
crontab -e # 修改/etc/crontab #添加計划任務
# 在下面添加
30 4 * * * sh ~/crontab/mongod_bak.sh #表示每天凌晨4點30執行備份
# 30 4 * * * sh ~/crontab/mongod_bak.sh >/dev/null 2>&1 # 在命令后添加 `>/dev/null 2>&1` 則不發送日志到郵件。

重新啟動crond使設置生效

/sbin/service crond reload #重新載入配置
chkconfig --level 35 crond on #加入開機自動啟動:
/sbin/service crond start #啟動服務
crontab -l #列出crontab文件

恢復備份

./mongorestore -h 127.0.0.1 --port 27017 -u youuser -p youpassword -d diary ~/backup/mongod_bak/mongod_bak_now/

修改 linux 時區

如果時區不一樣, 會造成轉換的麻煩或理解錯誤。

date  #查看時間和日期
cal  #查看日歷
ll /etc/localtime #查看目前所用時區
timedatectl list-timezones |grep Shanghai  #查找中國時區的完整名稱
timedatectl set-timezone Asia/Shanghai  #以完整名稱修改時區
date -s 11/03/2009  #設置日期
date -s 17:55:55  #設置日間
hwclock -w  #寫入當前時間日期到 bios 避免重啟失效
clock -w  #寫入當前時間日期到 CMOS

定時任務

當 crond 執行任務失敗時會給用戶發一封郵件

cat /var/log/cron # 查看定時任務的執行列表
cat /var/spool/mail/root # 查看定時任務發送給用戶的郵件, 可看執行情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM