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

news2024/11/24 15:38:04

目录

一、单一执行的例行性任务--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.coloradmin.cn/o/1405836.html

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

相关文章

嵌入式未来发展的一些建议

嵌入式工程师分布在各行各业上面&#xff0c;这其中包括了消费电子、工业电子、汽车电子和军用电子等。 从功能上面看&#xff0c;嵌入式本身包括了51、STM32、MCU、SOC、SOCbaseband等很多形式。 从开发的结构上看&#xff0c;有些同学专注于底层&#xff0c;比如boot&#xf…

【GitHub项目推荐--一个简单的绘图应用程序(Rust + GTK4)】【转载】

一个用 Rust 和 GTK4 编写的简单的绘图应用程序来创建手写笔记。 Rnote 旨在成为一个简单但实用的笔记应用程序&#xff0c;用于手绘或注释图片或文档。它最终能够导入/导出各种媒体文件格式。而且输出的作品是基于矢量的&#xff0c;这使其在编辑和更改内容时非常灵活。 地址…

Anaconda + Tensorflow 安装及跑通例子 - 2024年1月20日

前言 我尝试了Tensorflow官网的方式进行安装&#xff0c;但是报错了。至于原因&#xff0c;我猜测和网络情况有关。于是尝试通过百度和B站&#xff0c;去看其他人的安装方式。总结下来&#xff0c;直接用Anaconda来安装最为方便。网络上也有不少用 Anaconda 的&#xff0c;但是…

Linux:FTP vs SSH

一&#xff0c;FTP FTP是一种文件下载协议&#xff0c;相比SSH&#xff0c;其安全性较低&#xff0c;在文件传输时并未做加密处理。登录FTP服务器的方法有2种&#xff1a;一种是FTP图形客户端&#xff08;可以用于windows电脑连接linux系统&#xff09;&#xff1b;另一种是使…

【设计模式】阿里终面:你觉得这个例子是策略模式吗?

什么是策略模式&#xff1f; 策略模式&#xff0c;举几个贴近生活的例子&#xff1a;当我们出行的时候&#xff0c;不同的出行方式就是不同的策略&#xff0c;例如走路、开车、骑自行车、坐飞机、坐邮轮等等&#xff0c;每一种出行方式都代表着不同的费用和时间&#xff1b;当…

E - Souvenir(图论典型例题)

思路&#xff1a;对于有很多询问的题&#xff0c;一般都是先初始化。我们求出每个点到其他点的最短路径以及相同路径下最大的价值和即可。 代码&#xff1a; #include <bits/stdc.h> #define pb push_back #define a first #define b second using namespace std; type…

模型之气体的行为

气体的行为 “探索气体动理论&#xff1a;分子运动与温度的统计关系” 气体动理论由丹尼尔•伯努利在1738年提出&#xff0c;后来又由麦克斯韦、玻尔兹曼等人在19世纪后半叶推进。根据这种理论&#xff0c;气体是由运动着的分子组成的&#xff0c;气体的许多性质——如温度和…

C++大学教程(第九版)6.38汉诺塔问题

文章目录 题目代码运行截图 题目 (汉诺塔问题)在这一章中大家了解了既可以用递归方法又可以用迭代方法很容易实现的函数。不过&#xff0c;在这道练习题中&#xff0c;我们提出的问题若用递归来解决&#xff0c;则尽显递归之优雅:若用迭代来实现&#xff0c;恐怕没那么容易。 …

Shell脚本的编程规范和变量类型

一. 了解编程 1.程序编程风格 面向过程语言 开发的时候 需要一步一步执行 问题规模小&#xff0c;可以步骤化&#xff0c;按部就班处理 以指令为中心&#xff0c;数据服务于指令 C&#xff0c;shell 面向对象语言 开发的时候 将任务当成一个整体 将编程看成是一个…

云原生全栈监控解决方案(全面详解)

【作者】JasonXu 前言 当前全球企业云化、数字化进程持续加速&#xff0c;容器、微服务等云原生技术在软件架构中快速渗透&#xff0c;IT 架构云化、复杂化持续驱动性能监控市场。企业云化、数字化持续转型&#xff0c;以及为了考虑系统的弹性、效率&#xff0c;企业软件开发中…

