关于linux定时任务 - 附mongo自动备份shell

linux 添加定时任务

工作当中不可避免使用定时任务进行数据库备份等操作,在此以作记录。

1、 crontab介绍

crontab命令的功能是在一定的时间间隔调度一些命令的执行。

补充 (初始安装crontab)

yum install vixie-cron   
yum install crontabs

2、查看/etc/crontab文件

vim  /etc/crontab

3、crond 相关命令

service crond start     //启动服务
service crond stop      //关闭服务
service crond restart   //重启服务
service crond reload    //重新载入配置
chkconfig crond on      //设置为开机启动 可使用ntsysv命令检查是否添加开机是否成功 

4、添加一个定时任务

# For details see man 4 crontabs
# 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

55 23 * * * root /zhiying/zhiying/data/mongodb_bak/MongoDB_bak.sh

如上重新加载定时任务配置 会在每天的23:55分 执行脚本 MongoDB_bak.sh
这个是我自己用的一个mongodb 数据库备份的脚本

5、 附shell 如下

#!/bin/bash
#backup MongoDB

#mongodump命令路径
DUMP=/usr/program/mongo/bin/mongodump
#临时备份目录
OUT_DIR=/zhiying/zhiying/data/mongodb_bak/mongodb_bak_now
#备份存放路径
TAR_DIR=/zhiying/zhiying/data/mongodb_bak/mongodb_bak_list
#获取当前系统时间
DATE=`date +%Y_%m_%d`
#数据库账号
DB_USER=
#数据库密码
DB_PASS=
#DAYS=15代表删除15天前的备份,即只保留近15天的备份
DAYS=15
#最终保存的数据库备份文件
TAR_BAK="mongodb_bak_$DATE.tar.gz"

cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $OUT_DIR/$DATE
#备份全部数据库
$DUMP -h 127.0.0.1:27017  --authenticationDatabase "admin" -d "zhiying" -o $OUT_DIR/$DATE
#压缩为.tar.gz格式
tar -zcvf $TAR_DIR/$TAR_BAK $OUT_DIR/$DATE
#删除15天前的备份文件
find $TAR_DIR/ -mtime +$DAYS -delete

exit

脚本参考于:https://segmentfault.com/a/1190000009937244

你可能感兴趣的:(关于linux定时任务 - 附mongo自动备份shell)