Linux的例行性工作(计划任务)

目录

一、单一执行的例行性任务--at(一 次性)

1、安装

2、启动服务

3、at命令详解

1)格式

2)参数

3)时间格式

4、实例

二、循环执行的例行性任务-- crontab(周期性)

1、crontd服务

2、工作过程

3、crontab命令详解

编辑crontab

书写定时任务的注意事项

系统级别的计划任务

查看账户信息的三种路径

 Linux中单引号、双引号及反引号的区别


一、单一执行的例行性任务--at(一 次性)

1、安装

[root@server ~]# yum install at -y

[root@server ~]# at -V                # 大写V
at version 3.2.2

[root@server ~]# which at             # 查看路径
/usr/bin/at

2、启动服务

[root@server ~]# systemctl start atd
[root@server ~]# systemctl enable --now atd    # 设置开机启动
[root@server ~]# systemctl status atd          # 查看状态

3、at命令详解

1)格式

at -参数 日期时间
  • at命令只要指定的时间正确,就可以执行对应的命令
  • at命令的输出结果不会显示到屏幕上
  • at命令中执行的命令最好使用绝对路径,不容易报错
  • 过程:输入at 时间 -> 回车 ->输入执行的命令->ctrl+d退出at
  • at命令只会执行一次 

at命令执行过程分析

  • 寻找/etc/at.allow (白名单)是否存在,写在该文件中用户才可执行at命令
  • 若/etc/at.allow不存在则寻找/etc/at.deny(黑 名单)文件,写在该文件中的用户不能使用at命令
  • 若两个文件都不存在则只有root用户可以使用at 命令

注意:若拒绝某用户使用at命令则可以将用户名写入 到/etc/at.deny中

2)参数

-m        当任务完成后,即使没有标准输出,也会给用户发送邮件

-l           列出系统上所有用户的at任务,等价于atq

-d          删除或取消一个任务

-v          使用时间格式,列出at任务

-c           可以列出任务之后的命令内容

-f            从文件中读取

3)时间格式

参数                                     说明

HH:MM                                 在今天HH小时的MM分钟执行,若时间 点错过,将在明天执行

HH:MM YYYY-MM-DD         规定在某年某月的某一天的特殊时刻执行 该工作

now +2 minutes                    从现在开始的minutes、hours、days、 weeks执行

4、实例

1)延迟执行ls /root ,并将结果写入到at.txt中

[root@server ~]# at 14:17
warning: commands will be executed using 
/bin/sh

at> ls /root > at.txt
at> <EOT>                  # 点击ctrl+d 结束交互性界面
                           # CTRL+“backspace” 删除字符

[root@server ~]# at -l     # 查看已存在的计划任务
3 Thu May 25 14:17:00 2023 a root
[root@server ~]# atq       # 查看已存在的计划任务
3 Thu May 25 14:17:00 2023 a root

2)不使用交互性命令实现,通过管道符命令执行

[root@server ~]# echo "echo 'hello again'
>> at.txt" | at now +1 minute

3)设置某账户at命令不可用

[root@server ~]# useradd ce1 # 新建账户
[root@server ~]# passwd ce1 # 设置密码 (更改用户 ce1 的密码)

[root@server ~]# tail -1 /etc/passwd # 倒叙查看账户管理文件
ce1:x:1001:1001::/home/ce1:/bin/bash
[root@server ~]# vim /etc/at.deny # 设置黑名单(输入ce1)

[root@server ~]# su ce1 # 切换账户
[ce1@server ~]$ at 14:36 # 测试,at命令不可用
You do not have permission to use at.
[ce1@server ~]$ su root # 切换到root账户
密码:
su: 拒绝权限
# 安全考虑,openEuler做了用户权限切换限制,解决方法如下:
# 重新开启一个ssh连接,以root账户登录
#PAM(Pluggable Authentication Modules)负责系统中很多应用程序的登录认证,安全设置问题

