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使用nload监控网络流量的方法

《Linux使用nload监控网络流量的方法》Linux中的nload命令是一个用于实时监控网络流量的工具,它提供了传入和传出流量的可视化表示,帮助用户一目了然地了解网络活动,本文给大家介绍了Linu... 目录简介安装示例用法基础用法指定网络接口限制显示特定流量类型指定刷新率设置流量速率的显示单位监控多个

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

Linux流媒体服务器部署流程

《Linux流媒体服务器部署流程》文章详细介绍了流媒体服务器的部署步骤,包括更新系统、安装依赖组件、编译安装Nginx和RTMP模块、配置Nginx和FFmpeg,以及测试流媒体服务器的搭建... 目录流媒体服务器部署部署安装1.更新系统2.安装依赖组件3.解压4.编译安装(添加RTMP和openssl模块

linux下多个硬盘划分到同一挂载点问题

《linux下多个硬盘划分到同一挂载点问题》在Linux系统中,将多个硬盘划分到同一挂载点需要通过逻辑卷管理(LVM)来实现,首先,需要将物理存储设备(如硬盘分区)创建为物理卷,然后,将这些物理卷组成... 目录linux下多个硬盘划分到同一挂载点需要明确的几个概念硬盘插上默认的是非lvm总结Linux下多

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

Linux之进程状态&&进程优先级详解

《Linux之进程状态&&进程优先级详解》文章介绍了操作系统中进程的状态,包括运行状态、阻塞状态和挂起状态,并详细解释了Linux下进程的具体状态及其管理,此外,文章还讨论了进程的优先级、查看和修改进... 目录一、操作系统的进程状态1.1运行状态1.2阻塞状态1.3挂起二、linux下具体的状态三、进程的

Linux编译器--gcc/g++使用方式

《Linux编译器--gcc/g++使用方式》文章主要介绍了C/C++程序的编译过程,包括预编译、编译、汇编和链接四个阶段,并详细解释了每个阶段的作用和具体操作,同时,还介绍了调试和发布版本的概念... 目录一、预编译指令1.1预处理功能1.2指令1.3问题扩展二、编译(生成汇编)三、汇编(生成二进制机器语

Rsnapshot怎么用? 基于Rsync的强大Linux备份工具使用指南

《Rsnapshot怎么用?基于Rsync的强大Linux备份工具使用指南》Rsnapshot不仅可以备份本地文件,还能通过SSH备份远程文件,接下来详细介绍如何安装、配置和使用Rsnaps... Rsnapshot 是一款开源的文件系统快照工具。它结合了 Rsync 和 SSH 的能力,可以帮助你在 li

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed