window系統資料庫備份
在window下建立建立字尾bat的檔案,将下面内容添加去。
rem ******Mongodb backup start******
@echo off
rem set:等号兩邊不要有空格;變量值包含特殊字元需用雙引号
rem dump指令執行路徑,根據mongodb安裝路徑而定
set DUMP=D:\PTYT\MongoDB\Server\3.6\bin
rem 壓縮工具對應路徑及資訊
set "TAR_CMD=D:\PTYT\7-Zip\7z.exe a"
rem 臨時備份路徑
set OUT_DIR=D:\PTYT\backup\mongodb\bak_tmp
rem 壓縮後的備份存放路徑
set TAR_DIR=D:\PTYT\backup\mongodb\bak_list
rem 需要備份的資料庫
set DB_NAME=ucpdb
rem 資料庫賬号
set DB_USER=ptyt
rem 資料庫密碼
set DB_PASS=111111
rem 代表删除DAYS(天)前的備份,即隻保留近 DAYS(天)的備份
set DAYS=10
rem 自動擷取日期資訊生成
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%"
rem 最終儲存的資料庫備份檔案
set TAR_BAK="%TAR_DIR%\%Ymd%.7z"
rem 清空臨時備份路徑下内容
rd /s /q %OUT_DIR%\
rem 進入mongodump所在路徑執行dump指令
cd /D %DUMP%
mongodump -h 127.0.0.1:27017 -u %DB_USER% -p %DB_PASS% -d %DB_NAME% -o %OUT_DIR%\%Ymd%
rem 打包備份資料以減少空間占用
%TAR_CMD% %TAR_BAK% %OUT_DIR%\%Ymd%\
rem 删除DAYS(天)前的備份檔案
Forfiles /p %TAR_DIR%\ /s /d -%DAYS% /m *.* /c "cmd /c del /q /f @path"
@echo on
rem ******Mongodb backup end******
用window自帶計劃任務,設定定時任務。
Linux系統備份:可以在window下配置好sh字尾的檔案,或者使用touch指令建立
#!/bin/sh
# dump 指令執行路徑,根據mongodb安裝路徑而定
DUMP=/root/PTYT/mongodb/bin/mongodump
# 臨時備份路徑
OUT_DIR=/root/PTYT/backup/mongodb/bak_tmp
# 壓縮後的備份存放路徑
TAR_DIR=/root/PTYT/backup/mongodb/bak_list
# 目前系統時間
DATE=`date +%Y-%m-%d`
#需要備份的資料庫
DB_NAME=ucpdb
# 資料庫賬号
DB_USER=root
# 資料庫密碼
DB_PASS=111111
# 代表删除DAYS天前的備份,即隻保留近DAYS天的備份
DAYS=10
# 最終儲存的資料庫備份檔案
TAR_BAK="mongod_bak_$DATE.tar.gz"
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -u $DB_USER -p $DB_PASS -d $DB_NAME -o $OUT_DIR/$DATE
# 壓縮格式為 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
# 删除DAYS天前的備份檔案
find $TAR_DIR/ -mtime +$DAYS -delete
exit
修改完成後,先通過直接執行mongodb_bak.sh确認腳本配置等正常,如執行正常應在對應目錄生成對應備份。
以下為執行成功結果示例:

1、簡介
Linux crontab是用來定期執行程式的指令。
當安裝完成作業系統之後,預設便會啟動此任務排程指令。
crond 指令每分鐘會定期檢查是否有要執行的工作,如果有要執行的工作便會自動執行該工作。
注意:新建立的 cron 任務,不會馬上執行,至少要過 2 分鐘後才可以,當然你可以重新開機 cron 來馬上執行。
而 linux 任務排程的工作主要分為以下兩類:
1、系統執行的工作:系統周期性所要執行的工作,如備份系統資料、清理緩存
2、個人執行的工作:某個使用者定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個使用者自行設定
2、指令說明
文法crontab {-l | -e | -r}
-l : 列出目前的時程表
-e : 執行文字編輯器來設定時程表,内定的文字編輯器是 VI。
-r : 删除目前的時程表
3、檔案含義
使用者所建立的crontab檔案中,每一行都代表一項任務,每行的每個字段代表一項設定,它的格式共分為六個字段,前五段是時間設定段,第六段是要執行的指令段,格式如下:
minute hour day month week command
其中:
minute:表示分鐘,可以是從0到59之間的任何整數。
hour:表示小時,可以是從0到23之間的任何整數。
day:表示日期,可以是從1到31之間的任何整數。
month:表示月份,可以是從1到12之間的任何整數,或jan,feb,mar,apr ……
week:表示星期幾,可以是從0到7之間的任何整數,這裡的0或7代表星期日,或sun,mon,tue……
command:要執行的指令,可以是系統指令,也可以是自己編寫的腳本檔案。
如忘記以上具體資訊可通過cat /etc/crontab檢視。
在以上各個字段中,還可以使用以下特殊字元:
星号(*):代表所有可能的值,例如month字段如果是星号,則表示在滿足其它字段的制約條件後每月都執行該指令操作。
逗号(,):可以用逗号隔開的值指定一個清單範圍,例如,“1,2,5,7,8,9”
中杠(-):可以用整數之間的中杠表示一個整數範圍,例如“2-6”表示“2,3,4,5,6”
正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/2”表示每兩小時執行一次。同時正斜線可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。
1、輸入crontab -e,然後輸入i進入編輯模式,添加對應定時執行指令。
具展現場操作時建議先設定一個目前時間往後幾分鐘的時間進行計劃執行,如筆者處理時間為15:50,是以筆者特意将定時時間設定為15:55,這樣友善很快檢查執行效果。插入内容為:55 15 * * * /root/PTYT/mongodb/mongodb_bak.sh
編輯完按正常的文本編輯退出儲存處理(Esc退出編輯模式,輸入:進入指令模式,輸入wq!儲存退出)。
2、執行crontab -l檢視确認編輯好的crontab定時任務。
如下所示為成功添加了一條15:55即執行/root/PTYT/mongodb/mongodb_bak.sh的任務:
3、等設定的時間到後确認備份目錄按時生成新的備份資料
如果在前面确認腳本配置相關進行中已生成過備份,需留意下新的備份資料是否設定時間之後更新的。
以下确認為定時執行時間15:55生成的備份示例:
至此,已确認基本的定時執行及腳本都正常成功。
1、輸入crontab -e,重新進入編輯模式,修改原測試執行時間為計劃執行時間儲存退出。
如每天淩晨3:30執行/root/PTYT/mongodb/mongodb_bak.sh則按如下設定:
30 3 * * * /root/PTYT/mongodb/mongodb_bak.sh
如每周一淩晨3:30執行/root/PTYT/mongodb/mongodb_bak.sh則按如下設定:
30 3 * * 1 /root/PTYT/mongodb/mongodb_bak.sh
或如下等價設定也可:
30 3 * * mon /root/PTYT/mongodb/mongodb_bak.sh
2、執行crontab -l确認配置好的crontab定時任務與預期相符。
如下示例表示已将相關定時任務修改為每天淩晨3:30:
至此相關處理基本完成,定時任務能否按時生效不能馬上确認,建議待第一個執行時間到後再另行回頭确認下是否與預期設定相符。