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\> \ # 点击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 # PAM(Pluggable 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: 2023年 11月 15日 星期三 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 \~\]#

相关推荐
cyber_两只龙宝几秒前
haproxy--使用socat工具实现对haproxy权重配置的热更新
linux·运维·负载均衡·haproxy·socat
“αβ”2 分钟前
IP协议内容补充
服务器·网络·网络协议·tcp/ip·智能路由器·nat·ip协议
٩( 'ω' )و2603 分钟前
linux网络--基础概念
linux·网络
zhang6183993 分钟前
Linux中不同服务器之间迁移python 虚拟环境-conda-pack
linux·运维·python
深圳市恒讯科技6 分钟前
2026新加坡服务器硬件防火墙配置推荐
运维·服务器·云计算
小江||小廖7 分钟前
服务器如何设置共享文件夹,让其他内网电脑可以访问
运维·服务器
HIT_Weston8 分钟前
121、【Ubuntu】【Hugo】首页板块配置:list 模板(一)
linux·ubuntu·list
小虾米vivian9 分钟前
达梦使用dmfldr和外部表导入txt数据(windows环境)
java·服务器·数据库
The森10 分钟前
万字长文外加示例:进入内核理解Linux 文件描述符(fd) 和 “一切皆文件” 理念
linux·经验分享·笔记
历程里程碑12 分钟前
Linux19 实现shell基本功能
linux·运维·服务器·算法·elasticsearch·搜索引擎·哈希算法