《小学生作文辅导》期刊投稿邮箱

《小学生作文辅导》是国家新闻出版总署批准的正规教育类期刊&#xff0c;适用于全国各小学语文老师事业单位及个人&#xff0c;具有原创性的学术理论、工作实践、科研成果和科研课题及相关领域等人员评高级职称时的论文发表&#xff08;单位有特殊要求除外&#xff09;。 栏目…

RTDETR 引入 超越自注意力:面向医学图像分割的可变形大卷积核注意力

医学图像分割在转换器模型的应用下取得了显著的进展,这些模型擅长捕捉广泛的上下文和全局背景信息。然而,这些模型随着标记数量的平方成比例增长的计算需求限制了它们的深度和分辨率能力。大多数当前的方法通过逐层处理D体积图像数据(称为伪3D),在处理过程中错过了关键的跨…

alfred自定义谷歌翻译workflow

如果要实现自定义workflow&#xff0c;则必须安装付费版的alfred&#xff0c;囊中羞涩的话可以自行淘宝。自定义步骤如下&#xff1a; 1. 新建空的workflow&#xff0c;填写基本信息 2. 开发python脚本 打开该workflow所在目录&#xff0c;进行下面步骤&#xff1a; 首先安装…

【GitHub项目推荐--开源2D 游戏引擎】【转载】

microStudio 是一个可在浏览器中运行的游戏引擎&#xff0c;它拥有一套精美、设计精良、全面的工具&#xff0c;可以非常轻松地帮助你创建 2D 游戏。 你可以在浏览器中访问 microStudio.dev 开始搭建你的游戏&#xff0c;当然你可以克隆现有项目或创建新游戏并开始编码&#x…

城市需求显示在地图上(附MATLAB程序)

我们显示很多城市信息时, 有时候需要把各地人口数量, 各地城市对某种货物的需求量呈现到地图上, 可以用以下代码实现: 程序结果: % 画中国地图 clc;close all;clear all; %%曲面拟合 warning off;%禁止显示警告信息 % load lonlatdata.mat; lonlatdataxlsread(工作簿1.xls,D2…

对于超低延迟SSD,IO调度器已经过时了吗?-part1

此前针对linux IO栈与IO调度器&#xff0c;小编有过基本原理的分析&#xff0c;前文阅读请参考&#xff1a; 《存储IO路径》专题&#xff1a;四种IO栈全能大比武 《存储IO路径》专题&#xff1a;不同IO调度器的差异 近期&#xff0c;小编看到一篇来自University of Louisvil…

Python基础之文件操作(I/O)

和其他编程语言一样&#xff0c;Python 也具有操作文件&#xff08;I/O&#xff09;的能力&#xff0c;比如打开文件、读取和追加数据、插入和删除数据、关闭文件、删除文件等。合理应用python提供的文件操作基本函数&#xff0c;可大大提高自动化实现的效率与框架代码的稳定性…

luffy商城项目(二)

路飞后端配置 二次封装response drf提供的Response对象&#xff0c;不能很方便的加入code和msg字段&#xff0c;自己封装一个Response类&#xff0c;以后都用我们自己封装的&#xff0c;方便咱们写code和msg 封装步骤&#xff1a; 1 在utils/common_response.py from rest_…

基于leaflet地图实现点击点位图标,在图标边上展示信息弹窗的方案

文章标题很直观明显了&#xff0c;所以正文就直入主题。 leaflet组件其实很友好了&#xff0c;基本上能解决大部分网页端地图的大部分常用需求。 现在&#xff0c;要实现点击点位图标&#xff0c;在图标边上展示信息弹窗这个需求。提供两个思路&#xff1a; 1. 利用leaflet自…

v38.Switch语句

1.Switch语句可以替代if-else语句 2.具体使用 Switch&#xff08;expression&#xff09; &#xff5b; case label&#xff1a;...... &#xff5d; ①将x与case后的label 进行比较&#xff1b; ②注意后面有冒号&#xff1b; ③从上往下开始检查case&#xff1b; ④如果…