Linux进阶之路————crond定时任务调度

引言

crond 的概念和 crontab 是不可分割的。crontab 是一个命令,而 crond 是Linux 下用来周期性执行某种任务或等待处理某些事件的守护进程,类似于 Windows 下的计划任务。

当装完操作系统之后,默认便会安装 crond 服务工具,并会自动启动 crond 进程,crond 进程每分钟定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。

Linux 下的定时任务种类

种类使用场景
at适合仅执行一次就结束的调度命令,需要启动一个后端的atd服务。 
crontab最常用的定时任务,需要启动一个服务crond才行,crond服务通过crontab命令实现 
anacron无法周期性执行,只能以天为周期,但有个特点,在关机状态下未>执行的任务,下次开机时可以补上执行

crontab 工作原理

在 Linux 中,crontab 是最常用的定时任务工具,系统会每分钟循环检查任务列表,默认系统中可以登录的用户,都可以使用 crontab 定义计划任务。另外,还可以通过 /etc/cron.allow 文件来限制权限

系统任务调度和用户任务调度

crontab 设置定时任务可以分为两类:

系统任务调度:指的是系统级别的周期性任务,如定期写磁盘、日志清理。/etc/crontab 文件就是系统任务调度的配置文件。

用户任务调度:通过 crontab -e 进行编写的任务,都属于用户任务调度,这类任务可以包括:用户数据备份、定时邮件提醒等。Linux 系统会将所有用户设置的定时任务存放到 /var/spool/cron 目录中,文件名与用户名一致:

执行 crontab -r  后,即直接删除用户 crontab 文件:

cron 表达式

【基本含义】

项目含义范围
第一个*一小时当中的第几分钟0-59
第二个*一天当中的第几小时0-23
第三个*一个月当中的第几天1-31
第四个*一年当中的第几月1-12
第五个*一周当中的星期几0-7(0和7 都代表星期日)

【特殊符号含义】

特殊符号含义
*任何时间。如第一个 * 代表每分钟都执行。
不连续的时间,如:0 8,12 * * * ,表示每天8:00和12:00各执行一次。
-连续的时间段,如:0 5 * * 1-6,表示每周一到周六的5:00执行。
/间隔时间,如:*/10 * * * * , 表示每隔 10 分钟执行一次,不看时间点。

crontab 基本应用

【语法】

crontab [-u user] [ -e | -l | -r ]

【常用参数】

-e 编辑 crontab 定时任务

-l  查询crontab 定时任务

-r  删除当前用户所有的 crontab 任务(终止任务调度)

【服务操作】

service crond restart 或 /sbin/service crond restart  重启任务调度服务 

service crond stop 关闭服务

service crond start 启动服务

service crond reload 重新载入配置

查看crontab 运行日志

/var/log/cron-日期  文件中,可以看到定时任务的执行情况:

应用案例1

【案例要求】将 /etc 目录下的文件列表每分钟追加到 /tmp/to.txt 文件中。

【操作步骤】

1) cron  -e

2) */1 * * * *  ls -l /etc >>/tmp/to.txt

3)保存退出,即可生效

 

应用案例2

【案例要求】每天凌晨2点,将mysql数据库testdb,备份到文件mydb.bak中

1)先编写一个脚本文件,/home/mytask3.sh

/usr/local/mysql/bin/mysqldump -u root -proot testdb > /tmp/mydb.bak

2)给mytask3.sh 一个可执行权限

chmod 744 /home/mytask3.sh

3)crontab -e

4)0 2 * * * /home/mytask3.sh

【注意】如果直接执行类似 * * * * * ls  /home  或 * * * * * echo 'hello  world' 这样的任务,Linux会每分钟发一封邮件给当前用户。保存在 /var/spool/mail/root 中。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558776.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Maven配置_01

1 下载相应的Maven--->地址:http://maven.apache.org/download.cgi 2 将下载的压缩包解压到自己指定的文件夹 C:\OS\apache-maven-3.5.2 3 配置环境变量 3.1 此电脑-->鼠标右键-->属性-->高级系统设置-->环境变量 3.2 用户变量或者系统变量中选择 新建 输入…

Linux进阶之路————Linux磁盘分区与挂载

引言 对于Linux来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录 / ,一个独立且唯一的文件结构,Linux 中每个分区都是用来组成整个文件系统的一部分。 Linux采用一种叫“载入”的处理方法&#xff…

Spring jndi连接数据库

Spring jndi连接数据库JNDI 即Java命名目录接口 Java Naming Dictory Interface Spring.xml配置文件 <bean name"dbsource1" class"org.springframework.jdbc.core.JdbcTemplate"><property name"jndi" value"java:comp/env/jdbc/…

Maven学习(五)————依赖的特性辨析

引言 在Maven 中&#xff0c;依赖有一些特性必须我们掌握&#xff0c;如依赖的传递性。 一、依赖的传递性 其实依赖的传递性非常好理解。 上图&#xff0c;如果 Maven 项目 B 已经依赖了 C &#xff0c;A 又依赖了 B&#xff0c;那么 A 不需要再在自己的pom 中重复引入 C 的…

ZXing生成二维码

pom.xml <!-- https://mvnrepository.com/artifact/com.google.zxing/core --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.3.2</version></dependency> ​ ​<!-- ht…

Java NIO————NIO 简介

