使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。例如运维人员可以写一下备份数据库的任务使其每天都运行
一、 crontab设置格式:
{minute} {hour} {day} {month} {day-of-week} {script}
minute: 区间为 0 – 59 (每分钟用*或者 */1表示)
hour: 区间为0 – 23 (0表示0点)
day-of-month: 区间为0 – 31
month: 区间为1 – 12. 1 是1月. 12是12月.
Day-of-week: 区间为0 – 7. 周日可以是0或7.
二、Crontab 示例
1、每天凌晨2点执行run_sql.sh脚本
0 2 * * * sh /root/hdr/importDataToHbase/run_sql.sh
2、每个工作日(Mon – Fri) 下午18点 都进行备份作业
0 18 * * 1,2,3,4,5 sh /root/hdr/importDataToHbase/backup.sh
下面写法和上面是一样的效果
0 18 * * 1-5 sh /root/hdr/importDataToHbase/backup.sh
3、每5分钟运行一次命令
*/5 * * * * sh /root/hdr/importDataToHbase/run_sql.sh
注意*/5表示每五分钟 5后面分别是 时 天 月 周
4、 每个月的第一天 下午 1:10 运行
分 时 日 月 周
10 13 1 * * sh /root/hdr/importDataToHbase/run_sql.sh
由此可知*可以翻译成"每个"
5、每两个小时执行
0 */2 * * * sh /root/hdr/importDataToHbase/run_sql.sh
*/2代表每两个小时
6、晚上11点到早上8点之间每两个小时,早上8点
分 时 日 月 周 命令
0 23-7/2,8 * * * date
7、每十秒执行
* * * * * sleep 10; /bin/date >>/tmp/date.txt
三、查看cron进程
ps -ef|grep cron
四、一个用户设定一个cron后会在/var/spool/cron/路径下生成一个以用户名命名的文件
例如以下的脚本是root用户设定的
0 2 * * * sh /root/hdr/importDataToHbase/run_sql.sh
那么/var/spool/cron/路径下会有一个root文件
[root@hadoop02 cron]# pwd
/var/spool/cron
[root@hadoop02 cron]# ls
root
[root@hadoop02 cron]# cat root
0 2 * * * sh /root/hdr/importDataToHbase/run_sql.sh
一般一个用户最多只有一个crontab文件
五、设置方法
使用crontab -e即可进行定时任务的设置了
[root@hadoop02 cron]# crontab -e
0 2 * * * sh /root/hdr/importDataToHbase/run_sql.sh
查看自己设置的定时任务
[root@hadoop02 cron]# crontab -l
0 2 * * * sh /root/hdr/importDataToHbase/run_sql.sh