Linux例行任务:at 、cron、 /etc/contain 辨析
文章目录
- 一、`at`:一次性任务调度
- 1. **基本用法**
- 2. **管理任务**
- 3. **权限控制**
- 二、`cron`:周期性任务调度
- 1. **用户级任务**
- 2. **系统级任务**
- 3. **特殊字符串**
- 4. **权限控制**
- 5. **环境问题**
- 三、容器环境中的例行任务
- 1. **在容器内运行 `cron`**
- 2. **外部调度**
- 3. **避免常见问题**
- 四、总结
在Linux系统中,例行任务管理主要依赖 at 和 cron 两个工具,同时系统提供了灵活的配置方式(如 /etc/crontab 或 /etc/cron.d/ 目录)。若涉及容器环境,还需考虑容器化场景的特殊性。以下是深度解析:
一、at:一次性任务调度
1. 基本用法
- 语法:
at [时间],输入命令后按Ctrl+D保存。 - 时间格式:
- 绝对时间:
10:00 AM、2024-12-31。 - 相对时间:
now + 5 minutes、tomorrow。 - 关键词:
noon(中午12点)、teatime(下午4点)。
- 绝对时间:
- 示例:
echo "shutdown -h now" | at 23:59
2. 管理任务
atq:查看待执行的任务队列。atrm <任务号>:删除指定任务。
3. 权限控制
- 通过
/etc/at.allow和/etc/at.deny限制用户:- 若
at.allow存在,仅列出的用户可使用at。 - 若两文件均不存在,仅 root 可用。
- 若
二、cron:周期性任务调度
1. 用户级任务
- 编辑任务:
crontab -e - 时间格式:
* * * * * <命令> │ │ │ │ │ │ │ │ │ └─ 星期 (0-7, 0和7均为周日) │ │ │ └─── 月份 (1-12) │ │ └───── 日 (1-31) │ └─────── 小时 (0-23) └───────── 分钟 (0-59) - 示例:
0 3 * * * /backup.sh # 每天3点执行 */10 * * * * ping example.com # 每10分钟执行
2. 系统级任务
- 配置文件:
/etc/crontab:需指定用户字段(如root)。/etc/cron.d/:存放独立配置文件。/etc/cron.hourly/,cron.daily/等目录:按周期执行脚本。
- 示例(
/etc/crontab):0 5 * * * root /usr/bin/apt update
3. 特殊字符串
@reboot:系统启动时执行。@daily、@weekly、@monthly:简化周期设置。
4. 权限控制
- 通过
/etc/cron.allow和/etc/cron.deny管理用户权限,规则同at。
5. 环境问题
- 环境变量:cron 任务默认环境简单,建议:
- 使用绝对路径。
- 在脚本中手动设置环境变量(如
PATH)。
- 日志:查看
/var/log/syslog或journalctl -u cron。
三、容器环境中的例行任务
若用户实际指 容器(Container) 中的任务调度(可能误写为 /etc/contain),需注意以下事项:
1. 在容器内运行 cron
- 启动 cron 服务:需在容器启动时运行
cron(如 Dockerfile 中):RUN apt-get install -y cron CMD ["cron", "-f"] # 前台运行 - 日志处理:容器默认无 syslog,建议将输出重定向:
* * * * * root /script.sh > /proc/1/fd/1 2>&1 # 输出到容器日志
2. 外部调度
- 使用宿主机 cron 或工具(如
docker exec)触发容器内任务:0 * * * * docker exec my_container /script.sh
3. 避免常见问题
- 时区设置:确保容器时区与宿主一致(通过挂载
/etc/localtime)。 - 资源限制:避免 cron 任务耗尽容器资源。
四、总结
| 工具 | 用途 | 配置位置 | 适用场景 |
|---|---|---|---|
at | 一次性任务 | /var/spool/at/ | 临时任务 |
cron | 周期性任务 | crontab -e、/etc/cron* | 日常维护 |
| 容器 cron | 容器内周期任务 | 容器内 /etc/cron.d/ | 微服务、云原生 |
关键建议:
- 任务命令使用绝对路径。
- 日志记录和错误处理(如重定向
2>&1)。 - 容器中优先考虑轻量级调度(如
busybox crond)。
相关文章:
Linux例行任务:at 、cron、 /etc/contain 辨析
文章目录 一、at:一次性任务调度1. **基本用法**2. **管理任务**3. **权限控制** 二、cron:周期性任务调度1. **用户级任务**2. **系统级任务**3. **特殊字符串**4. **权限控制**5. **环境问题** 三、容器环境中的例行任务1. **在容器内运行 cron**2. **…...
Vue2中常用指令
文章目录 Vue2中常用指令1. v-text 动态渲染纯文本内容1. 作用2. 基本用法3. 示例4. 注意事项 2. v-html 动态渲染 HTML 内容1. 作用2. 基本用法3. 示例4. 注意事项 3. v-bind 动态绑定 HTML 属性1. 作用2. 基本用法3. 示例4. 注意事项5. 绑定class属性的用法6. 绑定style属性的…...
Sequence to Sequence model
基础模型 基础模型是用RNN模型,前部分是encoder用来寻找法语输入的编码,后半部分是decoder用来生成英文翻译作为输出,每次输出一个单词,直到输出结束标志如EOS。 下面是另一个例子,在CNN模型输出层之前会输出图片的向…...
PHP 超级全局变量
PHP 超级全局变量 引言 在PHP编程中,超级全局变量(Superglobals)是一类特殊的变量,它们在任何函数、类或文件中都可以访问。这些变量在PHP的全局作用域中始终可用,为开发者提供了处理HTTP请求和响应的强大工具。本文…...
如何在Vscode中接入Deepseek
在VS Code(Visual Studio Code)中接入DeepSeek,可以按照以下步骤进行操作: 一、准备工作 确保VS Code为最新版本: DeepSeek可能依赖于VS Code的某些最新功能或修复,因此建议先将VS Code更新到最新版本。注…...
6.appender
文章目录 一、前言二、源码解析AppenderUnsynchronizedAppenderBaseOutputStreamAppenderConsoleAppenderFileAppenderRollingFileAppenderFileNamePattern 三、总结 一、前言 前一篇文章介绍了appender、conversionRule、root和logger节点的解析, 为的是为本篇详细介绍它们的…...
Golang的消息队列架构
一、消息队列的定义和作用 消息队列是一种在不同组件之间传递消息的通信机制。它可以解耦系统的各个部分,提高系统的可靠性和扩展性。消息队列可以在系统之间传递消息,并且在消息发送者和消息接收者之间进行异步通信,使得系统可以更加灵活和高…...
如何在Servlet容器中使用HttpServletResponse?
HttpServletResponse 是 Java Servlet API 中的一个接口,它代表了服务器对客户端的响应。通过 HttpServletResponse 对象,可以设置响应的状态码、发送数据到客户端(如 HTML 页面、文件等)、添加响应头信息等。下面是如何在 Servle…...
DeepSeek自然语言处理(NLP)基础与实践
自然语言处理(Natural Language Processing, NLP)是人工智能领域的一个重要分支,专注于让计算机理解、生成和处理人类语言。NLP技术广泛应用于机器翻译、情感分析、文本分类、问答系统等场景。DeepSeek提供了强大的工具和API,帮助我们高效地构建和训练NLP模型。本文将详细介…...
GESP5级语法知识(十一):高精度算法(一)
高精度加法: #include<iostream> #include<string> #include<algorithm> using namespace std; const int N501;//高精度数的最长长度 //c[]a[]b[]:高精度加法方案一:对应位相加,同时处理进位 void h_add_1(int a[],int b…...
【前端】 react项目使用bootstrap、useRef和useState之间的区别和应用
一、场景描述 我想写一个轮播图的程序,只是把bootstrap里面的轮播图拉过来就用上感觉不是很合适,然后我就想自己写自动轮播,因此,这篇文章里面只是自动轮播的部分,没有按键跟自动轮播的衔接部分。 Ps: 本文用的是函数…...
PYYAML反序列化详解
前言 最近看了很多pyyaml反序列化的漏洞利用,但是对漏洞怎么来的,没有进行很详细的分析,所以今天刚好学习一下反序列化的原理 Yaml基本语法 一个 .yml 文件中可以有多份配置文件,用 --- 隔开即可对大小写敏感YAML 中的值&#x…...
【离散数学上机】T235,T236
T235题目:输入集合A和B,输出A到B上的所有单射函数。 问题描述 给定非空数字集合A和B,求出集合A到集合B上的所有单射函数。 输入格式 第一行输入m和n(空格间隔),分别为集合A和集合B中的元素个数;…...
LeeCode题库第十八题
项目场景: 给你一个由 n 个整数组成的数组 nums ,和一个目标值 target 。请你找出并返回满足下述全部条件且不重复的四元组 [nums[a], nums[b], nums[c], nums[d]] (若两个四元组元素一一对应,则认为两个四元组重复)&…...
Zookeeper 和 Redis 哪种更好?
目录 前言 : 什么是Zookeeper 和 Redis ? 1. 核心定位与功能 2. 关键差异点 (1) 一致性模型 (2) 性能 (3) 数据容量 (4) 高可用性 3. 适用场景 使用 Zookeeper 的场景 使用 Redis 的场景 4. 替代方案 5. 如何选择? 6. 常见误区 7. 总结 前言…...
Ubuntu 下 nginx-1.24.0 源码分析 - ngx_localtime 函数
ngx_localtime 函数 声明 在 src\os\unix\ngx_time.h 中: void ngx_localtime(time_t s, ngx_tm_t *tm); 定义 在 src/os/unix/ngx_time.c 中 void ngx_localtime(time_t s, ngx_tm_t *tm) { #if (NGX_HAVE_LOCALTIME_R)(void) localtime_r(&s, tm);#elsengx_tm…...
SpringBoot初始化8个常用方法
在 Spring Boot 中,初始化方法通常是在应用程序启动时被调用的,可以用来执行应用启动时的一些准备工作。以下是几种常见的初始化方法: 一、顺序 1. 图解 ┌─────────────────────────────┐│ Spring Boot…...
vue组件中各种类型之间的传值
在Vue CLI项目中,组件间的属性传值是一个常见的需求。以下是一些常用的传值方法和规范,以及相应的代码演示和解说: 一. 父组件向子组件传值(Props) 规范:父组件通过属性(props)向子…...
公然上线传销项目,Web3 的底线已经被无限突破
作者:Techub 热点速递 撰文:Yangz,Techub News 今天早些时候,OKX 将上线 PI 的消息在圈内引起轩然大波,对于上线被板上钉钉为传销盘子的「项目」 ,Techub News 联系了 OKX 公关,但对方拒绝置评…...
GitLab CI/CD 的配置详解:从零开始使用 .gitlab-ci.yml 文件
在现代软件开发中,CI/CD(持续集成与持续部署)已成为提高开发效率和代码质量的核心实践。GitLab CI/CD 提供了强大的功能,帮助开发者自动化构建、测试和部署应用程序。而 .gitlab-ci.yml 文件是 GitLab CI/CD 配置的关键所在&#…...
C语言第18节:自定义类型——联合和枚举
1. 联合体 C语言中的联合体(Union)是一种数据结构,它允许在同一内存位置存储不同类型的数据。不同于结构体(struct),结构体的成员各自占有独立的内存空间,而联合体的所有成员共享同一块内存区域…...
Python的元组和列表的区别是什么?
1. 定义和语法形式 列表(List):列表是一种可变的序列类型,使用方括号 [] 来定义。例如:my_list [1, 2, 3] 。列表中的元素可以是不同的数据类型,并且可以包含嵌套的列表、元组等其他数据结构。元组&#x…...
解锁网络安全:穿越数字世界的防护密码
个人主页:java之路-CSDN博客(期待您的关注) 目录 网络安全:数字时代的基石 网络安全面面观 (一)定义与范畴 (二)发展历程 网络安全面临的威胁 (一)恶意软件肆虐 (二…...
利用二分法+布尔盲注、时间盲注进行sql注入
一、布尔盲注: import requestsdef binary_search_character(url, query, index, low32, high127):while low < high:mid (low high 1) // 2payload f"1 AND ASCII(SUBSTRING(({query}),{index},1)) > {mid} -- "res {"id": payloa…...
GPT-SWARM和AgentVerse的拓扑结构和交互机制
GPT-SWARM和AgentVerse的拓扑结构和交互机制 拓扑结构区别 GPT-SWARM:采用图结构,将语言智能体系统描述为可优化的计算图。图中的每个节点代表一个操作,如语言模型推理或工具使用等特定功能,边则描述了操作之间的信息流,代表智能体之间的通信渠道。多个智能体连接形成的复…...
python爬虫解决无限debugger问题
方法一 关闭定时任务 关闭断点执行代码打开断点 # 无限debugger产生原因 # 1. web开发者工具打开 # 2. js代码中有debugger # 3. js有定时处理[推荐] for(let i0;i<99999;i){window.clearInterval(i)}方法二 关闭breakpoint 方法三 修改JS代码 使用fiddler,抓…...
使用rknn进行facenet部署
文章目录 开源仓库pth转onnxnetron可视化onnx转rknnC++实现开源仓库 https://github.com/bubbliiiing/facenet-pytorch pth转onnx 修改facenet网络的forward函数代码 修改前 def forward(self, x, mode = "predict"):if mode ==...
C# 两种方案实现调用 DeepSeek API
目录 序 开发运行环境 访问API的一个通用方法 原生官网实现 申请 API key 调用实现 调用示例 腾讯云知识引擎原子调用 申请 API key 调用示例 小结 序 DeepSeek(深度求索) 最近可谓火爆的一塌糊涂,具体的介绍这里不再赘述&#x…...
Linux下的进程切换与调度
目录 1.进程的优先级 优先级是什么 Linux下优先级的具体做法 优先级的调整为什么要受限 2.Linux下的进程切换 3.Linux下进程的调度 1.进程的优先级 我们在使用计算机的时候,通常会启动多个程序,这些程序最后都会变成进程,但是我们的硬…...
图神经网络是什么,有什么实际应用
图神经网络是什么 图神经网络(Graph Neural Network,GNN)是一种专门用于处理图结构数据的神经网络,它能对图中的节点、边和整个图进行学习和推理,在社交网络分析、生物信息学、推荐系统等领域应用广泛。以下是其原理及示例说明: 图神经网络原理 节点表示学习:为图中每…...
