例行性工作at、crontab

一、at指令

1.at指令是单一执行的例行性工作**:** 仅处理执行一次就结束

2.相关文件:

#at工作调度对应的系统服务
root@localhost \~# ps -ef | grep at
root@localhost \~# systemctl status atd

#at的工作文件存放目录
root@localhost \~# ll /var/spool/at

#at工作的日志文件
root@localhost \~# ll /var/log/cron

#白名单,该文件内的人可以使用at命令
root@localhost \~# ll /etc/at.allow

#黑名单,该文件内的人不可以使用at命令
root@localhost \~# ll /etc/at.deny

#两个文件如果都不存在,只有root能使用

3.命令参数:

命令格式: at 参数 时间
1.-m 当任务完成之后,即使没有标准输出,将给用户发送邮件
2.-l atq的别名,可列出目前系统上面的所有该用户的at调度
3.-d atrm的别名,可以取消一个在at调度中的工作
4.-v 使用较明显的时间格式,列出at调度中的任务列表
5.-c 可以列出后面接的该项工作的实际命令内容(脚本)
6.-f 从文件中读取作作业

时间格式:
1.HH:MM
在今天的HH小时MM分钟执行,如果今天的这个时间点已经过了,则明天执行

2.HH:MM YYYY-MM-DD
强制规定在某年某月的某一天的特殊时刻进行该工作

3.now + 2 minutes
从现在开始几分钟minutes, hours, days, or weeks

4.常用参数:

复制代码
#在三分钟后,在所有登录这个系统的终端的屏幕上都输出"hello"
[root@localhost ~]# at now +3 minutes
warning: commands will be executed using /bin/sh
at> wall hello                                       #wall命令广播
at> <EOT>                                            #CTRL+D保存结束
job 8 at Tue Oct 15 22:35:00 2024
 
在结束时间(now)的三分钟后,屏幕上会广播发送一个hello
 
#或指定某一时刻
[root@localhost ~]# at 23:00
warning: commands will be executed using /bin/sh
at> wall haha
at> <EOT>
job 9 at Tue Oct 15 23:00:00 2024
 
# -l 可以查看当前用户的待执行任务 或 atq
[root@localhost ~]# at -l
9	Tue Oct 15 23:00:00 2024 a root
[root@localhost ~]# atq
9	Tue Oct 15 23:00:00 2024 a root
#任务编号  任务执行的时刻   执行的用户
 
# -d 删除待执行任务
[root@localhost ~]# at -d 9                         #删除上面任务编号为9的待执行任务

二、crontab命令

1.crontab是循环执行的例行性工作:每隔一定的周期就需要执行一次

2.相关文件:

#crontab工作调度对应的系统服务

root@localhost \~# systemctl status crond

#用户定义计划任务的文件所在目录

root@localhost \~# ll /var/spool/cron/

#at工作的日志文件

root@localhost \~# ll /var/log/cron

#白名单,该文件内的人可以使用crontab命令

root@localhost \~# ll /etc/cron.allow

#黑名单,该文件内的人不可以使用crontab命令

root@localhost \~# ll /etc/cron.deny

#两个文件如果都不存在,只有root能使用

3.命令参数:

1.-u <user> 定义用户

2.-e 编辑当前用户的crontab

3.-l 列出当前用户的crontab

4.-r 删除用户crontab(清空)

5.-i prompt before deleting

6.-n<host> set host in cluster to run users' crontabs

7.-c get host in cluster to run users' crontabs

  1. -s selinux context

9.-V print version and exit

  1. -x<mask> 启用调试

4. crontab计划任务格式:

|------|------|------|------|-----|
| 分 | 时 | 日 | 月 | 周 |
| 0-59 | 0-23 | 1-31 | 1-12 | 0-7 |

vim /etc/crontab(系统的计划任务,对系统所有用户都生效的任务文件)
crontab计划任务的时间格式中的特殊符号:

|------|---------------------------|
| 特殊字符 | 含义 |
| * | 代表任何时刻 |
| , | 代表分隔时段 |
| - | 代表一段时间范围 |
| /数字 | 指定时间的间隔频率,例如每三分钟进行一次,*/3 |

注: % 在 crontab 里面有特殊含义,如果有命令里面需要使用 % ,需要使用 \ 转义。

5.常用参数:

复制代码
#每天早上9点整,说good morning
[root@localhost ~]#crontab -e 
00 09 * * * wall "good morning"
#每分钟保存一个file-时-分.txt格式的文件
* * * * * touch file-`date +\%H-%M`.txt
相关推荐
Titan20241 分钟前
HTTPS基础知识梳理
服务器·网络·c++·网络协议·学习·http·https
智脑API7 分钟前
CCSwitch Claude Code 如何配置 MCP?服务器启动、工具权限与安全测试
运维·服务器·claude·codex·ccswitch
DolitD38 分钟前
云流技术深度剖析:单服务器下如何实现3D应用的多实例并发?
java·服务器·前端·3d·云原生·云计算
jun_bai43 分钟前
Ecplise中发布项目到配置的tomcat中
java·服务器
芦柑4641 小时前
画布和3D导演台工具:短剧分镜从素材整理到空间预演的完整链路
服务器·前端·数据库
闲云野鹤在人间1 小时前
KVM虚拟化实战|CentOS‑Stream8 两种安装方式+模板制作+基础使用
linux·运维·服务器·centos
小张同学a.1 小时前
Docker 容器实战 2—— docker 仓库
linux·运维·服务器·docker·容器
Android系统攻城狮1 小时前
Linux PipeWire深度解析之pw_core_get_registry调用流程与实战(九十一)
linux·运维·服务器·音频进阶·pipewire音频实战进阶
其实防守也摸鱼1 小时前
智能体推荐:精选 AI Agent 工具与实战指南
运维·开发语言·人工智能·学习·web安全·自动化
小义_1 小时前
JDK 深度解析
java·linux·开发语言·python·面试