一、在linux下面使用shell脚本执行Mongodb数据文件备份
代码如下: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/bash
sourcepath='/app/mongodb'/bin
targetpath='/yoyodata/mongobak'
nowtime=$(date +%Y%m%d)
expiretime=$(date -d '-7 days' "+%Y%m%d")
start()
{
${sourcepath}/mongodump --host 127.0.0.1 --port 27017 --out ${targetpath}/${nowtime}
}
delete()
{
if [ -d "${targetpath}/${expiretime}/" ]
then
rm -rf "${targetpath}/${expiretime}/"
echo "=======${targetpath}/${expiretime}/===delete successfully!=="
fi
echo "===no $expiretime need to delete==="
}
execute()
{
start
if [ $? -eq 0 ]
then
echo "back successfully!"
delete
else
echo "back failure!"
fi
}
if [ ! -d "${targetpath}/${nowtime}/" ]
then
mkdir ${targetpath}/${nowtime}
fi
execute
echo "============== back end ${nowtime} =============="
二、常用crontab命令:
查看当前用户的定时任务:
[root@AY1404010929194851d3Z:~]# crontab -l
查看指定用户的定时任务:
[root@AY1404010929194851d3Z:~]# crontab -uroot -l
追加crontab定时任务:
[root@AY1404010929194851d3Z:~]# crontab -e
Linux下crontab定时任务
三、mongodb的mongorestore数据还原
几种mongodb数据备份方式:
1
2
3
4
5
6
7
8无账号、密码
mongodump -o backup #备份所有数据库到backup目录下,每个数据库一个文件,除local数据库外。
mongodump -d abc -o backup #备份abc数据库到backup目录下。
mongodump -d abc -c ddd -o backup #备份abc数据库下的ddd集合。
#有账号、密码
mongodump -udba -pdba -d abc -c ddd -o backup #备份abc数据库下的ddd集合。
mongodump --host=127.0.0.1 --port=27017 -udba -p --db=abc --collection=ddd -o backup几种mongodb数据恢复方式
1
2
3
4
5
6
7
8
9mongorestore -udba -pdba -d abc backup/abc #还原abc数据库。
mongorestore -udba -pdba -d abc --drop backup/abc #还原之前先删除原来数据库(集合)。
mongorestore -udba -pdba -d abc -c ddd --drop backup/abc/ddd.bson #还原abc库中的ddd集合。
mongorestore --host=127.0.0.1 --port=27017 -udba -pdba -d abc -c test --drop backup/abc/test.bson #还原abc库中的test集合。
mongorestore --host=127.0.0.1 --port=27017 -udba -pdba -d abc -c ooo --drop backup/abc/test.bson #还原abc库中的test集合到ooo集合。