Linux Centos Mac 中计划任务 Crontab 安

2020-04-02  本文已影响0人  MrLimLee

安装 CronTab

CentOS 中自带了CronTab 如果有需要 百度一下,你就知道

CentOS 安装 CronTab

vixie-cron 软件包是 cron 的主程序
yum -y install vixie-cron
crontabs 软件包是用来安装、卸装、或列举用来驱动 cron 守护进程的表格的程序
yum -y install crontabs

检查是否开机启动,如果没有需要配置,默认是启动的

Centos 7:
[root@web opt]# systemctl list-unit-files
> crond.service                                 enabled 

Ubuntu 安装 CronTab

apt-get install cron

CronTab 使用与解释

Centos 下的使用的语法

crontab -l 查看所有的计划任务
crontab -e 修改计划任务

service crond start 启动计划任务
service crond restart 重启计划任务
service crond reload 重新载入计划任务

Ubuntu 下的使用的语法

service cron start 启动计划任务
service cron restart 重启计划任务
service cron reload 重新载入计划任务

如果第一次用这个命令会让你选择文本编辑器, 我选择的是vim
如果要换: select-editor

CronTab 的语法
* * * * * date >> /tmp/date.txt

* * * * * date >> /tmp/date.txt
minute hour day month week command
分钟 小时 几号 几月 星期 需要执行的命令
image

使用案例

1 * * * * /opt/request.sh 每小时的第1分钟执行
*/60 * * * * /opt/request.sh 每小时执行;<br />注:从计划任务启动的时间开始算起
*/15 * * * * /opt/request.sh 每15分钟执行;<br />即:每个小时的第15 30 45 60分钟执行
1,30 * * * * /opt/request.sh 每小时的第1、第30分钟执行
10 7 * * * /opt/request.sh 每天的07:10执行
0 */3 * * * /opt/request.sh 每三小时执行;<br />即:3点;6点;9点;12点...
10 7,23 * * * /opt/request.sh 每天的07:10、23:10执行
10 7-23 * * * /opt/request.sh 每天的07到23点的第10分钟执行
10 7 8 * * /opt/request.sh 每个月的8号上午07:10执行
10 7 8,9 * * /opt/request.sh 每个月的8号、9号的上午07:10执行
10 7 8 6 * /opt/request.sh 每年的6月8号上午07:10执行
10 7 8 5,6 * /opt/request.sh 每年的5月8号、6月8号上午07:10执行
10 7 * * 0 /opt/request.sh 每个星期日的上午07:10执行;<br />注:星期天:0;星期一:1
0 */3 * * * sh /opt/request.sh 每三小时 执行脚本
01 * * * * root run-parts /etc/cron.hourly 每小时执行/etc/cron.hourly目录内的脚本
01 * * * * root run-parts /etc/cron.hourly 每小时执行/etc/cron.hourly目录内的脚本
3,15 * * * * /service/l-zm/request.sh 每小时的第3和第15分钟执行
3,15 8-11 * * * /service/l-zm/request.sh 在上午8点到11点的第3和第15分钟执行
3,15 8-11 */2 * * date >> /tmp/date.txt 每隔两天的上午8点到11点的第3和第15分钟执行
3,15 8-11 * * 1 date >> /tmp/date.txt 每个星期一的上午8点到11点的第3和第15分钟执行
30 21 * * * /service/l-zm/request.sh 每晚的21:30
45 4 1,10,22 * * /service/l-zm/request.sh 每月1、10、22日的4 : 45
10 1 * * 6,0 /service/l-zm/request.sh 每周六、周日的1 : 10
0,30 18-23 * * * /service/l-zm/request.sh 每天18 : 00至23 : 00之间每隔30分钟
0 23 * * 6 /service/l-zm/request.sh 每星期六的晚上11 : 00 pm
* 23-7/1 * * * /service/l-zm/request.sh 晚上11点到早上7点之间,每隔一小时
0 11 4 * mon-wed /service/l-zm/request.sh 每月的4号与每周一到周三的11点
0 4 1 jan * /service/l-zm/request.sh 一月一号的4点
*/1 * * * * /opt/request.sh 每分钟执行
0 * * * * /opt/request.sh 每小时执行
0 0 * * * /opt/request.sh 每天执行
0 0 * * 0 /opt/request.sh 每周执行
0 0 1 * * /opt/request.sh 每月执行
0 0 1 1 * /opt/request.sh 每年执行

每秒执行一次