[root@server ~]# vim /etc/pam.d/su     # 注释掉auth required pam_wheel.souse_uid 

二、循环执行的例行性任务-- crontab(周期性)

1、crontd服务

at 命令是在指定的时间只能执行一次任务

crontab 命令可以循环重复的执行定时任务

安装:

[root@server ~]# yum install crontabs       #安装
[root@server ~]# systemctl status crond     #查看状态

crond 进程每分钟会定期检查是否有要执行的任务,如果有,则会自动执行该任务,crontab 命令需要 crond 服务支持 

2、工作过程

当系统中有 /etc/cron.allow 文件时,只有写入此文件的用户可以使用 crontab 命令,没有写入的用户不能使用 crontab 命令。

同样,如果有此文件,/etc/cron.deny 文件会被忽略,因为/etc/cron.allow 文件的优先级更高

当系统中只有 /etc/cron.deny 文件时,写入此文件的用户不能使用 crontab 命令,没有写入文件的用户可以使用 crontab 命令

crontab 执行的每一项工作都会被记录到 /var/log/cron 这个日志文件中

当用户使用 crontab 新建工作之后,该项工作就会被记 录到 /var/spool/cron/目录里面

3、crontab命令详解

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

-u         只有root才能执行该任务

-e         编辑crontab工作内容

-l          查询crontab任务内容

-r          删除cronatb任务

编辑crontab

 [root@server ~]# crontab -e

代表意义         分钟        小时         日期         月份                       星期                            命令

数字范围      0- 59          0- 23        1- 31       1- 12         0-7(0和7表示 周日)         执行的动作

注:日期和星期 二写一 (日期星期有重复 )

*/5 6-8 * 8 1 /bin/bash /test.sh
表示在八月份的每个星期一,六点到八点这个范围内每隔五分钟执行一次存储在/test.sh下的脚本

特殊字符

*                任意时刻

-                表示时间范围

,              分割时刻(逗号)

*/数字        指定时间间隔的频率,如:每3分钟执行一 次,*/3

书写定时任务的注意事项

  • 6 个字段都不能为空,如果不确定则使用*表示任意时间
  • crontab命令任务的最小时间单位为分钟,最大有效时间为月
  • 定义时间时,日期和星期最好不要一起出现
  • 在定时任务中不管是写命令还是在脚本中写命令, 最好都用绝对路径,相对路径有时会报错

系统级别的计划任务

crontab -e 时每个用户都可以执行的命令,但有时定时任 务必须由系统执行,此时就需要编辑/etc/crontab配置文件来实现——在/etc/crontab 最后一行新增计划任务

 [root@server ~]# vim /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



SHELL=/bin/bash : 指定系统使用那个shell解释器去
执行
PATH=/sbin:/bin:/usr/sbin:/usr/bin : 系统执行命令
的搜索路径
MAILTO=root : 表示执行任务的信息通过邮件发送给
谁
user-name : 表示执行命令的用户

查看账户信息的三种路径

[root@server ~]# cat /etc/passwd     账户查看

[root@server ~]# cat /etc/group     工作组

[root@server ~]# cat /etc/shadow    账号密码

 Linux中单引号、双引号及反引号的区别

1.单引号:

——所见即所得,直接显示单引号里的内容(单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的)。

2.双引号:

——先把变量解析之后,再输出(把双引号内的内容输出出来;如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容来)。

双引号括起来的字符中,"$"、反斜杠(\)和反引号(` `)是拥有特殊含义的:

  • $ 代表引用变量的值;
  • \ 反斜杠是转义字符;
  • `` 反引号代表引用命令

3.反引号:

——用于命令替换,即先执行反引号中的语句,再把结果加入到原命令中。

引用于Linux Shell中单引号、双引号、反引号的解释 - 知乎

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Go面试向】defer与time.sleep初探

