Linux 计划任务(at与crontab)

news2024/12/23 7:50:14

一次性计划任务 at

Linux 中的【 at 命令是用来创建一次性计划任务的, at  命令有一个服务  atd  以后台的模式运行,通过检查当前的时间来决定是 否运行  " 计划 ,默认情况下, atd  服务每 60 秒检 查一次,有 " 计划 " 时, 则运行此 " 计划 "
示例: 
写一个一次性计划任务: 下午五点进行yum源文件的备份
# 使用 at 命令前检查 atd 服务是否已运行
$ systemctl status atd
● Active: active (running) 


# 写一个备份yum源的脚本
$ cat backup.repo.sh 
#!/bin/bash
cp -r /etc/yum.repos.d/ /etc/yum.repo.bak/yum.repo.d-`date "+%Y-%m-%d-%H:%M:%S"`.bak

# 关闭ntp时间同步以便测试
$ timedatectl set-ntp 0  

# 设置下午5点执行计划任务
$ at 5:05PM   
at> /root/backup.repo.sh                                  
at> <EOT>    # ctrl + d 保存退出
job 2 at Wed May 31 17:05:00 2023

# 设置系统时间到计划任务的前一分钟
$ date -s "2023-5-31 16:59:00"  
Wed May 31 15:59:00 CST 2023

# 过一分钟查看 已备份成功
$ ls /etc/yum.repo.bak
yum.repo.d-2023-05-31-17:00:54.bak

at 常用命令

# atq查看at计划任务
$ atq
10      Fri Jun  2 17:33:00 2023 a root
9       Thu Jun  1 17:33:00 2023 a root

# at -c 查看计划详细信息
$ at -c 9   

# atrm 删除计划任务
$ atrm 9

# 进入 at 交互式
$ at time

一次性计划任务使用控制:
操作系统中可能有多个用户使用at计划任务,可以设置哪些用户可以使用,哪些用户不可使用at计划任务他,配置文件位于 /etc/at.allow(白名单)   /etc/at.deny(黑名单)
# 使用 at.deny 禁用某个用户

# 不允许某个用户使用at
$ cat /etc/at.deny
user2
$ su - user2
$ at now
You do not have permission to use at.

# 允许某个用户使用at | at.allow 优先于 at.deny
$ cat /etc/at.allow
user2
$ su - user2
$ at now
at> ls 
at> <EOT>
job 12 at Wed May 31 17:36:00 2023

周期性计划任务 crontab *

周期性计划任务相比一次性计划任务来说相当于定制周期性的  " 计划 来执行某个任务,比如每分钟执行,每小时执行, 每天执行,每周执行,每月执行,每天的03:00 执行,每周三 02:12 执行等等……
示例:  写备份脚本来实现每分钟备份一次yum源文件,且当备份超过5个文件时自动清理最旧的备份文件
# 编写一个备份yum源文件的脚本
$ cat backup.repo.sh 
#!/bin/bash
cp -r /etc/yum.repos.d/ /etc/yum.repo.bak/yum.repo.d-`date "+%Y-%m-%d-%H:%M:%S"`.bak

i=`ls /etc/yum.repo.bak | wc -l`
if [ $i -ge 5]
then
for i in  `ls -tr /etc/yum.repo.bak | head -1`
do
rm -rf /etc/yum.repo.bak/$i
done
fi

$ crontab -e 
* * * * *  sh /root/backup.repo.sh   # 每分钟执行一次脚本

# ls 命令  
-t 按时间排序,从最新开始排  
-r 倒叙
创建周期性计划任务使用的是 crontab 命令,常用的crontab命令如下:
crontab -e             为编辑当前shell用户的计划任务。
crontab -e -u user2    为编辑user2用户的计划任务,只有root用户可以编辑其他人的计划任务
crontab -l             为列出当前用户的所有计划任务
crontab -l -u user2    为列出user2用户的所有计划任务
编辑计划任务的操作和 vim 编辑一个文件一样,但是要遵循特定的格式才能让计划任务生效,每一行都代表一个计划任 务,标准的格式如下:

一些计划任务格式示例

* * * * *                    # 每分钟执行一次
0 * * * *                    # 每小时整点执行一次
0 1 * * *                    # 每天1点整执行一次
* 1 * * *                    # 每天1点这个小时中的每分钟执行一次
* * 1 * *                    # 每月1号每分钟执行一次
* * * 1 *                    # 每年1月份每分钟执行一次
* * * * 0                    # 每周日每分钟执行一次
0/5 * * * *                  # 每5分钟执行一次
0/5 0/2 * * *                # 每隔2小时就隔5分钟执行一次
1,10 * * * *                 # 每小时的第1分钟和第10分钟各执行一次
1-15 * * * *                 # 每小时的第1~15分钟内每分钟执行一次
1,2,5-8 0/2 10,15 4-6 *      # 每年4月~6月,4月,5月,6月的10号和15号这2天,从0点开始,包括0点,每两个小时的第1分钟和第2分钟,第5~8分钟分别运行一次

