
正文
Linux - cron - cron 表达式
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
-
概述
- 之前 cron 的补充
- 这次介绍下 表达式
-
背景
- 之前有说过 cron
- 这次说下 表达式
1. 准备
-
环境
-
os
-
centos7
2. 模板文件
-
文件
-
位置
-
/etc/crontab
-
作用
-
系统任务
-
不建议直接使用
-
cron 表达式模板
-
协作参考
3. cron 脚本
-
内容
-
变量
-
shell
-
指定 shell
-
path
-
添加路径
-
如果没有的话, 执行要 带程序的全路径
-
mailto
-
如果出现问题, 会把信息发送给特定用户
-
任务定义
-
组成
-
cron 表达式
-
执行用户
-
通常 都是创建 cron 任务的用户自己
-
root 的权限可能大一些
-
执行命令
-
如果没有 path, 需要带 全路径
4. cron 表达式
-
概述
-
cron 表达式
-
表示按一定的频率, 执行操作
-
字段
-
概述
-
linux 上的 cron 表达式一共 5 个字段
-
其他地方的, 可能会有 6 个
-
基本上 大同小异, 灵活处理即可
-
字段
-
解释
# /etc/crontab 讲得还挺好, 我直接复制了
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
-
例子
# 1. 每分钟执行一次, 通常在每分钟的 第一秒 执行
* * * * *
# 2. 每小时的 15 分, 执行一次
15 * * * *
# 3. 每天 3:15, 执行一次
15 3 * * *
# 4. 每个月 1 日 的 3:15, 执行一次
15 3 1 * *
# 5. 每年的 2 月 1 日, 在 3:15 时执行一次
15 3 1 2 *
# 6. 2 月的每个星期一, 在 3:15 时执行一次
# 日期 和 星期, 不能同时支持
15 3 * 2 1
-
进阶
-
概述
-
首先, 也不是什么太难的技巧
-
场景
-
执行多次
-
连续执行
-
间隔执行
-
思路1: 多写几条 cron 任务
-
感觉
-
可行
-
但会不会 太笨了?
-
思路2: 调整 cron 表达式
# 只用 分钟 字段做例子, 其他字段也可以
# 1. 连续时间: 1, 10 分, 每分钟一次
1-10 * * * *
# 2. 间隔时间: 1, 10 分, 各一次
1,10 * * * *
# 3. 间隔时间: 每 10 分一次
*/10 * * * *
-
感觉
-
这些东西, 基本就可以满足需要了吧
ps
-
ref
-
这次是自己记住了
-
肯定也是以前看的, 但现在想不起来哪看的了
-
cron
-
这一块, 应该暂时完结了吧
-
如果再要讲, 估计就涉及到底层原理了
-
想想就觉得不会有那一天...
-
os
- centos7
-
文件
-
位置
- /etc/crontab
-
作用
-
系统任务
- 不建议直接使用
-
cron 表达式模板
- 协作参考
-
系统任务
-
3. cron 脚本
-
内容
-
变量
-
shell
-
指定 shell
-
path
-
添加路径
-
如果没有的话, 执行要 带程序的全路径
-
mailto
-
如果出现问题, 会把信息发送给特定用户
-
任务定义
-
组成
-
cron 表达式
-
执行用户
-
通常 都是创建 cron 任务的用户自己
-
root 的权限可能大一些
-
执行命令
-
如果没有 path, 需要带 全路径
4. cron 表达式
-
概述
-
cron 表达式
-
表示按一定的频率, 执行操作
-
字段
-
概述
-
linux 上的 cron 表达式一共 5 个字段
-
其他地方的, 可能会有 6 个
-
基本上 大同小异, 灵活处理即可
-
字段
-
解释
# /etc/crontab 讲得还挺好, 我直接复制了
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
-
例子
# 1. 每分钟执行一次, 通常在每分钟的 第一秒 执行
* * * * *
# 2. 每小时的 15 分, 执行一次
15 * * * *
# 3. 每天 3:15, 执行一次
15 3 * * *
# 4. 每个月 1 日 的 3:15, 执行一次
15 3 1 * *
# 5. 每年的 2 月 1 日, 在 3:15 时执行一次
15 3 1 2 *
# 6. 2 月的每个星期一, 在 3:15 时执行一次
# 日期 和 星期, 不能同时支持
15 3 * 2 1
-
进阶
-
概述
-
首先, 也不是什么太难的技巧
-
场景
-
执行多次
-
连续执行
-
间隔执行
-
思路1: 多写几条 cron 任务
-
感觉
-
可行
-
但会不会 太笨了?
-
思路2: 调整 cron 表达式
# 只用 分钟 字段做例子, 其他字段也可以
# 1. 连续时间: 1, 10 分, 每分钟一次
1-10 * * * *
# 2. 间隔时间: 1, 10 分, 各一次
1,10 * * * *
# 3. 间隔时间: 每 10 分一次
*/10 * * * *
-
感觉
-
这些东西, 基本就可以满足需要了吧
ps
-
ref
-
这次是自己记住了
-
肯定也是以前看的, 但现在想不起来哪看的了
-
cron
-
这一块, 应该暂时完结了吧
-
如果再要讲, 估计就涉及到底层原理了
-
想想就觉得不会有那一天...
-
变量
-
shell
- 指定 shell
-
path
- 添加路径
- 如果没有的话, 执行要 带程序的全路径
-
mailto
- 如果出现问题, 会把信息发送给特定用户
-
shell
-
任务定义
-
组成
- cron 表达式
-
执行用户
- 通常 都是创建 cron 任务的用户自己
- root 的权限可能大一些
-
执行命令
- 如果没有 path, 需要带 全路径
-
组成
-
概述
-
cron 表达式
- 表示按一定的频率, 执行操作
-
cron 表达式
-
字段
-
概述
-
linux 上的 cron 表达式一共 5 个字段
- 其他地方的, 可能会有 6 个
- 基本上 大同小异, 灵活处理即可
-
linux 上的 cron 表达式一共 5 个字段
-
字段
-
解释
# /etc/crontab 讲得还挺好, 我直接复制了
# For details see man 4 crontabs # Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
-
-
-
例子
# 1. 每分钟执行一次, 通常在每分钟的 第一秒 执行
* * * * *
# 2. 每小时的 15 分, 执行一次
15 * * * *
# 3. 每天 3:15, 执行一次
15 3 * * *
# 4. 每个月 1 日 的 3:15, 执行一次
15 3 1 * *
# 5. 每年的 2 月 1 日, 在 3:15 时执行一次
15 3 1 2 *
# 6. 2 月的每个星期一, 在 3:15 时执行一次
# 日期 和 星期, 不能同时支持
15 3 * 2 1
-
进阶
-
概述
- 首先, 也不是什么太难的技巧
-
场景
-
执行多次
- 连续执行
- 间隔执行
-
执行多次
-
思路1: 多写几条 cron 任务
-
感觉
- 可行
- 但会不会 太笨了?
-
感觉
-
思路2: 调整 cron 表达式
# 只用 分钟 字段做例子, 其他字段也可以
# 1. 连续时间: 1, 10 分, 每分钟一次
1-10 * * * *
# 2. 间隔时间: 1, 10 分, 各一次
1,10 * * * *
# 3. 间隔时间: 每 10 分一次
*/10 * * * *
-
感觉
- 这些东西, 基本就可以满足需要了吧
-
ps
-
ref
-
这次是自己记住了
-
肯定也是以前看的, 但现在想不起来哪看的了
-
cron
-
这一块, 应该暂时完结了吧
-
如果再要讲, 估计就涉及到底层原理了
-
想想就觉得不会有那一天...
ref
-
这次是自己记住了
- 肯定也是以前看的, 但现在想不起来哪看的了
cron
- 这一块, 应该暂时完结了吧
-
如果再要讲, 估计就涉及到底层原理了
- 想想就觉得不会有那一天...