*/1 * * * * sleep 0s;date >> /tmp/date.txt
*/1 * * * * sleep 1s; date >> /tmp/date.txt
*/1 * * * * sleep 2s; date >> /tmp/date.txt
*/1 * * * * sleep 3s; date >> /tmp/date.txt
*/1 * * * * sleep 4s; date >> /tmp/date.txt
*/1 * * * * sleep 5s; date >> /tmp/date.txt
*/1 * * * * sleep 6s; date >> /tmp/date.txt
*/1 * * * * sleep 7s; date >> /tmp/date.txt
*/1 * * * * sleep 8s; date >> /tmp/date.txt
*/1 * * * * sleep 9s; date >> /tmp/date.txt
*/1 * * * * sleep 10s; date >> /tmp/date.txt
*/1 * * * * sleep 11s; date >> /tmp/date.txt
*/1 * * * * sleep 12s; date >> /tmp/date.txt
*/1 * * * * sleep 13s; date >> /tmp/date.txt
*/1 * * * * sleep 14s; date >> /tmp/date.txt
*/1 * * * * sleep 15s; date >> /tmp/date.txt
*/1 * * * * sleep 16s; date >> /tmp/date.txt
*/1 * * * * sleep 17s; date >> /tmp/date.txt
*/1 * * * * sleep 18s; date >> /tmp/date.txt
*/1 * * * * sleep 19s; date >> /tmp/date.txt
*/1 * * * * sleep 20s; date >> /tmp/date.txt
*/1 * * * * sleep 21s; date >> /tmp/date.txt
*/1 * * * * sleep 22s; date >> /tmp/date.txt
*/1 * * * * sleep 23s; date >> /tmp/date.txt
*/1 * * * * sleep 24s; date >> /tmp/date.txt
*/1 * * * * sleep 25s; date >> /tmp/date.txt
*/1 * * * * sleep 26s; date >> /tmp/date.txt
*/1 * * * * sleep 27s; date >> /tmp/date.txt
*/1 * * * * sleep 28s; date >> /tmp/date.txt
*/1 * * * * sleep 29s; date >> /tmp/date.txt
*/1 * * * * sleep 30s; date >> /tmp/date.txt
*/1 * * * * sleep 31s; date >> /tmp/date.txt
*/1 * * * * sleep 32s; date >> /tmp/date.txt
*/1 * * * * sleep 33s; date >> /tmp/date.txt
*/1 * * * * sleep 34s; date >> /tmp/date.txt
*/1 * * * * sleep 35s; date >> /tmp/date.txt
*/1 * * * * sleep 36s; date >> /tmp/date.txt
*/1 * * * * sleep 37s; date >> /tmp/date.txt
*/1 * * * * sleep 38s; date >> /tmp/date.txt
*/1 * * * * sleep 39s; date >> /tmp/date.txt
*/1 * * * * sleep 40s; date >> /tmp/date.txt
*/1 * * * * sleep 41s; date >> /tmp/date.txt
*/1 * * * * sleep 42s; date >> /tmp/date.txt
*/1 * * * * sleep 43s; date >> /tmp/date.txt
*/1 * * * * sleep 44s; date >> /tmp/date.txt
*/1 * * * * sleep 45s; date >> /tmp/date.txt
*/1 * * * * sleep 46s; date >> /tmp/date.txt
*/1 * * * * sleep 47s; date >> /tmp/date.txt
*/1 * * * * sleep 48s; date >> /tmp/date.txt
*/1 * * * * sleep 49s; date >> /tmp/date.txt
*/1 * * * * sleep 50s; date >> /tmp/date.txt
*/1 * * * * sleep 51s; date >> /tmp/date.txt
*/1 * * * * sleep 52s; date >> /tmp/date.txt
*/1 * * * * sleep 53s; date >> /tmp/date.txt
*/1 * * * * sleep 54s; date >> /tmp/date.txt
*/1 * * * * sleep 55s; date >> /tmp/date.txt
*/1 * * * * sleep 56s; date >> /tmp/date.txt
*/1 * * * * sleep 57s; date >> /tmp/date.txt
*/1 * * * * sleep 58s; date >> /tmp/date.txt
*/1 * * * * sleep 59s; date >> /tmp/date.txt

如果每秒没有循环连续 可以试试把 sleep 0s 删除, 在最后添加 sleep 60s (CentOS 和 Ubuntu 下不一样)

CronTab 日志输出相关

将输出重定向到/dev/null,这是个空设备,也就是忽略其输出

*/1 * * * * /opt/request.sh > /dev/null 2>&1

> 表示重定向到哪里

*/1 * * * * /opt/request.sh >> /opt/crontab-log/crontab-log-$(date "+\%Y-\%m-\%d").log 2>&1
> 为覆盖输出
>> 是增量输出
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"
2 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
上一篇 下一篇

猜你喜欢

热点阅读