at命令和cron命令
第一章 例行性工作
1、单一执行的例行性工作
单一执行的例行性工作:仅处理执行一次就结束了 .
1.1 at命令的工作过程
/etc/at.allow:里面的用户是可以使用at命令的 --- 但实际上这个allow文件不存在,所以指全部的人都可以使用该命令;
/etc/at.deny:黑名单
注:两个文件如果都不存在,只有root能使用
相关命令:
#at工作调度对应的系统服务 [root@localhost ~]# ps -ef | grep at [root@localhost ~]# systemctl status atd --- 查看atd状态做实验前,可以直接重启atd,方便: [root@localhost ~]# systemctl restart atd #atd就相当于是at的守护进程 #at的工作文件存放目录 [root@localhost ~]# ll /var/spool/at #at工作的日志文件 [root@localhost ~]# ll /var/log/cron 监测时间:watch -n x cat 文件 查看日志:tail -f /var/log/cron
1.2 at命令详解
命令格式:
at [参数] [时间]参数: -m 当任务完成之后,即使没有标准输出,将给用户发送邮件 -l atq的别名,可列出目前系统上面的所有该用户的at调度 -d 是atrm的别名,可以取消一个在at调度中的工作 -v 使用较明显的时间格式,列出at调度中的任务列表 -c 可以列出后面接的该项工作的实际命令内容(脚本) -f 从文件中读取作作业 时间格式: HH:MM 在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明 天执行 HH:MM YYYY-MM-DD 强制规定在某年某月的某一天的特殊时刻进行该工作 MMDDYY now + 2 minutes 从现在开始几分钟minutes, hours, days, or weeks
实验例子:
#定义三分钟之后显示hello [root@server ~]# at now + 3 minutes 用命令查看写的命令任务:at -l = atq去查看 删除单一命令:at -d 序号 = atrm 序号 写命令:按ctrl+d结束提交
2、循环执行的例行性工作crond
循环执行的例行性工作:每隔一定的周期就需要执行一次
2.1 crontab的工作过程
/etc/cron.allow #写在该文件的人可以使用cron命令
/etc/cron.deny #黑名单
两个文件如果都不存在,只有root能使用
相关命令:
#crontab工作调度对应的系统服务 [root@localhost ~]# systemctl status crond#crontab工作的日志文件 [root@localhost ~]# ll /var/log/cron#用户定义计划任务的文件所在目录 [root@localhost ~]# ll /var/spool/cron/
2.2 crontab命令详解
[root@localhost ~]# crontab --help Usage:crontab [options] filecrontab [options]crontab -n [hostname] Options:-u <user> define user-e edit user's crontab --- 编辑用户的循环任务-l list user's crontab-r delete user's crontab (清空)-i prompt before deleting-n <host> set host in cluster to run users' crontabs-c get host in cluster to run users' crontabs-s selinux context-V print version and exit-x <mask> enable debugging
crontab计划任务的时间格式:
| 分 | 时 | 日 | 月 | 周 |
|---|---|---|---|---|
| 0-59 | 0-23 | 1-31 | 1-12 | 0-7 |
注意:若存在冲突,则是或的关系;(在周不是*的情况下)
在周是*的情况下,日期的优先级高一点;
当想把IP地址信息写入一个文件里面的时候,需要在循环执行任务里面加上路径PATH。 --- 跟系统的计划任务一样
[root@master01 ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@master01 ~]# crontab -l
* * * * * ip a show ens160 > /root/ens160
[root@master01 ~]# watch -n 1 ls -l /root/
发现我们写的任务执行不了:

将路径写入到crontab -e里面:

现在就可以正常执行任务了:

date 月日时分年秒
crontab计划任务的时间格式中的特殊符号:
| 特殊字符 | 含义 |
|---|---|
| * | 代表任何时刻 |
| , | 代表分隔时段 |
| - 0-59 | 代表一段时间范围 |
| /数字 | 指定时间的间隔频率,例如每 3 分钟进行一次,*/3 |
注:%在crontab里面有特殊含义,如果有命令里面需要使用%,需要使用\转义。
#每天早上9点整说good morning [root@server ~]# crontab -e 0 9 * * * wall "good morning"
注:wall命令用于向系统当前所有打开的终端上输出信息。 通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
2.3 系统的计划任务(对系统所有用户都生效的任务文件)
[root@localhost ~]# 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
若是有很多任务需要一起执行,就把这些任务放在一个文件夹里面,然后用run-parts写入到/etc/crontab中;
例子: [root@master01 ~]# bash /root/write.sh [root@master01 ~]# cat /root/write1.sh 同时想要执行这些任务。 将这两个任务放在一个文件里面 [root@master01 ~]# mkdir /root/Write --- 创建一个Write文件夹,专门放write.sh和write1.sh [root@master01 ~]# mv write.sh write1.sh /root/Write [root@master01 ~]# vim /etc/crontab * * * * * root run-parts /root/Write 完成!
课堂练习:
2.3.1实验一:定义三分钟之后显示hello
at now + 3 minutes at > wall hello
2.3.2实验二 : 每天早上9点整,说good morning
crontab -e 00 09 * * * wall "good morning"
注释:
wall命令用于向系统当前所有打开的终端上输出信息。
通过wall命令可将信息发送给每位同意接收公众信息的终端机用户,若不给予其信息内容,则wall命令会从标准输入设备读取数据,然后再把所得到的数据传送给所有终端机用户。
2.3.3实验三:指定某些用户不可以执行计划任务
/etc/at.deny /etc/cron.deny
2.3.4实验四:系统级别例行性任务
[root@localhost ~]# vim /etc/crontab
2.3.5实验五:创建一个以当前时间的文件,循环执行的工作;例如:当前时间为11:48,文件为file-11-48.txt
date命令:date +%R = date +%H%M
注意:记得加转义字符\,不然识别不了!就执行不了任务。
2.3.6实验六:写一个循环任务,直接将一个write.sh文件的内容追加到/root/file
步骤: 1.创建一个write.sh文件,并写入内容echo hello >> /root/file 2.[root@master01 ~]# bash /root/write.sh ---执行一次 3.[root@master01 ~]# cat /root/file --- 可以看到file文件里面已经有内容了 hello 4.[root@master01 ~]# vim /etc/crontab --- 将该任务写进系统计划任务里面 * * * * * root bash /root/write.sh
相关文章:
at命令和cron命令
第一章 例行性工作 1、单一执行的例行性工作 单一执行的例行性工作:仅处理执行一次就结束了 . 1.1 at命令的工作过程 /etc/at.allow:里面的用户是可以使用at命令的 --- 但实际上这个allow文件不存在,所以指全部的人都可以使用该命令&#…...
搜维尔科技:使用Manus Primel Xsens数据手套直接在Xsens及其插件中捕获手指数据
使用Manus Primel Xsens数据手套直接在Xsens及其插件中捕获手指数据 搜维尔科技:使用Manus Primel Xsens数据手套直接在Xsens及其插件中捕获手指数据...
Avalonia UI获取Popup显示位置,可解决异常显示其他应用程序的左上角
1.通过 PlacementTarget 获取位置 如果 Popup 是相对于某个控件(PlacementTarget)显示的,你也可以获取该控件的位置,然后计算 Popup 的相对位置。 // 假设 popup 是你的 Popup,target 是你的目标控件(Pla…...
新版Win32高级编程教程-学习笔记01:应用程序分类
互联网行业 算法研发工程师 目录 新版Win32高级编程教程-学习笔记01:应用程序分类 控制台程序 强烈注意 窗口程序 启动项 程序入口函数 库程序 静态库 动态库程序 几种应用程序的区别 控制台程序 本身没有窗口,其中的doc窗口,是管…...
无需编程知识 如何用自适应建站系统创建专业网站 带完整的安装代码包以及搭建部署教程
系统概述 自适应建站系统是一款功能强大、易于使用的建站工具。它采用了先进的技术和设计理念,旨在为用户提供一个简单、高效的建站平台。该系统支持多种语言和多种设备,能够自动适应不同屏幕尺寸和分辨率,确保网站在各种终端上都能呈现出最…...
萤石云服务支持云端视频AI自动剪辑生成
萤石视频云存储及媒体处理服务是围绕IoT设备云端存储场景下的音视频采集、媒体管理、视频剪辑和分发能力的一站式、专业云服务,并可面向广大开发者提供复杂设备存储场景下的完整技术方案。目前该服务新增了视频剪辑功能,支持将视频片段在云端进行裁剪并拼…...
Flink移除器Evictor
前言 在 Flink 窗口计算模型中,数据被 WindowAssigner 划分到对应的窗口后,再经过触发器 Trigger 判断窗口是否要 fire 计算,如果窗口要计算,会把数据丢给移除器 Evictor,Evictor 可以先移除部分元素再交给 ProcessFu…...
R语言实现多元线性回归高杠杠点,离群点分析
14a set.seed(1) x1 = runif(100) x2 = 0.5 * x1 + rnorm(100)/...
overfrp内网穿透:使用域名将内网http/https服务暴露到公网
项目地址:https://github.com/sometiny/overfrp 使用overfrp部署穿透服务器,绑定域名后,可使用域名访问内网的http/https服务。 用例中穿透服务器和内网机器之间的访问全链路加密,具有ssh2相当的安全级别。!…...
springboot034在线商城系统设计与开发-代码(论文+源码)_kaic
毕 业 设 计(论 文) 题目:ONLY在线商城系统设计与实现 摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本ONLY在线商城系统…...
什么是第三范式(3NF)?为什么要遵守第三范式?
第三范式(Third Normal Form, 3NF)是数据库设计中的一个重要概念,它是对关系型数据库规范化的一种标准。 在数据库设计中,通过将数据表按照一定的规则进行分解,可以减少数据冗余和提高数据的一致性。 3NF 是建立在第…...
大数据比对,shell脚本与hive技术结合
需求描述 从主机中获取加密数据内容,解密数据内容(可能会存在json解析)插入到另一个库中,比对原始库和新库的相同表数据的数据一致性内容。 数据一致性比对实现 上亿条数据,如何比对并发现两个表数据差异 相关流程…...
【Linux安全基线】- CentOS 7/8安全配置指南
在企业业务的生产环境中,Linux服务器的安全性至关重要,尤其是对于具有超级用户权限的root账号。滥用或被入侵后,可能会造成数据泄露、系统损坏等严重安全问题。为了减少这种风险,本文将详细介绍如何通过一系列安全措施来增强CentO…...
PDF.js的使用及其跨域问题解决
目录 一、PDF.js 简介 二、使用配置和步骤 1.引入PDF.js 2.加载PDF文件 3.渲染PDF页面 三、在Vue中使用PDF.js示例 1.安装PDF.js 2.在Vue组件中使用 四、在原生js中使用PDF.js示例 1.加载PDF文件并渲染页面 五、解决跨域问题 1.服务器配置 2.使用代理服务器 下面介…...
Linux Redis查询key与移除日常操作
维护老项目Express node 编写的后端程序、有这么一个方法、没有设置redis过期时间(建议设置过期时间,毕竟登录生产服务器并不是每个人都有权限登录的!!!)。如果变动只能通过登录生产服务器、手动修改… 于…...
开源两个月,antflow后端项目全网获近100星
从六月初开源,转眼间AntFlow已经开源将近四个月了(前端比后端早了大约2个月,后端于8.18开源).(其实准备是重构以前开源版本.前年的时候我们已经将Vue2版的流程设计器开源了.后来由于疫情原因,没有再继续持续开发.)后来有一天再打开仓库的时候,发现虽然很久没有更新了,但是不断有…...
设计模式——工厂方法模式(2)抽象工厂模式(3)
一、写在前面 创建型模式 单例模式工厂方法模式抽象工厂模式原型模式建造者模式 结构型模式行为型模式工厂方法模式和抽象工厂模式都属于工厂模式,所以放在一起介绍了 二、介绍 为什么要工厂模式?工厂就像一个黑盒一样,所以用工厂模式来创…...
简单聊聊System V下的IPC + 内核是如何管理该IPC
文章目录 前言:🎃消息队列:1. **消息队列的基本概念**2. **消息队列的特点**3. **常见的消息队列操作(Linux IPC)****1) msgget:创建或获取消息队列****2) msgsnd:发送消息****3) msgrcv&#x…...
【WRF工具】服务器上安装convert_geotiff
【WRF工具】服务器上安装convert_geotiff convert_geotiff简介方法1:下载安装包后下载convert_geotiff依赖库安装库1:libtiff库2:sqlite库3:curl库4:projcmake更新(可选)库5:geotiff…...
RPC通讯基础原理
1.RPC(Remote Procedure Call)概述 RPC是一种通过网络从远程计算机上调用程序的技术,使得构建分布式计算更加容易,在提供强大的远程调用能力时不损失本地调用的语义简洁性,提供一种透明调用机制,让使用者不…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
Java如何权衡是使用无序的数组还是有序的数组
在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
Web中间件--tomcat学习
Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机,它可以执行Java字节码。Java虚拟机是Java平台的一部分,Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...
windows系统MySQL安装文档
概览:本文讨论了MySQL的安装、使用过程中涉及的解压、配置、初始化、注册服务、启动、修改密码、登录、退出以及卸载等相关内容,为学习者提供全面的操作指导。关键要点包括: 解压 :下载完成后解压压缩包,得到MySQL 8.…...
在 Visual Studio Code 中使用驭码 CodeRider 提升开发效率:以冒泡排序为例
目录 前言1 插件安装与配置1.1 安装驭码 CodeRider1.2 初始配置建议 2 示例代码:冒泡排序3 驭码 CodeRider 功能详解3.1 功能概览3.2 代码解释功能3.3 自动注释生成3.4 逻辑修改功能3.5 单元测试自动生成3.6 代码优化建议 4 驭码的实际应用建议5 常见问题与解决建议…...
