crontab语法,crontab语法规则

果果英语网 2023-10-17

crontab语法?语法:crontab[-u username]|-l|-r|-e|-v -u:指定crontab job的用户 -l:列出当前crontab的job -e:使用$EDITOR编辑crontab job -v:列出当前crontab job的状态,那么,crontab语法?一起来了解一下吧。

crontab的用途

linux下槐腔的crontab服务:

1、crontab 是用来让使用者在固定时间或固定间隔执行程序之用

在linux上如果需要实现任务调度功能可以编写cron脚本来实现。

以某一频率执行任务

linux缺省会启动crond进程,crond进程不需要用户启动、关闭。

crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。

cron的调度文件有以下几个:

1. crontab

2. cron.d

3. cron.daily

4. cron.hourly

5. cron.monthly

6. cron.weekly

如果用的任务不是以hourly monthly weekly方式执行,则可以将相应的crontab写入到crontab 或cron.d目录中。

示例:

每隔一分钟执行一次脚本 /opt/bin/test-cron.sh

可以在cron.d新建脚本 echo-date.sh

内容为

*/1 * * * * root /opt/bin/test-cron.sh

2、cron是一个linux下的定时执行,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,如果它不自动起来,可以用以下的方法启动、关闭这个服务:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

你也可以将这个服务在启动的时候自动启动:

在/etc/rc.d/rc.local这个脚本的末尾加上:

/sbin/service crond start

现在Cron这个服务已经在进程里面了,我们就可以用这个服务了

查看服务是否已经运行用 ps -ax | grep cron

3、crontab命令

查看该用户下的crontab服务是否创建成功, 用 crontab-l 命令

命令 which php 查看linux下安装的php的路径

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l //缓仔列出某个用户cron服务的详细内容

crontab -r //删除没个用户的cron服务

crontab -e //编辑某个用户的cron服务

比如说root查看自己的cron设置:crontab -u root -l

再例如,root想删除fred的cron设置:crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e

进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt

任务调度的crond常驻命令crond 是linux用来定期执行程序的命令。

crontab命令详解

摘要: Linux , crontab

整理crontab的使用,包括cron表达式,设置和删除任务,权限管理,查看日志

crontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作后,默认会安装此服务,并且会自动启动crond进程,crond进程 每分钟 会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务

使用如下命令进行crontab服务的开启,关闭,重启,和状态查看

其中启动关闭需要root权限,所有用户可以查看状态例如

crontab通过设置cron表达式来让计算机识别如何定时调度任务,cron表达式的基本语法

前五个 * 分别代表 分钟 , 小时 , 当月第几日 , 当年第几月 , 周几 ,最后的 command 是要执行的任务语句,详情和取值范围见下图

其中* 代表所有值,比如以下代表在每年9月27日17点07分执行一个命令,不限制周几

可见crontab最小颗粒度是以 分钟级别 进行调度, 最粗级别是月 ,不限制年,因此 至少每年执行一次 。

在cron表达式中最后一个*代表周几,如果前面的*限死了日期, 且周几这个位置不为*为一个给定值 ,必定可能和周几冲突,当发生冲突时两者为 OR 的关系,即如果时间满足指定的日期,或者时间满足指定的周几,都会执行任务,举个例子

当天为9月27日,星期一,以上两条语句都会被执行,一个在当天的17点13分,一个在当天的17点17分,在/tmp/cron.txt文件中会先后写入两条记录

当周几这个位置设置为*时,无需关注冲突问题,即不对周几做限制

除此之外cron表达式支持一些特征符号配合阿拉伯数字来设置每个*,这样可以实现 或 , 每隔 , 从,到 的逻辑,分别对应三种常用符号 , , / , - ,分别解释如下

分别举几个例子

(1)17点43分和44分执行任务

(2)每隔2分钟执行任务

(3)从52分带56分一直执行任务,一共执行5次

下面来整理一波常用的cron表达式

目前已知的需要转义轮空的是百分号 % ,尤其是在使用日期命令date做日期格式化时,否则无法腊培瞎在crontab中运行,因为%是crontab中的一个有意义的符号,应该这样设置带有百分号的command例如

如果不这样设置,也可以单独写在一个shell脚本中使用bash解释执行也能够正常运行

在当前用户下使用 crontab -e 来编辑添加定时任务,第一次使用会显示no crontab for用户,然后选择一种编辑方式选择输入3回车,如果首次没有设置后期也可以在终端输入 select-editor 进行设置

