Linux————计划任务

计划任务

计划任务,就是有计划的任务,就是按照我们的的计划自动执行任务

计划任务有一次性计划任务和周期性计划任务

一次性计划任务

所谓一次性计划任务,就是按照计划只执行一次的任务。

无论是windows还是Linux都具备一次性计划任务的功能。

Linux中的at命令是用来创建一次性计划任务的,t命令有一个服务atd会以后台模式运行,检査当前的时间来决定是否运行"计划"。

atd服务会检査系统上的一个特殊目录来获取at命令的提交的"计划",默认情况下,atd服务每60秒检査一次目录,有"计划"时,会检査"计划"运行时间,如果"计划运行"的时间与当前时间匹配,则运行此"计划”。

创建一次性计划任务,并执行

查看服务是否开启

[root@bogon ~]# systemctl status atd
● atd.service - Deferred execution schedulerLoaded: loaded (/usr/lib/systemd/system/atd.service; enabled; preset: enabled)Active: active (running) since Fri 2024-03-15 13:26:26 CST; 37min agoDocs: man:atd(8)Main PID: 970 (atd)Tasks: 1 (limit: 22874)Memory: 312.0KCPU: 5msCGroup: /system.slice/atd.service└─970 /usr/sbin/atd -fMar 15 13:26:26 bogon systemd[1]: Started Deferred execution scheduler.

编写备份yum仓库文件的脚本

[root@bogon ~]# cat backup-repo.sh 
#!/bin/bash
cp -r /etc/yum.repos.d /opt/yum-repo-backup-dir/yum.repos.d-`date "+%Y-%m-%d-%H:%M:%S"`.bak

设置权限

[root@bogon ~]# chmod +x backup-repo.sh 

执行计划任务

[root@bogon ~]# at now 
warning: commands will be executed using /bin/sh
at> /root/backup-repo.sh 
at> <EOT>
job 9 at Fri Mar 15 15:02:00 2024
  • -q:可以指定队列,队列有a-z总共26个队列

查看结果

[root@bogon ~]# date ; ls /opt/yum-repo-backup-dir/
Fri Mar 15 03:02:33 PM CST 2024
yum.repos.d-2024-03-15-15:02:26.bak

一次性计划任务管理

执行一次性计划任务

[root@bogon ~]# at now 
warning: commands will be executed using /bin/sh
at> /root/backup-repo.sh 
at> <EOT>
job 9 at Fri Mar 15 15:02:00 2024
  • at now :后面跟任务执行的时间

  • at> /root/backup-repo.sh:计划任务执行的任务脚本

  • Ctrl + d :提交计划任务

计划任务执行时间的写法有很多方式

  • at now:立即执行

  • at 5PM:当天的5点执行,如果超过这个时间,会在第二天的这个时间执行

  • at 6:22:当天的6:22点执行,如果超过这个时间,会在第二天的这个时间执行

  • at 2024-03-03:和at now一样,立即执行

  • at 12:12 2024-03-03:在2024年的3月3号12点12分执行

  • at 12:12 +5day:在五天之后的12点12分执行

查看一次性计划任务

atq

[root@bogon ~]# atq
3       Sat Mar 16 02:23:00 2024 a root
5       Sat Mar 16 02:26:00 2024 a root
6       Sat Mar 16 02:35:00 2024 a root

删除一次性计划任务

atrm at_id

[root@bogon ~]# atrm 3
[root@bogon ~]# atq
5       Sat Mar 16 02:26:00 2024 a root
6       Sat Mar 16 02:35:00 2024 a root

查看一次性任务的详细信息

at -c at_id

[root@bogon ~]# at -c 6
#!/bin/sh
# atrun uid=0 gid=0
...

一次性计划任务使用控制

[root@bogon ~]# ls /etc/at.deny 
/etc/at.deny
[root@bogon ~]# ls /etc/at.allow
ls: cannot access '/etc/at.allow': No such file or directory

在你的操作系统当中可能同时有多个用户在使用at命令设置一次性计划任务,那么你可以控制哪些用户可以使用计划任务,哪些用户不可以使用计划任务。

at一次性计划任务的白名单是at,a1low,黑名单是at.deny,不建议既使用黑名单,又使用白名单。建议使用白名单,白名单比黑名单力度要强。默认在rhel9系统中默认是没有at.allow文件的,可以自己创建。

at.allow的优先级是高于at.deny

周期性计划任务

周期性计划任务相比一次性计划任务来说相当于定制周期性的"计划"来执行某个任务,比如每分钟执行,每小时执行,每天执行,每周执行,每月执行,每天的03:88执行,每周三02:12执行,每月3号的84:16执行,每隔2分钟执行,每天的83:88,83:30执行等等

