linux的例行性工作(at)

使用场景:

  • 生活中,我们有太多场景需要使用到闹钟,比如早上 7 点起床,下午 4 点开会,晚上 8 购物,等

  • 在 Linux 系统里,我们同样也有类似的需求。比如我们想在凌晨 1 点将文件上传服务器,或在 晚上 10 点确认系统状态,等等。

at 命令就是为这个需求而诞生的。使用 at 命令,你可以在特定时间自动完成你所设定的任务, 也可以实现自动化,非常方便快捷!

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

安装

  • at命令需要安装

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

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

at version 3.2.2

  • 启动服务

[root@server ~]# systemctl start atd

[root@server ~]# systemctl enable --now atd # 设置开机启动

[root@server ~]# systemctl status atd # 查看状态

at命令详解

格式:at -参数 日期时间

参数

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

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

-d:删除或取消一个任务

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

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

-f:从文件中读取

时间格式

实验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 结束交互性界面

[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

注意:

  • 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

实验3:设置某账户at命令不可用

[root@server ~]# useradd ce1 # 新建账户

[root@server ~]# passwd ce1 # 设置密码

更改用户 ce1 的密码 。

新的密码: # 654321

无效的密码: 密码少于 8 个字符

重新输入新的密码: # 654321

passwd:所有的身份验证令牌已经成功更新。

[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 root]$ cd ~

[ce1@server ~]$ at 14:36 # 测试,at命令不可用

You do not have permission to use at.

[ce1@server ~]$ su root # 切换到root账户

密码:

su: 拒绝权限

# 安全考虑,openEuler做了用户权限切换限制,解决方法如下:

# 重新开启一个ssh连接,以root账户登录

[root@server ~]# vim /etc/pam.d/su # PAMPluggable Authentication Modules)负责

系统中很多应用程序的登录认证,安全设置问题

# 注释掉第21行:

# auth required pam_wheel.so use_uid

# 保存关闭后,切换到原ssh连接

[ce1@server ~]$ su root

密码:

Welcome to 5.10.0-153.12.0.92.oe2203sp2.x86_64

System information as of time: 20231115日 星期三 13:38:45 CST

System load: 0.00

Processes: 139

Memory used: 9.8%

Swap used: 0%

Usage On: 7%

IP address: 192.168.48.130

Users online: 2

[root@server ce1]# cd ~

[root@server ~]#

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

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

相关文章

AAAI2016论文 UCO: A Unified Cybersecurity Ontology

作者信息 作者同样是来自马里兰大学的。 严格说来&#xff0c;此文是Workshop论文&#xff0c;但是一篇非常经典的文章&#xff08;极少数尝试构造通用安全本体的文章&#xff09;&#xff0c;引用非常多。 中心思想 设计UCO&#xff0c;集成来自不同网络安全系统的异构数据…

【白雪讲堂】构建与优化企业知识图谱的实战指南

在GEO&#xff08;生成式引擎优化&#xff09;时代&#xff0c;知识图谱不仅是企业数据资产的“智慧大脑”&#xff0c;更是连接内容与AI理解之间的核心桥梁。一个高质量的知识图谱&#xff0c;能够显著提高AI平台对企业内容的识别度、相关性与推荐权重&#xff0c;从而在AI搜索…

什么是WebSocket?NGINX如何支持WebSocket协议?

大家好&#xff0c;我是锋哥。今天分享关于【什么是WebSocket&#xff1f;NGINX如何支持WebSocket协议&#xff1f;】面试题。希望对大家有帮助&#xff1b; 什么是WebSocket&#xff1f;NGINX如何支持WebSocket协议&#xff1f; 1000道 互联网大厂Java工程师 精选面试题-Java…

【免费项目分享】(项目加说明文档)基于Go语言的城市电动汽车充电桩管理系统设计与实现

免费项目分享系列&#xff0c;需要的可后台 基于Go语言的城市电动汽车充电桩管理系统设计与实现 技术&#xff1a;Go、Beego框架、Vue、MySQL 地址&#xff1a;https://download.csdn.net/download/weixin_53920044/90697080 用户功能 1.充电桩搜索与导航&#xff1a;用户可以…

线程池单例模式

线程池的概念 线程池是一种线程使用模式。 一种线程使用模式。线程过多会带来调度开销&#xff0c;进而影响缓存局部性和整体性能。而线程池维护着多个线程&#xff0c;等待着监督管理者分配可并发执行的任务。…

【Android Compose】焦点管理

官方文档链接&#xff1a; https://developer.android.google.cn/develop/ui/compose/touch-input/focus?hlzh-cn 1、更改焦点遍历顺序 1.1、替换一维遍历顺序 &#xff08;1&#xff09;创建焦点引用对象&#xff1a; /// 创建4个引用对象&#xff08;二选一&#xff09…

dwj2025426

目录 一、25. K 个一组翻转链表 - 力扣&#xff08;LeetCode&#xff09; 二、 215. 数组中的第K个最大元素 - 力扣&#xff08;LeetCode&#xff09; 三、 15. 三数之和 - 力扣&#xff08;LeetCode&#xff09; 一、25. K 个一组翻转链表 - 力扣&#xff08;LeetCode&#…

C++ std::forward 详解

在 C 11 引入的众多特性中&#xff0c;std::forward占据着独特且重要的地位。它主要用于实现所谓的 “完美转发”&#xff0c;这一机制在现代 C 编程中发挥着关键作用&#xff0c;尤其是在编写通用库和高效代码时。 什么是完美转发&#xff1f; 完美转发是指在函数模板中&…

如何保证线程安全(含典型手段与应用场景)

✨ 1. 什么是线程安全&#xff1f; 线程安全指的是&#xff1a;当多个线程同时访问同一块代码时&#xff0c;无论运行时环境采用怎样的调度方式或者这些线程将怎样交替执行&#xff0c;代码的行为都能正确执行&#xff0c;且不会出现数据不一致、脏数据或异常崩溃。 举个简单…

Qt/C++开发监控GB28181系统/协议解释说明/SIP内容解释/每一行数据什么含义

一、前言 搞gb28181开发&#xff0c;首要任务就是解析协议&#xff0c;按照gb28181的文档来&#xff0c;还是非常详细的&#xff0c;通过抓包工具可以查看到具体的收发数据&#xff0c;也可以打开网络调试助手工具&#xff0c;监听5060端口&#xff0c;看到上报的数据&#xf…

C++:string 1

练习题&#xff1a; 这个题的思路是从前往后&#xff0c;从后往前同时找&#xff0c;不是字母的话就继续&#xff0c;是的话就交换。 代码&#xff1a; #define _CRT_SECURE_NO_WARNINGS 1 #include <iostream> #include <string> using namespace std; //1、4个…

SMT贴片加工费控制与优化实践指南

内容概要 SMT贴片加工费的控制与优化需建立在对成本结构的系统性认知基础上。本节从物料采购、设备运行、工艺参数三大维度切入&#xff0c;结合BOM清单管理、钢网使用规范等实操环节&#xff0c;构建覆盖全流程的降本增效框架。以下表格列举了SMT加工成本的典型构成要素及其占…

未来医院已来:AI如何实现无死角安全监控

AI智慧医院如何用算法守护安全与效率 ## 背景&#xff1a;医疗场景的智能化转型需求 现代医院作为人员密集、场景复杂的公共场所&#xff0c;面临诸多管理痛点&#xff1a;患者跌倒可能延误救治、医闹事件威胁安全、医疗垃圾处置不当引发感染风险、重点区域&#xff08;如药…

Nuxt3中使用UnoCSS指南

Nuxt3中使用UnoCSS指南 UnoCSS是一个高度可定制的、原子化CSS引擎&#xff0c;可以轻松集成到Nuxt3项目中。下面介绍如何在Nuxt3中安装和配置UnoCSS。 安装步骤 安装UnoCSS的Nuxt模块&#xff1a; # 使用pnpm pnpm add -D unocss unocss/nuxt# 使用yarn yarn add -D unocss…

mmap详解

mmap详解 mmap基础概念mmap内存映射原理mmap相关函数调用mmap的使用细节mmap和常规文件操作的区别 mmap基础概念 mmap是一种内存映射文件的方法&#xff0c;即将一个文件或者其它对象映射到进程的地址空间&#xff0c;实现文件磁盘地址和进程虚拟地址空间中一段虚拟地址的一一…

Vue3的内置组件 -实现过渡动画 TransitionGroup

Vue3的内置组件 -实现过渡动画 TransitionGroup 是一个内置组件&#xff0c;用于对 v-for 列表中的元素或组件的插入、移除和顺序改变添加动画效果 支持和 基本相同的 props、CSS 过渡 class 和 JavaScript 钩子监听器&#xff0c;但有以下几点区别&#xff1a; 默认情况下&…

【软考-架构】14、软件可靠性基础

✨资料&文章更新✨ GitHub地址&#xff1a;https://github.com/tyronczt/system_architect 文章目录 软件可靠性基本概念软件可靠性建模软件可靠性管理软件可靠性设计N版本程序设计恢复块设计&#xff08;动态冗余&#xff09;双机容错技术、集群技术负载均衡软件可靠性测试…

使用Python+OpenCV对视频抽帧保存为JPG图像

使用PythonOpenCV对视频抽帧保存为JPG图像 import os import cv2 import time#视频文件夹路径&#xff0c;可修改 videoPath D:\\video\\ #保存的图片文件夹路径&#xff0c;可修改 savePath D:\\images\\ videolist os.listdir(videoPath) if not os.path.exists(savePath…

学习整理在centos7上安装mysql8.0版本教程

学习整理在centos7上安装mysql8.0版本教程 查看linux系统版本下载mysql数据库安装环境检查解压mysql安装包创建MySQL需要的目录及授权新增用户组新增组用户配置mysql环境变量编写MySQL配置文件初始化数据库初始化msyql服务启动mysql修改初始化密码配置Linux 系统服务工具,使My…

DeepSeek预训练追求极致的训练效率的做法

DeepSeek在预训练阶段通过多种技术手段实现了极致的训练效率,其中包括采用FP8混合精度训练框架以降低计算和内存需求 ,创新性地引入Multi-head Latent Attention(MLA)压缩KV缓存以提升推理效率,以及基于Mixture-of-Experts(MoE)的稀疏计算架构以在保证性能的同时显著降低…