MongoDB脚本备份

shell脚本内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/bin/sh
# dump 命令执行路径,根据mongodb安装路径而定
DUMP=mongodump

# 临时备份路径
OUT_DIR=/tmp/mongod_bak/mongod_bak_now

# 压缩后的备份存放路径
TAR_DIR=/tmp/mongod_bak/mongod_bak_list

# 当前系统时间
DATE=`date +%Y-%m-%d`

# 数据库账号
# DB_USER=``

# 数据库密码
# DB_PASS=``

# 代表删除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 -d test_db -o $OUT_DIR/$DATE
$DUMP -h 127.0.0.1:27017 -d test_db -o $OUT_DIR/$DATE

# 压缩格式为 .tar.gz 格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE

# 删除 15 天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit

定时任务

每小时定时运行此脚本

1
0 * * * * /data/OurHome/mongo_back.sh