周期性计划任务的命令

  • crontab -e:编辑当前shell用户的计划任务

  • crontab -e -u user:编辑用户的计划任务,只有root用户才能编辑其他人的计划任务

  • crontab -l:列出当前用户的所有计划任务

  • crontab -l -u user:列出用户的计划任务

编辑计划任务的操作和vim编辑文件一样

* * * * *

第一个星,代表分钟(0-59)。如果为 0 ,就代表每个小时的整点;默认为*,表示每分钟运行一次

第二个星,代表小时(0-23)。如果为0,代表每天的0点;默认为*,表示每小时运行一次

第三个星,代表日(1-31),如果为1,代表一个月的第一天;默认为*,表示每天运行一次

第四个星,代表月(1-12),如果为1,代表一月份;默认为*,表示月运行一次

第五个星,代表星期(0-6),如果为0,代表周天;默认为*,表示周运行一次

# 一些计划任务格式实例
每分钟执行一次
* * * * * /root/x.sh每小时的整点执行一次
0 * * * * /root/x.sh每天凌晨1点准时运行
0 1 * * * /root/x.sh每天凌晨1点这个小时中每分钟运行一次
* 1 * * * /root/x.sh每月的第一天的每分钟运行一次
* * 1 * * /root/x.sh1月份中每一天都执行
* * * 1 * /root/x.sh每周周日的每一分钟,设置‘周’,尽量不要设置‘日’,容易产生歧义
* * * * 0 /root/x.sh每五分钟一次
0/5 * * * *  /root/x.sh每两个小时运行一次,从0点开始
* 0/2 * * * * /root/x.sh每小时的第1分钟和第10分钟运行一次,例如:03:01,03:10
1,10 * * * * /root/x.sh每小时的第15分钟到20分钟每分钟运行一次,一个小时总共运行6次
15-20 * * * * /root/x.sh每年4月到6月,即4月、5月、6月的10号和15号,从0点开始,每2个小时在第1分,第2分,第5分到第8分分别执行
1,2,5-8 0/2 10,15 4-6 * /root/x.sh

除了crontab -e进行编辑计划任务,还可以在/etc/cronted文件下面编写,还有cron.daily/、cron.hourly/、cron.monthly/、cron.weekly/等目录下面,这种只能使用root用户来编辑

[root@bogon ~]# vim /etc/crontab   
[root@bogon ~]# cd /etc/cron.daily/  ## 存放的是每天自动执行的脚本
[root@bogon ~]# cd /etc/cron.hourly/  ## 存放的是每小时自动执行的脚本
[root@bogon ~]# cd /etc/cron.weekly/  ## 存放的是每周自动执行的脚本
[root@bogon ~]# cd /etc/cron.monthly/  ## 存放的是每月自动执行的脚本

/etc/cron.d目录下存放的文件格式和/etc/crontab的格式是一样的,是一个扩展目录,默认情况下也会读取里面的周期计划任务

/etc/下有cron.denycron.allow对计划任务的用户实现控制,白名单要强于黑名单

  • cron.deny:黑名单

  • cron.allow:白名单

创建一个周期性计划任务

查看服务是否开启

