crontab定时任务语法及应用

crontab定时任务语法及应用

https://mp.weixin.qq.com/s/Oi9hppNQMeFiQo9s-ge79A

crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务 工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux下的任务调度分类

  1. 系统任务调度

  2. 用户任务调度

     

系统任务调度

系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件。

用户任务调度

用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab 文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

二、CRONTAB语法及应用

查看当前用户的定时任务

crontab -l*/2 * * * * echo "i am crontab" >> /home/zhang/hello

编辑当前用户的定时任务

可以在编辑状态修改、删除、新增一些定时任务。注释一般用#

crontab -e

删除当前用户的定时任务

crontab -r

此命令使用需要注意,因为一旦执行没有提醒,该用户的全部定时任务就清空了。

Cron文件格式

*  *  *  *  *  command
分 时 日 月 周   命令

第1列表示分钟1~59, 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令(命令可以是ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。)

在以上任何值中,星号(*)可以用来代表所有有效的值。譬如,月份值中的星号意味着在满足其它制约条件后每月都执行该命令。

整数间的短线(-)指定一个整数范围。譬如,1-4 意味着整数 1、2、3、4。

用逗号(,)隔开的一系列值指定一个列表。譬如,3, 4, 6, 8 标明这四个指定的整数。

正斜线(/)可以用来指定间隔频率。在范围后加上 / 意味着在范围内可以跳过 integer。譬如,0-59/2 可以用来在分钟字段定义每两分钟。间隔频率值还可以和星号一起使用。例如,*/3 的值可以用在月份字段中表示每三个月运行一次任务。

开头为井号(#)的行是注释,不会被处理。

如你在 /etc/crontab 文件中所见,它使用run-parts 脚本来执行/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly 和/etc/cron.monthly 目录中的脚本,这些脚本被相应地每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell 脚本。

如果某 cron 任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到 /etc/cron.d 目录中。该目录中的所有文件使用和 /etc/crontab 中一样的语法。

实例

crontab文件的一些例子:

30 21 * * * service apache restart

上面的例子表示每晚的21:30重启apache。

45 4 1,10,22 * * service apache restart

上面的例子表示每月1、10、22日的4 : 45重启apache。

10 1 * * 6,0 service apache restart

上面的例子表示每周六、周日的1 : 10重启apache。

0,30 18-23 * * * service apache restart

上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。

0 23 * * 6 service apache restart

上面的例子表示每星期六的11 : 00 pm重启apache。

* */1 * * * service apache restart

每一小时重启apache

* 23-7/1 * * * service apache restart

晚上11点到早上7点之间,每隔一小时重启apache

0 11 4 * mon-wed service apache restart

每月的4号与每周一到周三的11点重启apache

0 4 1 jan * service apache restart

一月一号的4点重启apache

 

环境变量

1、在SHELL中设置了必要的环境变量;例如一个shell脚本手工执行OK,但是配置成后台作业执行时,获取不到ORACLE的环境变量,这是因为 crontab环境变量问题,Crontab的环境默认情况下并不包含系统中当前用户的环境。所以,你需要在shell脚本中添加必要的环境变量的设置

2、尽量所有的文件都采用完全路径方式,避免使用相对路径。

  • 脚本中涉及文件路径时写全局路径;

  • 脚本执行要用到java或其他环境变量时,通过source命令引入环境变量

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/112774.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Enterprise Library 验证的实现

    Enterprise Library 验证的实现参考地址:http://www.cnblogs.com/huangcong/archive/2010/06/03/1749634.htmlEnterpriseLibrary的验证我觉得最大的改变了验证的位置,可以通过配置文件来修改验证规则,这就极大的使验证更加灵活,原文中的一个错误就是第一步让点击 AddDatabaseSettings这个地方错了,应该点击AddSecuritySe…

    2022年10月20日
  • sql 聚合函数对 null 的处理[通俗易懂]

    sql 聚合函数对 null 的处理[通俗易懂]聚合函数计数类型(count)SELECTCOUNT(*)FROM(SELECT1ASnumUNIONALLSELECT1ASnumUNIONALLSELECT2ASnumUNIONALLSELECTNULLASnum);SELECTCO

  • SqlServer2019安装教程-自定义安装

    SqlServer2019安装教程-自定义安装SqlServer2019安装教程-基本安装:https://blog.csdn.net/qq_33556442/article/details/102848891搜索SqlServer2019进入官方网站,点击下载(时间稍微有点长)选择下载的环境,这里是Windows的下载(时间稍微有点长,请耐心等待)进入最终的下载界面,点击【Continue】https:/…

  • 爱奇艺需要优化的功能_爱奇艺怎么调三倍速度

    爱奇艺需要优化的功能_爱奇艺怎么调三倍速度爱奇艺技术分享:爱奇艺Android客户端启动速度优化实践总结

  • 0817a

    0817ahttps://zhidao.baidu.com/question/1302230504869242619.html

  • navicat premium 15 mac 激活码【2021.7最新】

    (navicat premium 15 mac 激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.cn/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~ML…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号