通過centos 腳步來執行備份操作,使用crontab實現定時功能,並刪除指定天數前的備份
具體操作:
1、建立mongodb資料庫備份目錄
mkdir -p /home/backup/mongod_bak/mongod_bak_now2、新建mongodb資料庫備份指令碼mkdir -p /home/backup/mongod_bak/mongod_bak_list
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.sh4、修改/etc/crontab #新增計畫任務
crontab -e#在下面新增
30 1 * * * root /home/crontab/mongod_bak.sh #表示每天凌晨1點30執行備份5、重新啟動crond使設定生效
/sbin/service crond reload #重新載入配置每天在/home/backup/mongod_bak/mongod_bak_list目錄下面可以看到mongod_bak_2017_02_28.tar.gz這樣的chkconfig --level 35 crond on #加入開機自動啟動:
/sbin/service crond start #啟動服務
crontab -l #列出crontab檔案
壓縮檔案。
至此,linux下自動備份mongodb資料庫並刪除指定天數前的備份完成。
附錄:mongodb資料庫恢復
恢復全部資料庫:
mongorestore –drop –directoryperdb恢復單個資料庫:/home/backup/mongod_bak/mongod_bak_now/2017_02_28/
mongorestore –drop -d dataname –directoryperdb–drop引數:恢復資料之前刪除原來資料庫資料,避免資料重複。/home/backup/mongod_bak/mongod_bak_now/2017_02_28/dataname
–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 #啟動服務檢視crontab服務狀態:/sbin/service crond stop #關閉服務
/sbin/service crond restart #重啟服務
/sbin/service crond reload #重新載入配置
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/,其中是使用者名稱
#或者使用如下命令其中,是你在$home目錄中副本的檔名
crontab
linux下定時備份mongodb資料
在linux伺服器上通過用shell語言 python完成對mongo庫的定時備份 通過命令nohup python u mongod back.py out.log 2 1 掛在指令碼,每天0點執行mongodb資料備份。import time import schedule import os ...
mongodb 備份壓縮 mongodb備份與恢復
mongodb是目前最流行的nosql資料庫,其自身也提供了備份與恢復命令 具體程式為mongodump和mongorestore 一 mongodump備份 mongodump的具體用法可以檢視幫助 error required parameter is missing in host expor...
Linux 定時備份你的MongoDB資料庫
前段時間,我個人的伺服器資料庫莫名其妙就被刪了,得知情況的我淚流滿面。後來我搜了很多關於恢復資料庫的資料,但是基本都是依賴備份去恢復的,而身為小白的我卻沒有定時備份我的資料庫。幸虧我的資料庫裡面的資料還不算多,就打算從頭開始。經過這次疼痛的教訓,當時我第一件事就是給我的伺服器上乙個定時備份的指令碼,...