[root@bogon ~]# systemctl status crond.service 
● crond.service - Command SchedulerLoaded: loaded (/usr/lib/systemd/system/crond.service; enabled; preset: enabled)Active: active (running) since Fri 2024-03-15 13:26:26 CST; 2h 51min agoMain PID: 971 (crond)Tasks: 1 (limit: 22874)Memory: 1.2MCPU: 71msCGroup: /system.slice/crond.service└─971 /usr/sbin/crond -nMar 15 14:21:01 bogon anacron[1722]: Job `cron.daily' terminated
Mar 15 14:21:01 bogon anacron[1722]: Normal exit (1 job run)
Mar 15 15:01:01 bogon CROND[2323]: (root) CMD (run-parts /etc/cron.hourly)
Mar 15 15:01:01 bogon run-parts[2326]: (/etc/cron.hourly) starting 0anacron
Mar 15 15:01:01 bogon run-parts[2332]: (/etc/cron.hourly) finished 0anacron
Mar 15 15:01:01 bogon CROND[2322]: (root) CMDEND (run-parts /etc/cron.hourly)
Mar 15 16:01:01 bogon CROND[2420]: (root) CMD (run-parts /etc/cron.hourly)
Mar 15 16:01:01 bogon run-parts[2423]: (/etc/cron.hourly) starting 0anacron
Mar 15 16:01:01 bogon run-parts[2429]: (/etc/cron.hourly) finished 0anacron
Mar 15 16:01:01 bogon CROND[2419]: (root) CMDEND (run-parts /etc/cron.hourly)

写一个脚本

[root@bogon ~]# cat x.sh 
#!/bin/bash
for i in {1..100}
doecho $i  >>/opt/num-`date "+%h-%H:%M:%S"`.txt
done

制作定时任务

[root@bogon ~]# crontab -e
* * * * * /root/x.sh

每隔以分钟查看一次

[root@bogon ~]# date;ls /opt/
Fri Mar 15 05:14:44 PM CST 2024
num-Mar-17:14:01.txt  yum-repo-backup-dir
[root@bogon ~]# date;ls /opt/
Fri Mar 15 05:15:02 PM CST 2024
num-Mar-17:14:01.txt  num-Mar-17:15:01.txt  yum-repo-backup-dir
[root@bogon ~]# date;ls /opt/
Fri Mar 15 05:16:53 PM CST 2024
num-Mar-17:14:01.txt  num-Mar-17:15:01.txt  num-Mar-17:16:01.txt  yum-repo-backup-dir

可以看到,每过一分钟,就会新添加一个文件

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

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

相关文章

交换奇偶位

题目描述&#xff1a; 写一个宏&#xff0c;可以将一个整数的二进制位的奇数位和偶数位交换。 题目分析&#xff1a; 相信大家都可以想到位运算如&#xff1a;按位异或&#xff0c;按位取反以及<<和>>等操作符&#xff0c;可是想到这些又能怎么样&#xff1f;还是…

ASC+Base64加密算法 根据用户id生成秘钥

需要是要根据用户的id生成密钥 通过密钥生成免登录链接 实现用户根据链接直接访问系统 标准Base64编码包含特殊字符,会被转义 从而登录失败要使生成的密文不包含特殊字符&#xff0c;您可以使用Base64URL编码代替标准的Base64编码。Base64URL编码使用-和_替换了标准Base64编码…

Python从原Excel表中抽出数据存入同一文件的新的Sheet(附源码)

python读取excel数据。Python在从原Excel表中抽出数据并存储到同一文件的新的Sheet中的功能&#xff0c;充分展示了其在数据处理和自动化操作方面的强大能力。这一功能不仅简化了数据迁移的过程&#xff0c;还提高了数据处理的效率&#xff0c;为数据分析和管理工作带来了极大的…

图像识别应用

一、图像识别应用 图像识别&#xff0c;是利用机器视觉对图像进行处理、分析和理解&#xff0c;以识别各种不同模式的目标和对象。图像识别在机器视觉工业领域中最典型的应用就是二维码的识别了&#xff0c;二维码就是我们平时常见的条形码中最为普遍的一种。将大量的数据信息存…

Nginx 配置 WebSocket 代理

Nginx 配置 WebSocket 代理 文章目录 Nginx 配置 WebSocket 代理官方文档代理样例 Linux 查看安装文件命令手册Nginx 日志配置方案成功解决问题--使用 Nginx 代理 WebSocket可能出现的问题 Nginx 官方文档网址 nginx documentation ... http:{...server{...# WebSocket代理loc…

诊断慢SQL根源

诊断慢SQL的根源通常涉及一系列步骤和方法&#xff0c;包括但不限于以下几个方面&#xff1a; 1. **收集慢SQL日志**&#xff1a; - 设置数据库系统的慢查询日志阈值&#xff08;如MySQL的long_query_time&#xff09;&#xff0c;记录执行时间超过指定阈值的SQL语句。 …

3.31学习总结

算法 解题思路 使用dfs,对蛋糕每层可能的高度和半径进行穷举.通过观察我们可以知道第一层的圆面积是它上面所有蛋糕层的圆面积之和,所以我们只要去求每层的侧面积就行了. 因为题目要求Ri > Ri1且Hi > Hi1,所以我们可以求出每层的最小体积和侧面积,用两个数组分别储存起来…

C语言实现猜数字游戏(有提示,限制次数版)

这次的猜数字游戏我添加了新的功能&#xff1a;为玩家添加了提示&#xff0c;以及输入数字的限制次数。 首先&#xff0c;我们的猜数字游戏需要一个菜单&#xff0c;来让玩家可以选择玩游戏还是退出游戏&#xff0c;所以我们需要开始就打印一个菜单&#xff1a; int main() {…

Mac air 个人免费版VMWare Fusion安装及配置教程

Mac air 安装免费版VMWare Fusion教程及问题解决 1、下载VMWare Fusion2、下载wins镜像文件3、开始配置4、出现的问题及解决方法4.1 如何跳过启动时的网络连接4.2 启动后&#xff0c;无法连接网络怎么办4.3 怎么实现将文件拖拽到虚拟机中 当你手上是一台Mac电脑&#xff0c;却需…

el-upload上传图片给SpringBoot后端

需求 我的需求是&#xff0c;将上传文件的el-upload放到一个el-form里面&#xff0c;点击保存才提交&#xff0c;所以不能直接用action的方式&#xff0c;下面采用自定义上传的方式来完成Vue前端 主要是使用editForm.imgList来保存图片的信息&#xff0c;注意这里是一个对象&am…

VS Code常用前端开发插件和基础配置

VS Code插件安装 VS Code提供了非常丰富的插件功能&#xff0c;根据你的需要&#xff0c;安装对应的插件可以大大提高开发效率。 完成前端开发&#xff0c;常见插件介绍&#xff1a; 1、Chinese (Simplified) Language Pack 适用于 VS Code 的中文&#xff08;简体&#xff…

【原创】基于分位数回归的卷积长短期结合注意力机制的神经网络(CNN-QRLSTM-Attention)回归预测的MATLAB实现

基于分位数回归的卷积长短期结合注意力机制的神经网络&#xff08;CNN-QRLSTM-Attention&#xff09;是一种用于时间序列数据预测的深度学习模型。该模型结合了卷积神经网络&#xff08;CNN&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;和注意力机制&#xff08;A…

小白用Windows(ssh)连接使用 ubuntu(虚拟机)

安装ssh sudo apt install openssh-server 添加用户、密码 sudo useradd fly sudo passwd fly sudo adduser fly sudo 免密登入 [windows 生成密钥&#xff1a;ssh-keygen -t rsa -b 4096 cat ~/.ssh/id_rsa.pub | ssh fly192.168.23.133 "mkdir -p ~/.ssh…

C# 文件

FileStream 类FileModeFileAccessFileShare StreamReader 类和StreamWriter类StreamReader 类StreamWriter类关于using FileStream 类 FileStream <object_name> new FileStream( <file_name>, <FileMode Enumerator>, <FileAccess Enumerator>, <…

数据治理-平台详细措施

这里讲平台治理的具体措施&#xff0c;并不是从具体架构来说&#xff0c;而是从详细方法。 名词定义 1.待治理成本 2.浪费量&#xff1a;可以优化计算或者存储 3.累计浪费量&#xff1a;发现时距离今天数*当日浪费量 4.节省成本&#xff1a;完成治理成本 5.白名单管理成本 治理…

C++ 数组 结构编程题

一 求100以内的所有素数 /* * 需要标记2~100 之间的数是否处理 * 用数组&#xff0c;初始为0 表示都是素数&#xff0c;如果 判断为合数则置为1过用 */ #include<stdio.h> #include<math.h> int main() {const int n 100;int isPrim[n 1] { 0 };int i, j;for (…

MAC的Safari浏览器没有声音解决办法

有一段时间没打开电脑&#xff0c;也不知道是系统自动更新或是什么缘故&#xff0c;所有浏览器都无法正常发声。 现象如下&#xff1a; 首先&#xff0c;Safari浏览器无法自动播放声音&#xff0c;下载的360浏览器现象一致&#xff0c;但是播放其他音乐播放软件和视频软件都正…

【开发工具】Ubuntu复制CSDN代码多余符号的去除

在Ubuntu中使用CSDN复制的代码时&#xff0c;可能会出现\u200的符号&#xff0c;这个符号会影响代码的编译和运行&#xff0c;因此需要找到一种快速删除这种符号的方法。 通过搜索找到了一种替换为空的删除方式&#xff0c;笔者编写了一个适用于Rust的shell脚本&#xff0c;需要…

JavaScript(二)---【js数组、js对象、this指针】

零.前言 JavaScript(一)---【js的两种导入方式、全局作用域、函数作用域、块作用域】-CSDN博客 一.js数组 在js中也有数组的概念&#xff0c;数组使用“[]”定义&#xff0c;其中数组中还可以嵌套数组从而达到多层数组的作用。 访问数组中的某个元素&#xff0c;我们可以直…

pymysql使用记录

最近由于需要来学习一下pymysql。 先来认识一下pymysql&#xff1a; PyMySQL 是 Python 中一个用于连接 MySQL 数据库的库。它允许 Python 程序通过简单的 API 调用来连接、操作和管理 MySQL 数据库。PyMySQL 是在 Python 中使用纯 Python 编写的&#xff0c;因此它可以在几…