Linux[crontab命令]–管理定时任务

定时任务的软件的种类:

  • 1、Linux操作系统自带的软件:crontab
  • 2、第三方的定时任务软件:atd、anacron
  • 3、WEB定时软件:PPGo_Job
  • 4、基于etcd的定时任务系统

下面了解 Linux操作系统自带的软件:crontab。

cron 服务(守护进程)在系统后台运行,并且会持续地检查 /etc/crontab 文件和 /etc/cron.*/目录。它同样也会检查 /var/spool/cron/ 目录。

一、crontab命令

crontab命令来自英文词组“cron table”的缩写,其功能是管理定时计划任务。

用户只要能够按照正确的格式(分、时、日、月、星期、命令)写入到配置文件中,那么就会按照预定的周期时间自动地执行下去。

1、定时目录

cron默认配置了调度任务,分别为:hourly、daily、weekly、mouthly,目录分别为:

/etc/cron.d/	将所有的脚本文件放在此处,并从 /etc/crontab 文件中调用它们。
/etc/cron.daily/	运行需要 每天 运行一次的脚本
/etc/cron.hourly/	运行需要 每小时 运行一次的脚本
/etc/cron.monthly/	运行需要 每月 运行一次的脚本
/etc/cron.weekly/	运行需要 每周 运行一次的脚本

2、Crontab日志路径

/var/log/cron目录中只会记录是否执行了某些计划的脚本,但是具体执行是否正确以及脚本执行过程中的一些信息则 Linux会每次都发邮件到该用户下。

[root@centos7 local]# ll /var/log/cron*
-rw------- 1 root root 10876 Oct  9 16:04 /var/log/cron
-rw------- 1 root root 50521 Sep 17 03:01 /var/log/cron-20230917
-rw------- 1 root root 50964 Sep 24 03:01 /var/log/cron-20230924
-rw------- 1 root root 50524 Oct  1 03:01 /var/log/cron-20231001
-rw------- 1 root root 50563 Oct  8 03:01 /var/log/cron-20231008

3、定时任务配置文件

/etc/crontab文件

Crontab命令在线验证工具:https://tool.lu/crontab

在这里插入图片描述

[root@centos7 local]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root# For details see man 4 crontabs# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed[root@centos7 local]#

4、crontab命令

基本语法格式:crontab [参数] [对象]

常用参数:

  • -e:编辑定时任务(默认是当前用户)。
  • -l:查看定时任务任务列表(默认是查看当前用户的定时任务)。
  • -r:删除定时任务(默认是当前用户)。
  • -i:删除前询问用户是否确认。
  • -u:设置用户名,指定用户名查看。

示例如下:

[root@centos7 local]# crontab -l
46 0 * * * "/root/.acme.sh"/acme.sh --cron --home "/root/.acme.sh" > /dev/null

注意:crontab -l显示 no crontab for root,解决办法:

在 root 用户下输入 crontab -e,按ESC,然后:wq回车。再次输入crontab命令就行了。

主要原因是由于Liunx服务器 第一次使用 crontab ,还没有生成对应的文件导致的,执行了 编辑(crontab -e)后 就生成了这个文件,即初始化一下就行。

二、示例

使用 crontab定时任务实现备份功能并保留最近10天的备份副本,备份文件夹采用日期格式。

[root@centos7 local]# tree ./temp1
./temp1
├── files
│   ├── demo.log
│   └── xxx_dir
└── test1.log2 directories, 2 files

1、编写shell脚本

创建备份文件夹(文件夹日期格式),然后复制相关文件到备份文件夹中,最后删除10天之前的备份文件夹。

