共計 2494 個字符,預計需要花費 7 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
這篇文章給大家介紹如何在 centos 中使用 crontab 命令對 mongodb 進行定時備份,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、創建 Mongodb 數據庫備份目錄
mkdir -p /home/backup/mongod_bak/mongod_bak_now
mkdir -p /home/backup/mongod_bak/mongod_bak_list
2、新建 Mongodb 數據庫備份腳本
vi /home/crontab/mongod_bak.sh #新建文件,輸入以下代碼
#!/bin/sh
DUMP=/usr/local/mongodb/bin/mongodump #mongodump 備份文件執行路徑
OUT_DIR=/home/backup/mongod_bak/mongod_bak_now # 臨時備份目錄
TAR_DIR=/home/backup/mongod_bak/mongod_bak_list # 備份存放路徑
DATE=`date +%Y_%m_%d` # 獲取當前系統時間
DB_USER=username # 數據庫賬號
DB_PASS=123456 # 數據庫密碼
DAYS=7 #DAYS= 7 代表刪除 7 天前的備份,即只保留最近 7 天的備份
TAR_BAK= mongod_bak_$DATE.tar.gz # 最終保存的數據庫備份文件名
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE # 備份全部數據庫
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE # 壓縮為.tar.gz 格式
find $TAR_DIR/ -mtime +$DAYS -delete # 刪除 7 天前的備份文件
3、修改文件屬性,使其可執行
chmod +x /home/crontab/mongod_bak.sh
4、修改 /etc/crontab #添加計劃任務
crontab -e
在下面添加
30 1 * * * root /home/crontab/mongod_bak.sh # 表示每天凌晨 1 點 30 執行備份
5、重新啟動 crond 使設置生效
/sbin/service crond reload # 重新載入配置
chkconfig --level 35 crond on # 加入開機自動啟動:
/sbin/service crond start
# 啟動服務
crontab -l # 列出 crontab 文件
每天在 /home/backup/mongod_bak/mongod_bak_list 目錄下面可以看到 mongod_bak_2017_02_28.tar.gz 這樣的壓縮文件。
至此,Linux 下自動備份 Mongodb 數據庫并刪除指定天數前的備份完成。
Mongodb 定時恢復備份
恢復全部數據庫:
mongorestore –drop –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/
恢復單個數據庫:
mongorestore –drop -d dataname –directoryperdb
/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname
–drop 參數:恢復數據之前刪除原來數據庫數據,避免數據重復。
–directoryperdb 參數:數據庫備份目錄
- d 參數:后面跟要恢復的數據庫名稱
crontab 命令:
crontab 命令常見于 Unix 和類 Unix 的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于“crontab”文件中,以供之后讀取和執行。該詞來源于希臘語 chronos(χρ?νο?),原意是時間。
通常,crontab 儲存的指令被守護進程激活,crond 常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為 cron jobs。
安裝 crontab:
[root@CentOS ~]# yum install vixie-cron
[root@CentOS ~]# yum install crontabs
說明:
vixie-cron 軟件包是 cron 的主程序;
crontabs 軟件包是用來安裝、卸裝、或列舉用來驅動 cron 守護進程的表格的程序。
cron 是 linux 的內置服務,但它不自動起來,可以用以下的方法啟動、關閉這個服務:
/sbin/service crond start
# 啟動服務
/sbin/service crond stop # 關閉服務
/sbin/service crond restart # 重啟服務
/sbin/service crond reload # 重新載入配置
查看 crontab 服務狀態:
service crond status
手動啟動 crontab 服務:
service crond start
其他命令:
# 查看 crontab 服務是否已設置為開機啟動,執行命令:ntsysv
#加入開機自動啟動:
chkconfig --level 35 crond on
#列出 crontab 文件
crontab -l
#編輯 crontab 文件
crontab -e
#刪除 crontab 文件
$ crontab -r
#恢復丟失的 crontab 文件
#假設你在自己的 $HOME 目錄下還有一個備份,那么可以將其拷貝到 /var/spool/cron/ username,其中 username 是用戶名
#或者使用如下命令其中,filename 是你在 $HOME 目錄中副本的文件名
crontab filename
關于如何在 centos 中使用 crontab 命令對 mongodb 進行定時備份就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
向 AI 問一下細節