crontab使用方法[通俗易懂]

crontab使用方法[通俗易懂]一、crontab基本用法1.1cron服务cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。servicecrondstart//启动服务servicecrondstop//关闭服务servicecrondrestart//重启服务servicecrondreload//重新载入配置servicecrondstatus//查看服务状态1.2Crontab存放路径/var/spool/c…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

一、crontab基本用法

1.1 cron服务

cron是一个linux下 的定时执行工具,可以在无需人工干预的情况下运行作业。

service crond start    //启动服务
service crond stop     //关闭服务
service crond restart  //重启服务
service crond reload   //重新载入配置
service crond status   //查看服务状态

1.2 Crontab存放路径

/var/spool/cron/crontabs #这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名。 

1.3 基本语法

crontab (选项) (参数)

1.3.1 选项

-e:编辑该用户的计时器设置;
-l:列出该用户的计时器设置;
-r:删除该用户的计时器设置;
-u<用户名称>:指定要设定计时器的用户名称。

1.3.2 参数

crontab文件(指定包含待执行任务的crontab文件。可以不指定,默认是/var/spool/cron/crontabs/下名字为当前用户名的文件)

1.4 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 # | | | | | # * * * * * command  

其中
minute: 表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。
command:要执行的命令,可以是系统命令,也可以是自己编写的脚本文件。
在以上各个字段中,还可以使用以下特殊字符
星号():代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。
逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”
中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”
正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如
/10,如果用在minute字段,表示每十分钟执行一次。

二、示例

2.1每分钟执行一次command

* * * * * command

2.2 每小时的第3和第20分钟执行一次command

3,20 * * * * command

2.3 在凌晨3点到晚上20点的每小时第20分钟执行一次command

20 3-20 * * * command

2.4 每隔两天的凌晨3点到晚上20点每小时的第20分钟执行一次command

20 3-20 */2 * * command

2.5 每周一的凌晨3点到晚上20点每小时的第20分钟执行一次command

20 3-20 * * 1 command

2.6 每隔一个半小时执行一次command

通过设置两个定时任务可以实现每一个半小时的定时任务。在设定时两个任务的开始时间刚好错开90分钟,每个任务每3小时执行一次即可。

20 0-23/3 * * * command
50 1-23/3 * * * command
  • 注:两个任务中command为同一个脚本或命令

三、故障排查

3.1 定时任务设置后保存不了

guoew@ubuntu:/etc/cron.daily$ crontab -e crontab: installing new crontab "/tmp/crontab.FLUGtP/crontab":23: bad minute errors in crontab file, can't install. Do you want to retry the same edit? (y/n) 

仔细查看上面保存会发现在第23行分钟的格式设置不正确,修改为正确格式即可。

3.2 定时任务设置不生效

定时任务不生效原因可能存在下面三种情况:

  1. 定时任务格式或command本身语法不正确
  2. command 没有执行权限
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172586.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月24日 下午12:16
下一篇 2022年8月24日 下午12:36


相关推荐

  • Windows网络编程

    Windows网络编程

    2021年12月7日
    52
  • 收藏~ 一篇教会你写90%的shell脚本

    收藏~ 一篇教会你写90%的shell脚本还不会写shell脚本?这篇文章教会你写90%的shell脚本!

    2022年5月24日
    31
  • Java8:LocalDate LocalDateTime Date相互转化

    Java8:LocalDate LocalDateTime Date相互转化概述时间日期处理是平时工作中使用非常频繁的逻辑,Java8中提供的新的时间类LocalDateTime和LocalDate,使日期处理可以更简单。友情提醒下,业务开发中最好默认使用LocalDateTime,因为LocalDateTime可以很方便的转换为LocalDate,但是LocalDate是不可以转为LocalDateTime的,会没有时分秒的数据!!!实例publicstaticvoidmain(String[]args){StringcurrentDate

    2026年4月16日
    10
  • ReadProcessMemory/C++的探索[通俗易懂]

    ReadProcessMemory/C++的探索[通俗易懂]ReadProcessMemory函数msdn说明:BOOLWINAPIReadProcessMemory(_In_   HANDLEhProcess,_In_   LPCVOIDlpBaseAddress,_Out_  LPVOIDlpBuffer,_In_   SIZE_TnSize,_Out_  SIZE_T*lpNumberOfByte

    2022年10月5日
    4
  • dnf自己搭建服务器_dnf搭建教程

    dnf自己搭建服务器_dnf搭建教程DNF游戏私服搭建过程准备资源:1.黑岩客户端2.服务器启动所需资源3.1核2G服务器一台(版本centos5.8)(记得开放全部端口)服务端配置:步骤一:切换源为163的源:wget-O/etc/yum.repos.d/CentOS-Base.repohttp://mirrors.163.com//.help/CentOS5-Base-163.repo上传资源到服务器的根目录cd/上传文件步骤二:安装glibc.i386,xulrunner.i386,libXt

    2022年10月5日
    4
  • python进制转换函数-Python中进制转换函数的使用

    python进制转换函数-Python中进制转换函数的使用Python中进制转换函数的使用关于Python中几个进制转换的函数使用方法,做一个简单的使用方法的介绍,我们常用的进制转换函数常用的就是int()(其他进制转换到十进制)、bin()(十进制转换到二进制)、oct()(十进制转换到八进制)、hex()(十进制转换到十六进制)。下面我们逐个说下每个函数的用法。binbin()函数,是将十进制的数字转换成二进制的数字。其中bin()函数中传入的是十进…

    2022年5月19日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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