引言 Java NIO (New IO&#xff0c;或Non Blocking IO) 是从Java1.4 版本开始引入的一个新的 IO API&#xff0c;可以代替标准的Java IO API。 NIO与原来的IO有同样的作用和目的&#xff0c;但是使用的方式完全不同。 NIO支持面向缓冲区、基于通道的IO操作。NIO将以更加高效…

MySql主从同步最小配置

MySql主从同步最小配置 MySql配置文件配置window: my.ini centos: my.cnf主数据库配置 #配置数据库的唯一标识符,一般1位主库,从库为ip地址最后一位 server-id 1 #启用二进制日志,对应mysql-bin.xxxxx文件 log-bin mysql-bin #需要同步的数据库名 binlog-do-dbtest1 #不需要…

解决pom文件第一行报错(unknown)-亲测有效

原文链接&#xff1a;https://blog.csdn.net/u010947534/article/details/93743582 问题&#xff1a; Eclipse导入maven项目时&#xff0c;或者新建一个springboot项目时&#xff0c;pom.xml文件第一行报错&#xff0c;没有错误信息提示&#xff0c;就一个Unknown&#xff0c…

Oracle中start with xx connect by prior 语句解析

Oracle中start with xx connect by prior 语句解析 ​ Oracle这种的start with语句主要对B型树的数据进行递归查询.可以指定数据树上的任一节点,然后查找到它所有的子节点或者父节点. ​ 现在有如下图的数据: 我们先想数据库插入数据,这里用到oracle的批量插入写法# 1 建表 CRE…

Spring Boot————Profile配置

引言 Spring Boot 的Profile配置&#xff0c;可以极大简化配置难度&#xff0c;可以有多种配置形式&#xff0c;根据位置有不同的生效方式。 探讨问题 Spring Boot 的 Profile 配置是为了解决不同环境可能存在的多种配置问题。 举例来说明的话&#xff0c;就是当我们开发完…

Enum的简单使用

package cn.silica.vo;/*** author laibaocen*/ public enum Separator {/*** 枚举值 大写* 如果只有枚举值,那么最后一个枚举值后可以不加分号*/SEMICOLON(0,";","分号"),COLON(1,":","冒号"),CONNECTIVE (2,"-","破折…

Java NIO ———— Buffer 缓冲区详解

引言 缓冲区是一个用于特定基本类型的容器。由java.nio 包定义&#xff0c;所有缓冲区都是 Buffer 抽象类的子类。 Java NIO 中的 Buffer &#xff0c;主要用于与NIO 通道进行交互。数据从通道存入缓冲区&#xff0c;从缓冲区取出到通道中。 一、创建缓冲区 缓冲区的本质是 …

基本类型理解巩固及补码原理总结

引言 本篇文章属于计算机基础通识&#xff0c;主要讨论&#xff1a;有符号类型、无符号类型的区别&#xff0c;byte、int 等类型的取值范围&#xff0c;最大值最小值的计算公式的由来&#xff0c;原码、反码、补码转换公式。 有符号类型与无符号类型 在 Java 中的八大基本类…

2021年3月15日_读书|总结笔记目录

深入理解Java虚拟机*第三版 慢慢填坑第一部分*自动内存管理 第二部分*虚拟机执行子系统 类文件结构 无关性的基石

LeetCode(#118)————杨辉三角形

问题描述 给定一个非负整数 numRows&#xff0c;生成杨辉三角的前 numRows 行。 在杨辉三角中&#xff0c;每个数是它左上方和右上方的数的和。 示例: 输入: 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1] ] 实现方法 class Solution {public List<List<Intege…

数据结构与算法————九九乘法表

问题描述 通过Java语言实现九九乘法表的输出。使用一个for 循环和两个for循环。 一个for循环 public static void oneFor() {for (int i 1, j 1; i < 9; j) {System.out.print(j "*" i "" i * j "\t");if (j i) {i;j 0;System.ou…

JVM001_类文件结构

无关性的基石 实现语言无关性的基础是虚拟机和字节码存储格式。Java虚拟机不与任何语言绑定&#xff08;包括Java&#xff09;&#xff0c;它只与‘Class文件’这种特定的二进制文件格式所关联。Class文件中包含了Java虚拟机指令集、符号表以及其它辅助信息。出于安全考虑&…

Maven学习(六)————企业Maven项目最佳实践

引言 在《Maven学习&#xff08;三&#xff09;————Maven核心概念&#xff08;二&#xff09;》中&#xff0c;学到了Maven 继承和 Maven 聚合的概念&#xff0c;这两个概念&#xff0c;解决的问题分别是&#xff1a; 1、解决一些公共依赖统一版本的问题。 2、统一打包部署…

Oracle查询表|注释|字段|字段注释

当前用户所有用户DBA备注user_tablesall_tablesdba_tables表user_tab_commentsall_tab_commentsdba_tab_comments表注释user_tab_columnsall_tab_columnsdba_tab_columns表字段user_col_commentsall_col_commentsdba_col_comments字段注释user_objectsall_objectsdba_objects可…

JVM003_属性表

属性表 预备知识 javac -g Xxx.java 在生成class文件的时候生成所有调试信息javap -v Xxx.class 输出附加信息 属性表结构 类型名称数量备注u2attribute_name_index1属性名称索引&#xff0c;指向一个CONSTANT_Utf8_info型常量的索引u4attribute_length1该属性表的长度u1in…