[root@centos7 temp2]# cat ./xxx_backup1.sh
#!/bin/bash
#
# This script is executed at the end of each multiuser runlevel. Make
# sure that the script will "exit 0" on success or any other value on
# error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.DATE=`date +%Y-%m-%d`# create backup dir
mkdir /usr/local/temp2/xxx_backup/${DATE}# backup file
cp -rf /usr/local/temp1/files/        /usr/local/temp2/xxx_backup/${DATE}/
cp -f  /usr/local/temp1/test1.log     /usr/local/temp2/xxx_backup/${DATE}/# find and delete file(time lt now-10)
find /usr/local/temp2/xxx_backup/ -maxdepth 1 -mtime +10 -type d -exec rm -rf {} \;exit 0
[root@centos7 temp2]#
# 分配权限
[root@centos7 temp2]# chmod 777 xxx_backup1.sh

可以手动执行脚本测试。

[root@centos7 temp2]# tree
.
├── xxx_backup
└── xxx_backup1.sh1 directory, 1 file
# 手动执行脚本
[root@centos7 temp2]# ./xxx_backup1.sh
[root@centos7 temp2]# tree
.
├── xxx_backup
│   └── 2023-10-10
│       ├── files
│       │   ├── demo.log
│       │   └── xxx_dir
│       └── test1.log
└── xxx_backup1.sh4 directories, 3 files

2、添加定时任务

使用 crontab -e命令添加定时任务。

每天夜里12点05分执行一次我们的脚本,添加下面内容保存即可:

[root@centos7 temp2]# crontab -e
crontab: installing new crontab
[root@centos7 temp2]# crontab -l
05 0 * * *   root /usr/local/temp2/xxx_backup1.sh

– 求知若饥,虚心若愚。

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

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

相关文章

正则表达式(Regular Expression)学习网址分享