设置完成之后输入 crontab -e 进入,该方法进入的是当前用户的crontab界面,新起一行即可写入cron表达式进行设置,例如

其中可以使用 # 注释掉某行,则该cron表达式不生效,编辑完成后输入 wq! 进行保存关闭

一种直接的方式是使用 crontab -r ,这种方法删除该用户下所有crontab任务中庆,其他用户的任务不影响都不会被删除,慎用,如果只是要删除其中某一条任务,则直接进入编辑删除这一行即可

任务查看使用 crontab -l 命令,该命令可以查看当前用户的crontab任务

一台linux机器上每个不同用户都有自己的crontab -e文件设置自己的定时任务,这些任务互不干涉运行在一台机器上,其中root用户可以在使用crontab -e的时候可以切换其他用户进行设定,比如

以上语句是在root下给test用户设置定时任务,如果是普通用户则报错没有-u权限

crontab -e是 用户级别 的,设置每个用户的自己的定时任务,/etc/crontab是 级别 的,设置例行的任务,/etc/crontab只有root用户有读写权限,普通用户只有读权限。

如何创建一个新的crontab文件

设置crontab后我们可以使得Linux主动执行的在固定的间隔时间,执行指定的指令或 shell script脚本。生产环境可以用来日志分析或生产备份等。

语法格式:

crontab [ -u user ] file ===》-u的意思就是指定用户

crontab [ -u user ] { -l 显示文件内容| -r全部删除crontab文件 | -e 编辑crontab文件| -i删除crontab文件前确认提示}

举例:

*/5 10,12 * 3-8 * * /usr/sbin/ntpdate 10.0.0.155>/dev/null2>&1

前五段是时间间隔的设定,单位分别是分钟、小时、日、月、周(尽量避免使用日月和周同时出现,以免造成误判)棚碰。

第一个时间段 分钟 范围0-59

第二个时间段 小时 范围0-23

第三个世间段 日 范围1-31

第四个时间段 月 范围1-12

第五个时间段 周 范围0-7

*星号代表任何时间都接受命令

,逗号,表示隔开。代表分隔的时间都适用此命令。

- 减号,两个时间段之间,代表在此时间段内执行定时任务。

/n斜线和n(数字)表示每隔n段时间执行一次。

crontab命令

为当前用户创建cron服务

1.键入 crontab-e 编辑crontab服务文件

例如 文件内容如下:

*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh

保存文件并并退出

*/2 * * * * /bin/sh /home/admin/jiaoben/buy/deleteFile.sh

*/2 * * * * 通过这段字段可以姿橡设定什么时候执行脚本

/bin/sh /home/admin/jiaoben/buy/deleteFile.sh 这一字段可以设定你要执行的脚本,这里要注意一下bin/sh 是指运行脚本的命亏芦令后面一段时指脚本存放的路径

2. 查看该用户下的crontab服务是否创建成功, 用 crontab-l 命令

3. 启动crontab服务

一般启动服务用/sbin/service crond start 若是根用户的cron服务可以用 sudo service crond start, 这里还是要注意下不同版本linux启动的服务的命令也不同 ,有些虚拟机里只需用 sudo service cron restart 即可,若是在根用下直接键入service cron start就能启动服务

4. 查看服务是否已经运行销册带用 ps -ax | grep cron。

crontab生效方法

1、crontab命令的功能是在一定的时间间隔调度一些洞渣命令的执行,它可以完成定时任务。

1.1Crontab语法

usage:crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

(default operation is replace, per 1003.2)

-e(edit user's crontab) //编写任务

-l(list user's crontab)//查看任务

-r(delete user's crontab)

-i(prompt before deleting user's crontab)

-s(selinux context)

其中,file是命令文件的名字。如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如纳桥悄果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。

1。2编辑一个计划任务:

#crontab -e //编辑机会任务

#每天早上6点10分

106 * * * restart

保存退出。

以上就是crontab语法的全部内容,crontab文件的含义:用户所建立的crontab文件中,每一行都代表一项任务,每行的每个字段代表一项设置,它的格式共分为六个字段,前五段是时间设定段,第六段是要执行的命令段。

下一篇: 语文语法知识,语文语法大全
上一篇: 语法英语是什么,英语语法包括哪些内容
相关文章
返回顶部