Linux 定時備份你的MongoDB資料庫

2021-10-12 20:05:51 字數 2321 閱讀 8790

前段時間,我個人的伺服器資料庫莫名其妙就被刪了,得知情況的我淚流滿面。

後來我搜了很多關於恢復資料庫的資料,但是基本都是依賴備份去恢復的,而身為小白的我卻沒有定時備份我的資料庫。

幸虧我的資料庫裡面的資料還不算多,就打算從頭開始。

經過這次疼痛的教訓,當時我第一件事就是給我的伺服器上乙個定時備份的指令碼,畢竟不能再同乙個地方摔兩次嘛。

順便寫個部落格記錄一下,以防以後還需要用到。

# 臨時備份檔案夾

mkdir -p /home/mongodb_bak/mongodb_bak_now

# 備份壓縮包資料夾

mkdir -p /home/mongodb_bak/mongodb_bak_list

vim /home/crontab/mongodb_bak.sh
#!/bin/sh

# dump 命令執行路徑,根據mongodb安裝路徑而定

dump=/usr/bin/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=password

# 代表刪除7天前的備份,即只保留近 7 天的備份

days=7

# 最終儲存的資料庫備份檔案

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 --authenticationdatabase admin -o $out_dir/$date

# 壓縮格式為 .tar.gz 格式

tar -zcvf $tar_dir/$tar_bak

$out_dir/$date

# 刪除 15 天前的備份檔案

find

$tar_dir/ -mtime +$days -delete

exit

db_user改為你的資料庫賬號,db_pass改為你的資料庫密碼。

chmod +x /home/crontab/mongodb_bak.sh
vi /etc/crontab
新增一下內容:

# 每週六18:30進行備份

30 18 * * 6 root /home/crontab/mongodb_bak.sh

第乙個數值代表分鐘,第二個代表小時,第****日期,第四個代表月份,第五個代表星期。

# example of job definition:

# .---------------- minute (0 - 59)

# | .------------- hour (0 - 23)

# | | .---------- day of month (1 - 31)

# | | | .------- month (1 - 12) or jan,feb,mar,apr ...

# | | | | .---- day of week (0 - 6) (sunday=0 or 7) or sun,mon,tue,wed,thu,fri,sat

# | | | | |

# * * * * * user-name command to be executed

儲存後指令碼生效。

#恢復全部資料庫

mongorestore -u 《資料庫賬號》 -p 《資料庫密碼》 --authenticationdatabase "admin" --noindexrestore --dir 《備份檔案夾路徑》

#恢復單個資料庫

mongorestore -u 《資料庫賬號》 -p 《資料庫密碼》 --authenticationdatabase "admin" --noindexrestore -d 《資料庫名》 --dir 《備份檔案路徑》

Linux 定時備份MYsql

vim sbin backup usr local mysql bin mysqldump uroot p1 l mysql home databak mysql date y m d sql 注 l 鎖定表 date與 之前要空格,與 y m d不能有空格 crontab e 03 sbin ba...

linux定時備份oracle

1.建立備份檔案 vi bak.sh bin bash export oracle sid orcl export oracle term xterm export path oracle home bin usr sbin path export ld library path oracle ho...

LINUX 定時備份檔案

檔案備份操作指南備份1.檢視vixie cron rpm 軟體包是否已安裝 判定該軟體包是否已安裝,使用 rpm q vixie cron 命令。2.判定服務是否在執行 判定該服務是否在執行,使用 sbin service crond status 命令 3.啟動 關閉和重啟 重新載入配置 執行以下...