前言
目前 Hadoop 、Hive 及 Spark 脚本需要用定时脚本,任务调度使用的是 crontab 的任务调度。
说明
crontab 使用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。-u user 是指设定指定 user 的时程表,这个前提是你必须要有其权限(比如说是 root)才能够指定他人的时程表。如果不使用 -u user 的话,就是表示设置自己的时程表。
服务管理
/etc/init.d/crond status
/etc/init.d/crond restart
/etc/init.d/crond start/stop/restart/reload
使用方式
crontab file [- u user] #用指定的文件代替目前的 crontab
crontab [-u user] #用标准输入替代目前的 crontab
crontab -l [user] #列出用户目前的 crontab
crontab -e [user] #编辑用户目前的 crontab
crontab -d [user] #删除用户目前的 crontab
基本格式
* * * * * command
分 时 日 月 周 命令
第 1 列表示分钟 1-59 ,每分钟用 * 或者 */1 表示。
第 2 列表示小时 1-23(0 表示 0 点)
第 3 列表示日期 1-31
第 4 列表示月份 1-12
第 5 列标识号星期 0-6 (0 表示星期天)
第 6 列表示要运行的命令
crontab 定时任务最小执行时间
1 分钟
如果需要小于 1 分钟,可以通过使用延时来实现每 N 秒执行或者编写 shell 脚本实现
可参考如下地址:http://blog.csdn.net/fdipzone/article/details/22701113
示例
#没晚的 21:30 重启 apache
30 21 * * * /usr/local/etc/rc.d/lighttpd restart
#每月 1、10、22 日的 4:45 重启 apache
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
#每周六、周日的 1:10 重启 apache
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
#每天 18:00 至 23:00 之间每隔 30 分钟重启 apache
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
#每周六的 23:00 重启 apache
* 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
#每小时重启一次 apache
* */1 * * * /usr/local/etc/rc.d/lighttpd restart
#晚上 23 点到早上 7 点之间,每隔一小时重启一次 apche
* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
#每月4号与每周一到周三的 11 点重启 apache
* 11 4 * mon-wen /usr/local/etc/rc.d/lighttpd restart
#一月一号的 4 点重启 apache
* 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
原文1:https://blog.csdn.net/bsf5521/article/details/76522222
原文2:https://www.cnblogs.com/jacob-tian/p/6480985.html