精确到秒级
* * * * *  sleep 5;          # 每分钟的每5秒执行一次

crontab 计划任务使用控制

黑名单
$ cat /etc/cron.deny 
user2
$ su - user2
$ crontab -e
You (user2) are not allowed to use this program (crontab)
See crontab(1) for more information

白名单(优先)
$ cat /etc/cron.allow
user2
$ su - user2
$ crontab -l

考题 *

1. 配置计划任务,以用户harry的身份每2分钟执行一次命令 echo hello

# 编辑crond任务
$ crontab -e -u harry
*/2 * * * * echo hello
$ crontab -l -u harry
*/2 * * * * echo hello

# 检查cron是否开机自启
$ systemctl is-enabled crond
enabled
$ systemctl is-active crond
active

2.配置 cron 作业,该作业每隔 5 分钟运行并执行以下命令:logger "EX200 in progress",以用户 natasha 身份运行

# 编辑计划任务
$ crontab -e -u natasha
*/5 * * * * logger "EX200 in progress"
$  crontab -l -u natasha
*/5 * * * * logger "EX200 in progress"

# 检查下服务状态
$ systemctl is-enabled crond
enabled
$ systemctl is-active crond
active

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

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

相关文章

【Web服务应用】Nginx服务

Nginx服务 一、Nginx概述1.1Nginx特点1.2Nginx作用1.3Nginx与Apache的差异 二、Nginx进程模型三、编译安装Nginx3.1Nginx服务的检查、启动、停止&#xff0c;重载3.2平滑升级3.3把nginx进程加入到系统服务当中 四、Nginx服务的主配置文件nginx.conf4.1补充什么是IO多路复用4.2根…

R语言:移动平均计算及绘图

问题描述 现在有一个分日期记录DAU的数据&#xff0c;现在需要绘制其360,180,90,30,7日移动平均值&#xff0c;来观测消除了波动干扰的DAU趋势 (实际移动在股价趋势图上非常常见) 原始数据格式如下&#xff1a; day &#xff08;character&#xff09; dau &#xff08;int…

Docker+Jenkins+Gitee自动化部署maven单模块项目

1.简介 各位看官老爷&#xff0c;本文为Jenkins实战&#xff0c;注重实际过程&#xff0c;阅读完会有以下收获&#xff1a; 了解如何使用Docker安装Jenkins了解如何使用Jenkins部署maven项目了解如何使用JenkinsGitee实现自动化部署 2.Jenkins介绍 相信&#xff0c;正在读这…

2023年上半年软件设计师上午真题及答案解析

1.计算机中&#xff0c;系统总线用于( )连接 A.接口和外设 B.运算器&#xff0c;控制器和寄存器 C.主存、外设部件 D.DMA控制器和中断控制器 2.在由高速缓存、主存和硬盘构成的三级存储体系中&#xff0c;CPU执行指令时需要读取数据&#xff0c;那么DMA控制…

深入理解Linux虚拟内存管理(一)

系列文章目录 Linux 内核设计与实现 深入理解 Linux 内核&#xff08;一&#xff09; 深入理解 Linux 内核&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;一&#xff09; Linux 设备驱动程序&#xff08;二&#xff09; Linux 设备驱动程序&#xff08;三&#xf…

ubantu换配置源

文章目录 1.配置镜像源位置2.进入终端&#xff0c;切换到/home/user/etc/apt/3.默认这个文件是只读的&#xff0c;我们修改一下权限4.修改之前&#xff0c;我们先备份一下系统原来配置的源5.开始修改&#xff0c;打开/etc/apt/sources.list文件&#xff0c;将原来的内容删除&am…

chatgpt赋能python:Python代码怎么打包-全面介绍

Python 代码怎么打包 - 全面介绍 Python 是一种高效、易学易用、灵活多变的编程语言。对于 Python 开发者来说&#xff0c;如何将其编写的程序打包是一个必须掌握的技能。本文将着重介绍 Python 代码打包的方法及其优势&#xff0c;并提供一些实用的工具和技巧。 什么是打包?…

六级备考17天|2017年12月三套真题|翻译与写作|20:45~21:00

目录 第一套 翻译&#xff1a;太湖 中文 英文 词汇 作文 谚语题&#xff1a;respect others, and you will be respected 第二套 翻译&#xff1a;青海湖 中文 英文 词汇 第一套 翻译&#xff1a;太湖 中文 英文 词汇 太湖 Lake Tai 淡水湖 fre…

python+vue学生选课学习成绩分析及可视化分析系统