【Go面试向】defer与time.sleep初探 大家好 我是寸铁&#x1f44a; 总结了一篇defer传参与time.sleep初探的文章✨ 喜欢的小伙伴可以点点关注 &#x1f49d; 请大家看下面这段代码&#xff0c;看运行结果会出现什么&#xff0c;为什么&#xff1f; 问题 demo package mainim…

基于SpringBoot Vue航空机票预订系统

大家好✌&#xff01;我是Dwzun。很高兴你能来阅读我&#xff0c;我会陆续更新Java后端、前端、数据库、项目案例等相关知识点总结&#xff0c;还为大家分享优质的实战项目&#xff0c;本人在Java项目开发领域有多年的经验&#xff0c;陆续会更新更多优质的Java实战项目&#x…

Qt-QFileDialog保存文件及获取带扩展名的文件名

正确用法 QFileDialog dialog(this, "Save File", QDir::currentPath(), "Text Files (.txt)"); dialog.setAcceptMode(QFileDialog::AcceptSave); dialog.setDefaultSuffix("txt"); // << if (!dialog.exec())return; QString fileName …

代码随想录算法训练营第28天 | 93.复原IP地址 + 78.子集 + 90.子集II

今日任务 93.复原IP地址 78.子集 90.子集II 93.复原IP地址 - Medium 题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&a…

第一篇【传奇开心果系列】beeware的toga开发移动应用:轮盘抽奖移动应用

系列博文目录 beeware的toga开发移动应用示例系列博文目录一、项目目标二、开发传奇开心果轮盘抽奖安卓应用编程思路三、传奇开心果轮盘抽奖安卓应用示例代码四、补充抽奖逻辑实现五、开发传奇开心果轮盘抽奖苹果手机应用编程思路六、开发传奇开心果轮盘抽奖苹果手机应用示例代…

仓储管理系统——软件工程报告(总体设计)③

总体设计 一、需求规定 软件工程仓库存储管理系统的需求规定是确保系统能够满足用户期望、提高工作效率、确保数据安全性和系统可维护性的基石。其涵盖了功能性、性能、数据管理、用户界面和系统可维护性等多个方面。通过严格的验收标准&#xff0c;可以确保系统在实际应用中…

Linux: hardware: HP: DIMM

今天遇到一个问题是服务器上BIOS检查DIMM出现错误&#xff1a; 462-Uncorrectable Memory Error Threshold Exceeded(Processor 1, DIMM 14). The DIMM is mapped out and is currently not available. Action: Take corrective action for the failing DIMM. Re-map all DIMMs…

eNSP学习——配置通过STelnet登陆系统

目录 背景 实验内容 实验目的 实验步骤 实验拓扑 详细配置过程 基础配置 配置SSH server 配置SSH client 配置SFTP server 与client 背景 由于Telnet缺少安全的认证方式&#xff0c;而且传输过程采用的是TCP进行明文传输。单纯的提供Telnet服务容易招致主机IP地址欺骗、路…

机器学习之matplotlib学习

matplotlib库学习 matplotlib库的介绍折线图的绘制导入excel表数据绘制折线图 柱状图的绘制散点图的绘制扇形图的绘制总结 matplotlib库的介绍 折线图的绘制 绘制折线图使用plot函数进行绘制 第一个参数为x 横坐标&#xff0c;第二个参数为y纵坐标&#xff0c;第三个参数为线的…

linux的kali安装,换源,更新包

下载kali kali.org进入官网后点第二个 然后点第一个 解压kali 下载后获得.7z压缩包&#xff0c;建议移动到合适自己电脑的位置进行解压&#xff0c;我喜欢放在D盘 启动kali 双击进入解压出的文件夹&#xff0c;将唯一一个.vmx文件用vmware打开&#xff08;没装的自行提前装…

关于使用jdk8自带的日期类getDayOfWeek()的详细解释

