Linux基础-crontab(定时任务)

本文详细介绍了crontab命令及其在Linux系统中的应用,包括cron服务的管理、crontab任务的编写与删除,以及非交互模式设置定时任务的方法。通过实例演示了如何设置周期性执行的系统任务,是Linux运维和自动化脚本必备技能指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、概述

二、cron服务  

1、介绍

2、实例

3、管理服务命令

1)centos

2)ubuntu

三、crontab 命令

1、常用格式

2、编写crontab任务记录表

3、实例

4、非交互模式设置定时任务

1)编辑定时任务

2)删除定时任务

3)批量添加定时任务


一、概述

  crontab命令常见于UnixUnix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于"crontab"文件中,以供之后读取和执行。与windows的计划任务类似,crond进程会按照用户设置的规则定期检查是否有要执行的任务,如有则自动执行该任务。其中:cron是服务名、crond是守护进程、crontab是任务记录表。

二、cron服务  

1、介绍

用途:按照设置的时间间隔为用户反复执行某一项固定的系统任务

该服务需要安装的软件包:cronie、crontabs

守护进程:crond

日志文件:/var/log/cron

2、实例

[root@localhost ~]# tail /var/log/cron

... ... ...

May  1 17:40:01 localhost CROND[2009]: (root) CMD

#cron服务执行的消息

3、管理服务命令

1)centos

service crond status  #查看服务状态

service crond start  #启动服务

service crond stop  #关闭服务

service crond restart  #重启服务

2)ubuntu

service cron status  #查看服务状态

service cron start  #启动服务

service cron stop  #关闭服务

service cron restart  #重启服务

三、crontab 命令

管理定时任务,使用 crontab 命令

1、常用格式

编辑:crontab -e [-u 用户名]

查看:crontab -l [-u 用户名]

清除:crontab-r [-u 用户名]

2、编写crontab任务记录表

配置格式可参考/etc/crontab文件

# minute  hour  day  month  week user-name  command to be executed

#分 时 日 月 周 用户名 要执行的命令(系统命令或自己编写的脚本文件)

注:

普通用户只能修改自己的定时任务,超级管理员可以修改所有用户的定时任务,修改自己的定时任务,用户名可以不写

系统命令需要注意使用绝对路径

执行周期

 配置说明

Minute分钟)

从0到59之间的整数

Hour小时)

从0到23之间的整数

Day(日期)

从1到31之间的整数

Month(月份)

从1到12之间的整数

Week(星期)

从0到7之间的整数,0或7代表星期日

注:以上各个字段中,可以使用以下特殊字符

符号名称

配置说明

*(星号)

匹配范围内任意时间

,(逗号)

分隔多个不连续的时间点

-(横杠)

指定连续时间范围

/(正斜线)

指定时间频率,每(分|时|日|月|周)

3、实例

[root@localhost ~]# crontab -e -u root  #编辑定时任务

*/20 6-12 * 12 * /bin/echo "wangwu"

#在 12 月内, 每天的早上 6 点到 12 点中,每隔 20 分钟执行一次
[root@localhost ~]# crontab -l -u root  #查看定时任务

*/20 6-12 * 12 * echo "wangwu"
[root@localhost ~]# crontab -r -u root  #删除定时任务

[root@localhost ~]# crontab -l -u root  #查看定时任务

no crontab for root                 #成功删除

4、非交互模式设置定时任务

1)编辑定时任务

命令

( crontab -l; echo "*/1 * * * * /bin/ls" ) | crontab

# */1 * * * * /bin/ls 需要更换为你想要设置的定时任务

实例

[root@localhost ~]# ( crontab -l; echo "*/1 * * * * /bin/ls" ) | crontab       

[root@localhost ~]# crontab -l

*/1 * * * * /bin/ls

#成功添加

2)删除定时任务

命令

crontab  -l|grep -v  "ls"|crontab

#ls需要更换为你想要删除的定时任务的关键字

实例

[root@localhost ~]# crontab  -l|grep -v  "ls"|crontab

[root@localhost ~]# crontab -l

#成功删除

3)批量添加定时任务

命令

( crontab -l; echo "*/1 * * * * /bin/ls

> */2 * * * * /bin/ls

> */3 * * * * /bin/ls" ) | crontab

#*/1 * * * * /bin/ls 需要更换为你想要设置的定时任务

实例

[root@localhost ~]# ( crontab -l; echo "*/1 * * * * /bin/ls

> */2 * * * * /bin/ls

> */3 * * * * /bin/ls" ) | crontab

[root@localhost ~]# crontab -l

*/1 * * * * /bin/ls

*/2 * * * * /bin/ls

*/3 * * * * /bin/ls

#成功添加

评论 35
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Passerby_Wang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值