但目前国内的学习成绩分析及可视化分析信息仍然都使用人工管理&#xff0c;随着学校规模越来越大&#xff0c;同时课程信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代的变化&#xff0c;而学习成绩分析及可视化分析能很好地解决这一问题&#xff0c;轻松应对学习成…

2020第十一届蓝桥杯Python组国赛【真题+解析+代码】

&#x1f381;2020第十一届蓝桥杯python组国赛真题 &#x1f680; 真题练习&#xff0c;冲刺国赛 &#x1f680; 2020年第十一届蓝桥python组国赛真题解析代码 博观而约取&#xff0c;厚积而薄发 &#x1f3c6;国赛真题目录 文章目录 &#x1f381;2020第十一届蓝桥杯python组国…

本地部署Jellyfin影音服务器【公网远程影音库】

文章目录 1. 前言2. Jellyfin服务网站搭建2.1. Jellyfin下载和安装2.2. Jellyfin网页测试 3.本地网页发布3.1 cpolar的安装和注册3.2 Cpolar云端设置3.3 Cpolar本地设置 4.公网访问测试5. 结语 转载自cpolar极点云的文章&#xff1a;零基础搭建私人影音媒体平台【远程访问Jelly…

华为OD机试真题 Java 实现【数组的中心位置】【2023Q1 100分】

一、题目描述 给你一个整数数组nums,请计算数组的中心位置,数组的中心位置是数组的一个下标,其左侧所有元素相乘的积等于右侧所有元素相乘的积。数组第一个元素的左侧积为1,最后一个元素的右侧积为1。如果数组有多个中心位置,应该返回最靠近左边的那一个,如果数组不存在…

chatgpt赋能python:Python代码转为C语言——提高效率的必经之路

Python代码转为C语言——提高效率的必经之路 Python是一种高级编程语言&#xff0c;具有易学易用的优点&#xff0c;因此越来越多的程序员选择使用Python来开发应用程序和脚本。但是&#xff0c;在开发高性能应用程序时&#xff0c;Python的效率问题会成为拦路虎。因此&#x…

每日一题——逆波兰表达式求值(前缀、中缀、后缀表达式的说明,库函数atoi()的解析)

文章目录 每日一题逆波兰表达式求值中缀&#xff0c;前缀&#xff08;波兰&#xff09;&#xff0c;后缀&#xff08;逆波兰&#xff09;表达式的基本概念逆波兰表达式的优点和计算方法优点计算方法 思路函数原型如何将数字入栈库函数atoi() 实现代码 每日一题 逆波兰表达式求…

chatgpt赋能python:Python代码转换:如何将代码从Python2转换为Python3

Python 代码转换&#xff1a;如何将代码从 Python 2 转换为 Python 3 作为一位有10年 Python 编程经验的工程师&#xff0c;我们都知道 Python 的两个主要版本&#xff1a;Python 2 和 Python 3。不过&#xff0c;Python 2 已于2020年正式停止支持&#xff0c;因此&#xff0c…

MySQL-7-权限与密码

一、用户授权与权限撤销 1.1、用户授权: 赋予权限:grant all on *.* to root192.168.4.% identified by "123456";从网络访问本地数据库时:只有 增删改查权限,本地登录则有所有权限。 新建用户,并赋予权限:格式&#xff1a;grant 权限列表 on 库名.表名 to 用户…

图数据库的一些概览

图数据库 图数据库是一种根据节点和边存储数据的数据库。数据以非常灵活的方式存储&#xff0c;无需遵循预定义的模型。该图形成了两个节点之间的关系&#xff0c;这种关系可以是有向的也可以是无向的。这些数据库旨在处理数据/节点之间的复杂关系。 节点用于存储数据。每个节…

chatgpt赋能python:Python-高效的SEO工具

Python - 高效的SEO工具 Python作为一种高效且易于学习的编程语言&#xff0c;广泛应用于各种领域&#xff0c;包括机器学习、数据分析、网站开发等。Python的灵活性和可扩展性也使它成为一种优秀的SEO工具。 Python在SEO中的应用 Python可用于SEO行业中的多个方面。例如&am…

IDEA内操作框文件地址生成+IDEA数组传参处理+springboot缺少依赖问题

1&#xff0c;IDEA内查询文件本地所属位置 首先在输入框内我们输入以下指令即可查询该目录下文件&#xff1a; lscd即是可进入指定目录 这样我们即可进行文件浏览与进入文件等操作 pwd即可生成该文件目录下的文件地址 2&#xff0c;IDEA数组传参处理 当结果是以数组形式被输…

chatgpt赋能python:Python信息查询的完全指南

Python信息查询的完全指南 Python是一种开源、解释性高级编程语言&#xff0c;广泛应用于数据科学、机器学习、人工智能、Web开发和自动化任务等领域。Python的简洁易读、高效快速的特点&#xff0c;使其成为程序员和企业的首选语言。然而&#xff0c;学习Python并不容易&…