91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Linux中MongoDB實現遠程自動備份的示例

發布時間:2021-02-07 14:03:10 來源:億速云 閱讀:163 作者:小新 欄目:服務器

這篇文章給大家分享的是有關Linux中MongoDB實現遠程自動備份的示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

若備份了,為了保險起見,備份與庫就不放在同一臺服務器上了,于是向運維申請了一臺服務器,同時安裝好mongo。

安裝完之后,首先測試下是否可以遠程訪問目標mongodb,到安裝好mongo的bin目錄下

./mongo 10.100.1.101:27017 #目標mongo的ip及端口

然后創建些必要的目錄,比如備份文件放在哪個目錄之類的。

接下來測試下利用mongodump來備份數據庫:

./bin/mongodump --host test/10.100.1.101:27017,10.100.1.102:27017 -d testdb --out /data/temp

# test為副本集名稱
# 10.100.1.101:27017,10.100.1.102:27017為副本集節點,有多個可以多個
# -d testdb是要備份的庫名,不填默認副本集下全部
# --out 保存路徑

到這里,mongo的備份已經實現,現在要完成的就是自動啦。

編寫腳本

自動定時備份其實就是通過crontab命令來實現啦。但前提是我們需要編寫個定時跑的腳本。首先我們新建個腳本:

vi /home/local/mongod_bak.sh

然后編寫對應的腳本,腳本上有對應的注釋,供大家參考,這里主要做了三個動作,首先是備份,然后將備份的文件壓縮,然后只保留最近7天的文件。

#!/bin/bash
sourcepath='/home/local/mongodb/bin'  #mongodb文件路徑
targetpath='/home/local/mongodb_bak' #備份的路徑
nowtime=$(date +%Y-%m-%d-%H)
replicationname='test'  #副本集名
dbname='testdb' #庫名
port='27017' #端口
ip1='10.100.1.101' #ip
ip2='10.100.1.102'

echo "============== start backup ${nowtime} =============="
start()
{
 ${sourcepath}/mongodump --host ${replicationname}/${ip1}:${port},${ip2}:${port} -d ${dbname} --out ${targetpath}/${nowtime}
}
execute()
{
 start
 if [ $? -eq 0 ]
 then
 echo "back successfully!"
 else
 echo "back failure!"
 fi
}
 
if [ ! -d "${targetpath}/${nowtime}/" ]
then
 mkdir ${targetpath}/${nowtime}
fi
execute
echo "============== back end ${nowtime} =============="

echo "============== start zip ${nowtime} =============="
zip -r ${targetpath}/${nowtime}.zip ${targetpath}/${nowtime}
rm -rf ${targetpath}/${nowtime}
echo "============== zip end ${nowtime} =============="

echo "============== start delete seven days ago back ${nowtime} =============="
find ${targetpath} -type f -mtime +7 -name "*" -exec rm -rf {} \; 
echo "============== delete end ${nowtime} =============="

編寫完之后,給到文件可執行權限,并可以手動執行測試下:

chmod +x /home/local/mongod_bak.sh

定時任務

最后就是添加執行計劃了,修改/etc/crontab

crontab -e

添加執行腳本,保存即可。

30 1 * * * /home/local/mongod_bak.sh #表示每天凌晨1點30執行備份

這里簡單介紹下crontab。

crontab命令常見于Unix和類Unix的操作系統之中,用于設置周期性被執行的指令。該命令從標準輸入設備讀取指令,并將其存放于crontab文件中,以供之后讀取和執行。

通常,crontab儲存的指令被守護進程激活, crond常常在后臺運行,每一分鐘檢查是否有預定的作業需要執行。這類作業一般稱為cron jobs。

一些常用命令可以參考下:

#啟動服務
/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>

感謝各位的閱讀!關于“Linux中MongoDB實現遠程自動備份的示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

新泰市| 仪征市| 弥勒县| 乌兰浩特市| 察隅县| 永济市| 吉水县| 邳州市| 隆昌县| 永泰县| 宁强县| 樟树市| 东兴市| 潜江市| 乌鲁木齐县| 台中县| 上高县| 定陶县| 隆子县| 淮安市| 当阳市| 红河县| 吐鲁番市| 成安县| 竹山县| 襄樊市| 上栗县| 措美县| 石棉县| 衡南县| 阜新市| 平安县| 隆安县| 淮安市| 建水县| 贵溪市| 甘谷县| 双峰县| 宜兰县| 泗水县| 陇西县|