正则表达式(Regular expressions,也叫REs、 regexs 或regex patterns),是一种文本模式,包括普通字符(例如,a 到z 之间的字母)和特殊字符(称为"元字符"&#xf…

深度学习DAY3:激活函数

激活函数映射——引入非线性性质 h (Σ(W * X)b) yσ(h) 将h的值通过激活函数σ映射到一个特定的输出范围内的一个值,通常是[0, 1]或[-1, 1] 1 Sigmoid激活函数 逻辑回归LR模型的激活函数 Sigmoid函数&#xff0…

人工智能辅导程序 Mr. Ranedeer AI Tutor

人工智能技术正在不断发展,并在各个领域发挥着越来越重要的作用。在教育领域,人工智能也得到了广泛的应用,其中包括人工智能辅导程序。 Mr. Ranedeer AI Tutor 是一个开源的人工智能辅导程序,使用 OpenAI 的 GPT-4 语言模型来提供…

vue踩坑

文章目录 1.error1 1.error1 在项目里面前端报这个错,有点蒙 确定了错误是在遍历数组中的图片部分 猜测可能是一开始的时候没有把photoList在form中写出来,form里面啥没有,导致渲染的时候有问题 所以以后在页面上渲染数据的都在data里…

hive3.1核心源码思路

系列文章目录 大数据主要组件核心源码解析 文章目录 系列文章目录大数据主要组件核心源码解析 前言一、HQL转化为MR 核心思路二、核心代码1. 入口类,生命线2. 编译代码3. 执行代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 对大…

读书笔记:多Transformer的双向编码器表示法(Bert)-4

多Transformer的双向编码器表示法 Bidirectional Encoder Representations from Transformers,即Bert; 第二部分 探索BERT变体 从本章开始的诸多内容,以理解为目标,着重关注对音频相关的支持(如果有的话)…

【工具软件】mediamtx——网页、vue3项目中播放 rtsp 视频流(支持265转码)

声明 本文只做 mediamtx 的使用实操,请务必参考下面的博客,,我也参考下面的大佬博客,感谢唯一602的无私分享: 在web页面中直接播放rtsp视频流,重点推荐:mediamtx,不仅仅是rtsp mediamtx 介绍 …

RabbitMQ与springboot整合

1、基本概念 Server:接收客户端的连接,实现AMQP实体服务;Connection:连接,应用程序与Server的网络连接,TCP连接;Channel:信道,消息读写等操作在信道中进行。客户端可以建…

Linux[find命令]-根据路径和条件搜索指定文件并删除

一、find命令简介 find命令:用于根据给定的路径和条件查找相关文件或目录,参数灵活方便,且支持正则表达式,结合管道符后能够实现更加复杂的功能。 基本语法格式:find pathname -options 搜索内容 [其他选项] pathname…

Python 自动化Web测试

限于作者水平有限,以下内容可能是管窥之见,希望大家高抬贵手,且让我斗胆抛砖引玉。 公司产品迪备主要是通过网页操作来进行数据库的备份与恢复,监控与管理,因此在测试的过程中,可以用python测试脚本来模拟…

LLVM(5)ORC实例分析

ORC实例总结 总结 因为API茫茫多,逻辑上的一些概念需要搞清,编码时会容易很多。JIT的运行实体使用LLVMOrcCreateLLJIT可以创建出来,逻辑上的JIT实例。JIT实例需要加入运行库(依赖库)和用户定义的context(…

最新数据库流行度最新排名(每月更新)

2023年10月数据库流行度最新排名 TOP DB顶级数据库索引是通过分析在谷歌上搜索数据库名称的频率来创建的 一个数据库被搜索的次数越多,这个数据库就被认为越受欢迎。这是一个领先指标。原始数据来自谷歌Trends 如果您相信集体智慧,那么TOP DB索引可以帮…

flutter 常用组件:文本、图片和按钮

文章目录 文本控件富文本控件图片本地图片网络图片按钮文本控件 ##一’码’当先 Text(这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本这是一段文本,textAlign:TextAlign.center,style: TextStyle(fontWeight: FontWeight.bold, font…

BC v1.2充电规范

1 JEITA Reference to https://www.mianbaoban.cn/blog/post/169964 符合 JEITA 规范的锂离子电池充电器解决方案 2 Battery Fuel Gauge 2.1 Cycle Count(充放电循环次数) 此指令回传一只读字段,代表电芯组已经历的完整充放电循环数。当放电容…

java 每种设计模式的作用,与应用场景

文章目录 前言java 每种设计模式的作用,与应用场景 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。   而且听说点赞的人每天的运气都不会太差,实在白嫖的话&#xff0…

2023品牌新媒体矩阵营销洞察报告:流量内卷下,如何寻找增长新引擎?

近年来,随着移动互联网的发展渗透,短视频、直播的兴起,新消费/新零售、兴趣电商/社交电商等的驱动下,布局线上渠道已成为绝大多数品牌的必然选择。 2022年,越来越多的品牌加入到自运营、自播的行列中,并且从…

SR660 V2 ESXI 的安装

连接BMC端口 登录BMC管理界面(需要设置三个参数: IP DNS RAID ) 在网络设置里有IP DNS 的设置 配置IP 配置DNS Ctrl shift 选中物理驱动器配置里的两块磁盘 否则会弹出报错:最小值2物理设备应该按照所选的RAID等级来配置 配置…

java.util.concurrent.locks.Condition详解

Condition翻译成中文是“条件”,一般我们称其为条件变量,每一个Condition对象都通过链表保存了一个队列,我们称之为条件队列。 当然了,这里所说的Condition对象一般指的是Condition接口的实现类ConditionObject,比如我…

如何在 Spring Boot 中进行数据备份

在Spring Boot中进行数据备份 数据备份是确保数据安全性和可恢复性的关键任务之一。Spring Boot提供了多种方法来执行数据备份,无论是定期备份数据库,还是将数据导出到外部存储。本文将介绍在Spring Boot应用程序中进行数据备份的不同方法。 方法1: 使用…

CentOS 7 安装 MySQL8.0

由于centOS7中默认安装了 MariaDB , 需要先进行卸载 # 查看版本 rpm -qa | grep mariadb # 卸载 rpm -e --nodeps 文件名 # 查看是否卸载干净 rpm -qa | grep mariadb安装wget: yum -y install wget进入/usr/local/下: cd /usr/local/新建mysqlrpm文…