Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Linux日常运维-任务计划(crontab)

Linux日常运维-任务计划(crontab)

作者头像
运维小路
发布于 2024-11-01 11:09:31
发布于 2024-11-01 11:09:31
13300
代码可运行
举报
文章被收录于专栏:运维小路运维小路
运行总次数:0
代码可运行

作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

当我们有些任务需要在凌晨执行或者其他人工不方便执行的时间去执行的时候,应该怎么办呢?这里就引入了Linux一个非常重要的特性就是任务计划,它可以按照我们指定时间去执行对应的任务。

在Linux中,可以使用crontab来设置和管理任务计划。crontab是一个用于定期执行命令或脚本的工具,可以按照指定的时间间隔自动运行任务。

以下是一些常见的使用crontab来设置任务计划的步骤:

查看现有的crontab任务:使用以下命令可以查看当前用户的crontab任务列表:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crontab -l

编辑或创建新的crontab任务:使用以下命令可以编辑或创建一个新的crontab任务:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
crontab -e

在打开的编辑器中,每行代表一个任务计划,格式如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* * * * * command

例如,如果要在每天的早上8点运行一个脚本,可以使用以下行:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0 8 * * * /path/to/script.sh

编辑完成后,保存并关闭编辑器,这里的操作方式和用vi编辑文件是一样的效果。

  • 第一个星号表示分钟(0-59)
  • 第二个星号表示小时(0-23)
  • 第三个星号表示日期(1-31)
  • 第四个星号表示月份(1-12)
  • 第五个星号表示星期几(0-7,其中0和7都表示星期日)

删除crontab任务:如果要删除当前用户的所有crontab任务,可以使用以下命令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#一般用的比较少,常用的是删除或者注释任务
crontab -r

注意:这将删除当前用户的所有crontab任务,请谨慎使用。

这些是设置和管理任务计划的基本步骤。可以根据具体的需求调整crontab任务的设置。

优先级说明

这五个时间单位的优先级从左到右依次降低。根据这五个时间单位的取值,可以设置不同的定时任务。例如:

  • 如果在分钟、小时、日期、月份和星期几的位置上都使用了星号(*),表示任务将在每分钟都执行。
  • 如果在分钟位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每小时的特定分钟执行。
  • 如果在小时位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每天的特定小时执行。
  • 如果在日期位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每月的特定日期执行。
  • 如果在月份位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每年的特定月份执行。
  • 如果在星期几位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每周的特定星期几执行。

请注意,星号(*)表示通配符,意味着该时间单位的所有取值都适用。而特定的数字表示具体的取值,例如1代表1号,2代表2点等。

根据具体需求,可以根据时间单位的优先级来设置crontab任务的时间间隔。请确保设置正确的时间间隔,以确保任务按预期执行。

每分钟,用 *

每2分钟,则用*/2

每5分钟,则用*/5

其他依次类推,绝大部分任务都是在分钟和小时2个参数进行调整。

主要用途

1.定时切割日志,删除文件

nginx等web服务器的日志轮询,然后删除过期的日志等

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#凌晨1点执行,可以跟具体的命令,也可以跟脚本路径,注意环境变量有效性
* 1 * * * * Command

2.检查进程存活

常用于各种服务,比如zk,kafka,等中间件的进程监控,如果不正常则执行启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#每2分钟检查一次进程是否正常,如果不正常则执行后续启动或其他动作
*/2 * * * * Command

3.定期备份

用于定期备份数据库或者备份业务文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#每天凌晨5点做备份数据库,或者同步文件操作
* 5 * * * Command

总结

1.Linux任务计划的规则其实很简单,只要理解到规则就可以根据自己的需要编写对应的规则。对应的规则可以直接是命令,也可以是脚本。

2.Linux任务计划是分用户的,尤其是多用户运维的服务器。

3.Linux任务计划最小粒度是分钟,如果需要更精细的角度来执行,可以通过把命令放置到脚本里面,然后通过脚本来实现秒级的粒度的控制。

