云迈博客

您现在的位置是:首页 > 后端开发 > Linux > 正文

Linux

linux crontab 定时任务详解

黄昊2022-09-21Linux26
cron是linux系统下一个自动执行指定任务的程序.cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:Linux代码/sbin/servicecro

cron 是linux系统下一个自动执行指定任务的程序.

cron服务是linux的内置服务,但它不会开机自动启动。可以用以下命令启动和停止服务:

Linux代码

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
crontab -l //查看所有定时任务

以上1-4行分别为启动、停止、重启服务和重新加载配置。

要把cron设为在开机的时候自动启动,在 /etc/rc.d/rc.local 脚本中加入 /sbin/service crond start 即可。

查看,删除,修改
cron把命令行保存在crontab(cron table)文件里,这个文件通常在 /etc 目录下。每个系统用户都可以有自己的crontab(在 /var/spool/cron/ 下)。

file 使用file文件的内容作为某个用户的cron服务配置,内容会复制到cron服务的配置文件中
-u 设定某个用户的cron服务配置,一般root 用户在执行这个命令的时候需要此参数
-l   列出某个用户cron服务配置
-r  删除某个用户的cron服务配置
-e  编辑某个用户的cron服务配置,当指定crontab  不存在时新建,将使用vi打开配置文件进行编辑保存后退出,文件语法见后
crontab –v   显示上一次编辑的时间(只在某些操作系统上可用)

例如:sudo crontab -l

语法
每行表示一个指令,即表示一项计划任务;每行由空格分隔的六个部分组成,前5部分表示定时任务的执行时间,剩余部分为定时任务要执行的命令,格式如下:
分 小时 日 月 星期 命令
Minute Hour Day Month DayOfWeek command

Minute 每个小时的第几分钟执行该任务,0-59
Hour 每天的第几个小时执行该任务,0-23
Day 每月的第几天执行该任务,1-31
Month 每年的第几个月执行该任务,1-12
DayOfWeek 每周的第几天执行该任务,0-6,0表示周日
Command 指定要执行的程序

以上前五项可使用以下四个特殊符号:

*  表示所有数值,如第一位使用* 表示每分钟
/  表示每,如第一位使用 */5 表示每5分钟
-  表示数值范围,如第二位使用2-4表示2点到4点
,  表示离散的多个数值,如第2位使用6,8 表示6点和8点
指定“步长”:8-14/2 表示8,10,12,14
指定列表:比如 “1,2,3,4″,”0-4,8-12″

在每行的六项字段中,除了Command是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。对于不指定的字段,要用“*”来填补其位置。

例:每隔10分钟执行一次后面的命令

30    5      *      *     *     ls    指定每天的 5:30 执行ls命令
30    7      8      *     *     ls    指定每月8号的7:30分执行ls命令
30    5      8      6     *     ls    指定每年的6月8日5:30执行ls命令
30    6      *      *     0     ls    指定每星期日的6:30执行ls命令 [注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

cron表达式在线编辑器: https://crontab.guru/
安装crontab:

yum install crontabs

文件:

/var/spool/cron/

说明:

所有用户crontab文件存放的目录,以用户名命名

发表评论

评论列表

  • 这篇文章还没有收到评论,赶紧来抢沙发吧~