前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >linux中的11个cron调度任务示例

linux中的11个cron调度任务示例

作者头像
入门笔记
发布2022-06-02 15:41:54
1.6K0
发布2022-06-02 15:41:54
举报
文章被收录于专栏:入门小站

Crontab 文件每行由命令组成,实际上有六个字段,并以空格或制表符分隔。前五个字段代表运行任务的时间,最后一个字段用于命令。

代码语言:javascript
复制
*    *    *    *    *
-    -    -    -    -
|    |    |    |    |
|    |    |    |    +----- 星期中星期几 (0 - 6) (星期天 为0)
|    |    |    +---------- 月份 (1 - 12) 
|    |    +--------------- 一个月中的第几天 (1 - 31)
|    +-------------------- 小时 (0 - 23)
+------------------------- 分钟 (0 - 59)
  1. 分钟(范围0-59)
  2. 小时(范围0-23)
  3. 月中的某天(范围1-31)
  4. 一年中的月份(范围1-12或者Jan-Dec,你可以使用每个月名称的前三个字母,即Jan or Jun.)
  5. 星期几(范围0-6或者Sun-Sat, 在这里你也可以使用每天名字的前三个字母,即Sun or Wed.)
  6. 命令

语法说明

代码语言:javascript
复制
> c1 c2 c3 c4 c5 program
  • 其中 c1 是表示分钟,c2 表示小时,c3 表示一个月份中的第几日,c4 表示月份,c5 表示一个星期中的第几天。program 表示要执行的程序。
  • 当 c1 为 * 时表示每分钟都要执行 program,c2 为 * 时表示每小时都要执行程序,其馀类推
  • 当 c1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,c2 为 a-b 时表示从第 a 到第 b 小时都要执行,其馀类推
  • 当 c1 为 */n 时表示每 n 分钟个时间间隔执行一次,c2 为 */n 表示每 n 小时个时间间隔执行一次,其馀类推
  • 当 c1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,c2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其馀类推
1. 列出 Crontab 条目

使用 crontab 命令列出或管理任务-l当前用户的选项。

代码语言:javascript
复制
# crontab -l
    
00 10 * * * /bin/ls >/ls.txt
2. 编辑 Crontab 条目

要编辑 crontab 条目,请使用-e选项如下图。在下面的示例中,将打开调度作业vi编辑。进行必要的更改并退出按:wq键自动保存设置。

代码语言:javascript
复制
# crontab -e
3. 列出计划的 Cron 作业

列出特定用户的计划作业rumenz使用选项作为-u(User) 和-l(List)。

代码语言:javascript
复制
# crontab -u rumenz -l
    
no crontab for rumenz

仅有的root用户拥有查看其他用户 crontab 条目的完整权限。普通用户无法查看其他人。

4. 删除 Crontab 条目

Caution:Crontab 与-r参数将删除完整的计划作业,而无需来自 crontab 的确认。用-i删除用户的 crontab 之前的选项。

代码语言:javascript
复制
# crontab -r
5. 删除 Crontab 前提示

crontab 与-i选项将在删除用户的 crontab 之前提示你确认用户。

代码语言:javascript
复制
# crontab -i -r
    
crontab: really delete root's crontab?
6. 允许的特殊字符 (*, -, /, ?, #)
  1. Asterik(*)– 匹配字段中的所有值或任何可能的值。
  2. Hyphen(-)– 定义范围。
  3. Slash (/)– 第一个字段 /10 表示每十分钟或范围增量。
  4. Comma (,)– 分隔。
7. 系统范围的 Cron 计划

系统管理员可以使用预定义的 cron 目录,如下所示。

  1. /etc/cron.d
  2. /etc/cron.daily
  3. /etc/cron.hourly
  4. /etc/cron.monthly
  5. /etc/cron.weekly
8. 安排特定时间的作业

以下作业从中删除空文件和目录/tmp00:30我每天。你需要提及用户名才能执行 crontab 命令。在下面的例子中root用户正在执行 cron 作业。

代码语言:javascript
复制
# crontab -e
30 0 * * *   root   find /tmp -type f -empty -delete
9. 通用时间表的特殊字符串

Strings

Meanings

@reboot

命令将在系统重新启动时运行

@daily

每天一次或可使用@midnight

@weekly

每周

@yearly

每年一次。我们也可以使用@annual关键字

如果要使用相同的关键字,则需要将 cron 命令的五个字段替换为关键字。

10. 带有双 & 号 (&&) 的多个命令

在下面的示例中,command1 和 command2 每天运行。

代码语言:javascript
复制
# crontab -e
    
@daily <command1> && <command2>
11. 禁用电子邮件通知。

默认情况下,cron 将邮件发送到执行 cronjob 的用户帐户。如果你想禁用它,请添加类似于以下示例的 cron 作业。使用>/dev/null 2>&1文件末尾的选项将重定向 cron 结果下的所有输出/dev/null.

代码语言:javascript
复制
[root@rumenz ~]# crontab -e
* * * * * >/dev/null 2>&1

相关文章

Linux之crontab命令

linux之crontab使用技巧

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 入门小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 语法说明
    • 1. 列出 Crontab 条目
      • 2. 编辑 Crontab 条目
        • 3. 列出计划的 Cron 作业
          • 4. 删除 Crontab 条目
            • 5. 删除 Crontab 前提示
              • 6. 允许的特殊字符 (*, -, /, ?, #)
                • 7. 系统范围的 Cron 计划
                  • 8. 安排特定时间的作业
                    • 9. 通用时间表的特殊字符串
                      • 10. 带有双 & 号 (&&) 的多个命令
                        • 11. 禁用电子邮件通知。
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档