您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Linux下怎么通過Shell腳本自動備份MongoDB”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Linux下怎么通過Shell腳本自動備份MongoDB”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
使用管理員賬號登錄MongoDB數據庫:
[root@renwolecomdbs /]$ mongo MongoDB shell version v3.4.9 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.4.9 > use admin switched to db admin 認證 > db.auth("admin","KM5d9KhJcW7O0lIAT")
下面開始創建MongoDB備份專有賬號:
> db.createUser( { user: "renwolebackup", pwd: "RenwoleComACC", roles: [ { role: "backup", db: "admin" } ] } ) > exit
創建備份腳本存放目錄及文件
$ mkdir -p /etc/init.d/mongo $ mkdir -p /apps/data/mongobackup_db $ vim /etc/init.d/mongo/mongo-bak 添加以下內容:#!/bin/bash sourcepath=''targetpath='/apps/data/mongobackup_db'nowtime=$(date +%Y%m%d)start() { ${sourcepath}mongodump --host 127.0.0.1:27017 -u renwolebackup -p renwolebackup --out ${targetpath}/${nowtime}}execute() { start if [ $? -eq 0 ] then echo "back successfully!" else echo "back failure!" fi}if [ ! -d "${targetpath}/${nowtime}/" ]thenmkdir ${targetpath}/${nowtime}fiexecuteecho "============== back end ${nowtime} =============="
以上腳本中,請注意路徑和文件夾根據你自己的需求修改。
注意:以上參數是我自己的實際使用情況,在使用前一定要認真閱讀代碼中的設置情況。
如果上面代碼執行時報格式錯誤,請在Windwos下使用Notepad++轉換為Unix格式即可,具體操作如下:
編輯-文檔格式轉換-轉換為unix格式。
刪除過期7天備份
$ vim /etc/init.d/mongo/mongo-delete 添加如下刪除內容:#!/bin/bash targetpath='/apps/data/mongobackup_db'nowtime=$(date -d '-7 days' "+%Y%m%d")if [ -d "${targetpath}/${nowtime}/" ]then rm -rf "${targetpath}/${nowtime}/" echo "=======${targetpath}/${nowtime}/===刪除成功=="fiecho "===$nowtime ==="
如果不給執行權限則無法運行腳本:
$ cd /etc/init.d/mongo $ chmod +x mongo-bak $ chmod +x mongo-delete
為達到每天備份的目的,請設置任務計劃:
$ mkdir -p /var/log/mongobaklog $ crontab –e 添加以下自動備份和刪除備份腳本內容: 30 03 * * * /etc/init.d/mongo/mongo-bak 1 > /var/log/mongobaklog/mongo-bak.log & 30 01 * * * /etc/init.d/mongo/mongo-delete 1 > /var/log/mongobaklog/mongo-delete &
前面所示分別為每日凌晨3.30和1.30執行該腳本的時間。
其中 mongo-bak 和 mongo-delete 分別是腳本的名稱。后面的是備份日志情況,如果有異常可以通過日志查詢。
讀到這里,這篇“Linux下怎么通過Shell腳本自動備份MongoDB”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。