Cron

利用系统自带的 cron,做定时任务,主要是备份数据

查看当前任务

1
ps axgu | grep cron

编辑(添加/删除)任务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
sudo crontab -e

# 例子:
#
# 每天每分钟执行job1一次
* * * * * /cron_jobs/job1 # Absolutely Path

# 每个星期一,早上 3:00 执行一次
0 3 * * 1 /cron_jobs/job2

# Format:
#
#   分    小时     天           月               星期几          命令 
# (0-59) (0-23) (1-31)  (1-12 or Jan-Dec) (0-6 or Sun-Sat)
#   0      2      12           *                 0,6

保存数据库数据

方法一:

定义文件/cron_jobs/bk_data,

1
2
3
4
5
 #!/bin/bash
DATE=`date +%y_%m_%d_%H_%M_%S`
mongodump --out ./dump$DATE
tar -cf ./dump$DATE.tar ./dump$DATE
rm -rf dump$DATE

方法二: 进入项目数据库数据目录,

定义文件/cron_jobs/bk_data,内容为

1
2
3
4
5
6
 #!/bin/bash
cd /data_path
DATE=`date +%y_%m_%d_%H_%M_%S`
git init ./ 
git add ./ -A 
git commit -am "commit with cron in $DATE"

其中,方法一直接使用mongodb简单的整体备份方法,方法二则使用git进行差异化备份。无论方法一、方法二,还需要添加定时任务

赋权限chmod u+x /cron_jobs/bk_data,通过crontab -e添加任务:

1
0 3 * * 1 /cron_jobs/bk_data

另外有: https://github.com/javan/whenever

Comments