shell脚本应用
需求: 每天晚上凌晨2点开始对数据库进行数据备份到/backup/目录下,并且只保留7天的备份数据
定时任务
概述:crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

格式
[minute] [hour] [day] [month] [week] [command]
minute: 区间为 059 
hour: 区间为023 
day: 区间为131 
month: 区间为112.
week: 区间为07. 周日可以是07.
command:需要定时执行的命令,也可以是一个脚本文件

示例
1.每天凌晨过一分钟,执行任务。
1 0 * * * command

2. 每个工作日(Mon – Fri) 11:59 都进行备份作业。
59 11 * * 1,2,3,4,5 command
下面例子与上面的例子效果一样:
59 11 * * 1-5 command

3,每个月4号和1010点钟运行
0 10 4,10 * *  command

4.5分钟运行一次命令
*/5 * * * * command

5,每两个小时运行一次命令
0 */2 * * * command

选项
crontab [需要执行的文件]
crontab –l : 显示 crontab 文件。 
crontab -r : 删除 crontab 文件。
数据库定时备份
需求: 每天晚上凌晨2点开始对数据库进行数据备份到/backup/目录下,并且只保留7天的备份数据

定时表达式:0 2 * * *
时间定义:DATE=$(date +%Y%m%d)
数据库备份:mysqldump -uroot -padmin p2p > /backup/p2p$DATE.sql
查询文件:find /backup -mtime +7 -name *.sql | xargs rm -rf