- 新建相关目录和文件(否则报错)
mkdir -p /backup/mongobak #备份目录
mkdri /log #日志目录
touch /log/crontab_mongo_back.file #日志文件
touch /log/crontab_mongo_delete.file
- shell脚本
mongobak.sh,定时备份
#!/bin/bash
sourcepath='/opt/mongo/bin'
targetpath='/backup/mongobak'
nowtime=$(date +%Y%m%d)
start()
{
${sourcepath}/mongodump -h 192.168.0.208:27017 -d xxx -u xxx -p 123456 -o ${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} =============="
mongobakdelete.sh, 定时清除,保留7天的纪录
#!/bin/bash
targetpath='/backup/mongobak'
nowtime=$(date -d '-7 days' "+%Y%m%d")
if [ -d "${targetpath}/${nowtime}/" ]
then
rm -rf "${targetpath}/${nowtime}/"
echo "=======${targetpath}/${nowtime}/===删除完毕=="
fi
echo "===$nowtime ==="
将两个脚本赋予执行权限,放在/shell 目录下
- crontab表达式
执行crontab -e
10 04 * * * /shell/mongobak 1>/log/crontab_mongo_back.file &
10 02 * * * /shell/mongobakdelete 1>/log/crontab_mongo_delete.file &
代码中的10 12代表12点10分执行/shell/目录下的mongobak.sh脚本,执行成功后向相关文件写入日志
保存退出即可