问题引入 我们会发现getDayOfWeek()这个函数和其他自带函数不一样 直接写会报错 但是如果我们将他变成getDayOfWeek().getValue() 又能够正常运行,我们这次就来看看是为什么 解释 进入getDayOfWeek()源码查看 我们进入getDayOfWeek()的源码中查看 我们可以发现他给我们返回的…

Android 内存优化 内存泄漏

内存抖动 内存抖动是由于短时间内有大量对象进出新生区导致的&#xff0c;内存忽高忽低&#xff0c;有短时间内快速上升和下落的趋势&#xff0c;分析图呈锯齿状。 它伴随着频繁的GC&#xff0c;GC 会大量占用 UI 线程和CPU 资源&#xff0c;会导致APP 整体卡顿&#xff0c;甚…

Linux下用树莓派DS18B20温度传感器读取温度并上传至服务端

目录 一、DS18B20温度传感器 二、逻辑分析 三、实战操作 1、服务端 2、客户端 3、运行结果 一、DS18B20温度传感器 DS18B20是比较常用到的温度传感器&#xff0c;采用单总线控制。是美国DALLAS半导体公司继DS1820之后最新推出的一种改进型智能温度传感器。关于该温度传感…

Spring为啥不推荐使用@Autowired注解?

引言 使用IDEA开发时&#xff0c;同组小伙伴都喜欢用Autowired注入&#xff0c;代码一片warning&#xff0c;看着很不舒服&#xff0c;Autowired作为Spring的亲儿子&#xff0c;为啥在IDEA中提示了一个警告&#xff1a;Field injection is not recommended 想搞清楚这个问题之…

Unity3d C#实现三维场景中图标根据相机距离动态缩放功能

前言 如题的需求&#xff0c;其实可以通过使用UI替代场景中的图标来实现&#xff0c;不过这样UI的处理稍微麻烦&#xff0c;而且需要在图标上添加粒子特效使用SpriteRender更方便快捷。这里就根据相机离图标的位置来计算图标的缩放大小即可。这样基本保持了图标的大小&#xf…

【51单片机】IO 扩展(串转并)--74HC595

0、前言 参考&#xff1a; 普中 51 单片机开发攻略 第12章 【51单片机入门教程-2020版 程序全程纯手打 从零开始入门】 https://www.bilibili.com/video/BV1Mb411e7re/?p21&share_sourcecopy_web&vd_source77e36f24add8dc77c362748ffb980148 nop()是什么语句&#…

LLM:RoPE - 开源代码中的实现 (下)

本文着重学习一下开源代码中关于RoPE的实现:ChatGLM-6B、ChatGLM2-6B、LLAMA 回顾一下RoPE位置编码: 1:对于 token 序列中的每个词嵌入向量,首先计算其对应的 query 和 key 向量 2:然后对每个 token 位置都计算对应的旋转位置编码 3:接着对每个 token 位置的 query 和 …

防御保护---信息安全概述

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章要求 了解信息安全的基本内容了解信息安全的脆弱性及安全攻击了解信息安全要素及整体安全解决方案 一.信息安全概述 信息安全概述 信息安全是指保护信息免受未经授权的访问、使用、披露、…

简单但全面了解一下webSocket

文章目录 webSocket是一种协议&#xff0c;设计用于提供低延迟、双全工和长期运行的连接什么是实时通信&#xff1f; webSocket之前的世界webSocket的优势为什么需要心跳机制&#xff1f;webSocket的限制 webSocket是一种协议&#xff0c;设计用于提供低延迟、双全工和长期运行…

宠物互联网医院系统

在数字时代&#xff0c;宠物医疗迎来了一场革新&#xff0c;动物互联网医院系统以其先进的技术和智能的特性成为宠物护理的领军者。本文将介绍宠物互联网医院系统的一些关键技术和代码示例&#xff0c;揭示这一科技奇迹的实现原理。 1. 远程医疗服务的实现 远程医疗服务是宠…
最新文章