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

2024-08-21 00:44

本文主要是介绍Linux日常运维-任务计划(crontab),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

作者介绍:简历上没有一个精通的运维工程师。希望大家多多关注作者,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

本小章内容就是Linux进阶部分的日常运维部分,掌握这些日常运维技巧或者方法在我们的日常运维过程中会带来很多方便。主要从以下几个部分来讲解:

Linux日常运维-主机名&hosts

Linux日常运维-history

Linux日常运维-SSHD(一)

Linux日常运维-SSHD(二)

Linux日常运维-ENV(一)

Linux日常运维-ENV(二)

Linux日常运维-任务计划cronttab(本章节)

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

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

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

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

crontab -l

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

crontab -e
 

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

* * * * * command
 

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

0 8 * * * /path/to/script.sh
 

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

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

#一般用的比较少,常用的是删除或者注释任务crontab -r

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

    • 第一个星号表示分钟(0-59)

    • 第二个星号表示小时(0-23)

    • 第三个星号表示日期(1-31)

    • 第四个星号表示月份(1-12)

    • 第五个星号表示星期几(0-7,其中0和7都表示星期日)

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

优先级说明

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

  • 如果在分钟、小时、日期、月份和星期几的位置上都使用了星号(*),表示任务将在每分钟都执行。

  • 如果在分钟位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每小时的特定分钟执行。

  • 如果在小时位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每天的特定小时执行。

  • 如果在日期位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每月的特定日期执行。

  • 如果在月份位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每年的特定月份执行。

  • 如果在星期几位置上使用了特定的数字,而其他位置上使用了星号(*),表示任务将在每周的特定星期几执行。

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

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

每分钟,用 *

每2分钟,则用*/2

每5分钟,则用*/5

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

主要用途

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

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

#凌晨1点执行,可以跟具体的命令,也可以跟脚本路径,注意环境变量有效性* 1 * * * * Command

2.检查进程存活

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

#每2分钟检查一次进程是否正常,如果不正常则执行后续启动或其他动作*/2 * * * * Command

3.定期备份

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

#每天凌晨5点做备份数据库,或者同步文件操作* 5 * * * Command

总结

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

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

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

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

[root@localhost ~]# ls /etc/|grep croncron.d/       //系统部分自带会将任务放置在里面cron.daily/   //每天执行cron.deny     //不允许执行任务计划的用户cron.hourly/  //每小时执行cron.monthly/ //每月执行crontab       //直接编辑就可以执行cron.weekly/  //每周执行

图片

关注微信公众号《运维小路》获取更多内容。

这篇关于Linux日常运维-任务计划(crontab)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1091636

相关文章

Linux进程CPU绑定优化与实践过程

《Linux进程CPU绑定优化与实践过程》Linux支持进程绑定至特定CPU核心,通过sched_setaffinity系统调用和taskset工具实现,优化缓存效率与上下文切换,提升多核计算性能,适... 目录1. 多核处理器及并行计算概念1.1 多核处理器架构概述1.2 并行计算的含义及重要性1.3 并

Linux线程之线程的创建、属性、回收、退出、取消方式

《Linux线程之线程的创建、属性、回收、退出、取消方式》文章总结了线程管理核心知识:线程号唯一、创建方式、属性设置(如分离状态与栈大小)、回收机制(join/detach)、退出方法(返回/pthr... 目录1. 线程号2. 线程的创建3. 线程属性4. 线程的回收5. 线程的退出6. 线程的取消7.

Linux下进程的CPU配置与线程绑定过程

《Linux下进程的CPU配置与线程绑定过程》本文介绍Linux系统中基于进程和线程的CPU配置方法,通过taskset命令和pthread库调整亲和力,将进程/线程绑定到特定CPU核心以优化资源分配... 目录1 基于进程的CPU配置1.1 对CPU亲和力的配置1.2 绑定进程到指定CPU核上运行2 基于

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

Linux下删除乱码文件和目录的实现方式

《Linux下删除乱码文件和目录的实现方式》:本文主要介绍Linux下删除乱码文件和目录的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux下删除乱码文件和目录方法1方法2总结Linux下删除乱码文件和目录方法1使用ls -i命令找到文件或目录

Linux在线解压jar包的实现方式

《Linux在线解压jar包的实现方式》:本文主要介绍Linux在线解压jar包的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux在线解压jar包解压 jar包的步骤总结Linux在线解压jar包在 Centos 中解压 jar 包可以使用 u

linux解压缩 xxx.jar文件进行内部操作过程

《linux解压缩xxx.jar文件进行内部操作过程》:本文主要介绍linux解压缩xxx.jar文件进行内部操作,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、解压文件二、压缩文件总结一、解压文件1、把 xxx.jar 文件放在服务器上,并进入当前目录#

Linux系统性能检测命令详解

《Linux系统性能检测命令详解》本文介绍了Linux系统常用的监控命令(如top、vmstat、iostat、htop等)及其参数功能,涵盖进程状态、内存使用、磁盘I/O、系统负载等多维度资源监控,... 目录toppsuptimevmstatIOStatiotopslabtophtopdstatnmon

PowerShell中15个提升运维效率关键命令实战指南

《PowerShell中15个提升运维效率关键命令实战指南》作为网络安全专业人员的必备技能,PowerShell在系统管理、日志分析、威胁检测和自动化响应方面展现出强大能力,下面我们就来看看15个提升... 目录一、PowerShell在网络安全中的战略价值二、网络安全关键场景命令实战1. 系统安全基线核查

在Linux中改变echo输出颜色的实现方法

《在Linux中改变echo输出颜色的实现方法》在Linux系统的命令行环境下,为了使输出信息更加清晰、突出,便于用户快速识别和区分不同类型的信息,常常需要改变echo命令的输出颜色,所以本文给大家介... 目python录在linux中改变echo输出颜色的方法技术背景实现步骤使用ANSI转义码使用tpu