4.在前面讲文件搜索的时候,我们讲过Linux有自带的几个目录,里面放置的就是根据单词提示的执行任务。这里的任务,通过crontab -l命令都是看不到的。如果有任务计划未按照预期执行,可以检查cron.deny 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@localhost ~]# ls /etc/|grep cron
cron.d/       //系统部分自带会将任务放置在里面
cron.daily/   //每天执行
cron.deny     //不允许执行任务计划的用户
cron.hourly/  //每小时执行
cron.monthly/ //每月执行
crontab       //直接编辑就可以执行
cron.weekly/  //每周执行
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-07-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 运维小路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Linux】周期性任务计划
在 Linux 系统中,周期性任务计划是一项关键的功能,它允许您按照预定的时间表执行任务,无需手动操作。这对于定期备份、日志清理、系统维护等任务非常有帮助。在本文中,我们将深入了解 Linux 中的周期性任务计划,帮助您更好地掌握定时任务的管理。
人不走空
2024/02/21
3030
linux定时运行命令脚本——crontab
Linux中,周期执行的任务一般由cron这个守护进程来处理  ps -ef | grep cron 
阳光岛主
2019/02/19
4.3K0
10.23 linux任务计划cron
Linux任务计划 crontab -u、-e、-l、-r 格式:分 时 日 月 周 user command 文件/var/spool/cron/username 分范围0-59,时范围0-23,日范围1-31,月范围1-12,周1-7 可用格式1-5表示一个范围1到5 可用格式1,2,3表示1或者2或者3 可用格式*/2表示被2整除的数字,比如小时,那就是每隔2小时 要保证服务是启动状态 systemctl start crond.service crontab命令 crontab -e //编辑
运维小白
2018/02/06
2.1K0
Linux任务计划crontab
我们时常会有一些定期定时的任务,如周期性的清理一下/tmp,周期性的去备份一次数据库,周期性的分析日志等等。而且有时候因为某些因素的限制,执行该任务的时间会很尴尬。本课程将带你很好的利用 Linux 系统的计划工具
软测小生
2019/07/05
2.6K0
Linux任务计划crontab
Linux crontab命令
crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。 通常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。
刘亦枫
2020/03/19
2.1K0
Linux 任务计划(cron)
Linux 任务计划是一种允许您在特定时间或间隔时间执行命令或脚本的功能。它可用于自动化各种任务,例如:
神秘泣男子
2024/06/03
2970
【linux命令讲解大全】194.掌握Linux定时任务调度:深入解析crontab命令及其使用技巧
crontab 命令用于提交和管理用户的周期性执行任务,类似于 Windows 下的计划任务。在安装完成操作系统后,默认会安装此服务工具,并自动启动 crond 进程。crond 进程每分钟会定期检查是否有要执行的任务,并自动执行。
全栈若城
2024/03/02
5440
linux crontab 每隔10秒执行一次[通俗易懂]
在LINUX中你应该先输入crontab -e,然后就会有个vi编辑界面,再输入0 3 * * 1 /clearigame2内容到里面 :wq 保存退出。
全栈程序员站长
2022/11/01
9.4K0
Linux命令之Crontab——定时任务
rontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
浩Coding
2020/03/04
1.3K0
Linux之任务计划
用过windows的同学应该都知道在控制面板中有一个“任务计划”选项,我们可以通过向导设置让计算机在某个时间点或者开机时运行某个脚本或者批处理等等,方便我们的日常管理监视工作;同样在Linux系统中,如果我们想在开机时就运行某个操作,可以直接将命令写入/etc/rc.local中,该操作就会在机器开机时运行;如果把自己写的Bash Shell脚本的名称写在/etc/rc.local中,开机后也会执行其操作;也就是说,在Linux启动的最后阶段,系统会执行存于rc.local中的命令;类似于windows里
小小科
2018/05/02
2.6K0
Linux之任务计划
CentOS 6系统crontab计划任务
00 02 * * 6 /sbin/reboot  > /dev/null 2>&1
会长君
2023/04/25
1.6K0
Linux系统之计划任务crontab的基本使用
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
江湖有缘
2023/11/03
1.8K1
Linux系统之计划任务crontab的基本使用
Linux命令之crontab
Linux系统上面有很多计划性的工作,比如在某个时间点需要执行某个动作,在Linux中,一般使用crontab命令来实现控制计划任务,通过crontab 命令,我们可以在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。crontab命令是基于crond这个系统服务的,crond服务是安装Linux系统时自动安装的,它会检查当前系统中是否有要执行的任务。
AsiaYe
2019/11/06
2.5K0
Linux命令之crontab
Linux例行性工作排程 (crontab)
crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠,实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过crond这个工业级程序去调度就行了,crond的可靠性,健壮性,是毫无疑问的。
用户3094376
2018/09/12
8230
linux定时任务crontab详解
0 0 1,15 * 1 表示的是:每月1号和15号的0点0分执行,每周一的0点0分执行。两者是或的关系,但不要有这种写法,很容易产生歧义
章鱼喵
2019/03/06
5.7K0
linux定时任务crontab详解
linux中20个crontab示例
要在 crontab 中添加或更新作业,请使用以下命令。它将在编辑器中打开一个 crontab 文件,可以在其中添加/更新作业。
入门笔记
2022/06/02
1.8K0
Linux 上使用 crontab 设置定时任务及运行 Python 代码不执行的解决方案
在使用 Linux 或者 Windows 的时候,我们有可能需要去定时运行一些代码,比如在每个凌晨备份一下数据库,如果这些操作都由人工控制就显得太傻了,使用 Linux 的 crontab 设置定时任务是一个非常不错的选择。但是我在使用的过程中还是遇到了一些问题。
Hopetree
2022/09/26
2.3K0
计划任务 crontab、at
* * * * * sleep 10; php /home/php/crontab/tolog.php
以谁为师
2019/05/29
1K0
crontab command
Linux 周期性任务 与 Windows 下的计划任务类似,当安装完操作系统后,默认会安装此服务工具,并且会自动启动 crond 进程。crond 进程每分钟会检查是否有要执行的任务,如果有则执行该任务。
恋喵大鲤鱼
2023/10/12
3220
crontab命令详解
一. Crontab 介绍 1、crontab命令的功能是在一定的时间间隔调度一些命令的执行,我理解为windows下的任务计划。 2、/etc/crontab 文件 在/etc目录下有一个cron
行 者
2018/03/26
9790
crontab命令详解
相关推荐
【Linux】周期性任务计划
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验