💻
QMMMS的笔记
博客
  • QMMMS的笔记
  • agent
    • MCP的背景、原理和开发
    • Agent 历史与背景
    • Agentic Workflows
    • 环境检查与基础工具
    • Tool Call
    • 工具与运行时的值
    • temp
    • 处理 Tool Call error
    • trick
  • algorithm
    • 线性结构
    • 二叉树
    • 图
    • 查找
    • 排序
    • 动态规划
    • 优化方法
    • 数学
    • 迁移至Java
  • computer_composition
    • 系统总线
    • 存储器
    • 输入输出系统
    • 计算机的运算方法
    • 指令系统
    • 补充
  • computer_network
    • 引入
    • 应用层
    • 传输层
    • 网络层(数据平面)
    • 网络层(控制平面)
    • 链路层
    • 常见问答
    • 实验
  • database
    • SQL实战
    • 关系代数
    • 数据库设计
    • 规范化
    • 数据库基本概念
    • 查询原理
    • 数据库恢复技术
    • 并发控制
  • dev_tools
    • Git
    • Nginx
    • Spring
    • LangChain
    • PyTorch Cheat Sheet
    • MyBatis
    • MySQL Cheat Sheet
    • MySQL 补充
    • Redis
    • Docker
    • RocketMQ
    • Chrome
  • linux
    • Linux基础命令与使用
    • 文件与权限
    • 文件与目录操作
    • 权限属性高级
    • 命令与文件的查找
    • 文件压缩和打包
    • vim编辑器
    • shell变量
    • 命令补充
    • 数据流重定向
    • 管道命令
    • shell脚本
    • 用户管理
    • 用户间交流
    • 计划任务
    • 进程管理
    • 软件管理
    • 认识系统服务
    • 运维常用命令
    • 常用命令
  • llm
    • 大规模语言模型概述
    • 分布式训练概述
    • 有监督微调概述
    • 强化学习与LLM
    • LLM评估概述
    • 大模型应用
    • 理解大模型
    • 量化
    • 预训练
    • 上下文学习
  • machine_learning
    • 引入
    • 大致正确学习
    • 一致收敛
    • 偏差还是过拟合?
    • 可学习的充要条件
    • 非均匀可学习性
    • 计算复杂性
  • mathematics
    • 概率与统计基础
    • 线性代数基础
  • operating_system
    • 操作系统基本概念
    • 进程和线程
    • 同步,互斥与死锁
    • 内存管理
    • 文件系统
    • I/O系统
    • 保护与安全
    • 《现代操作系统》
  • statistical_learning
    • 统计学习引入
    • 线性回归
    • 分类
    • 重抽样方法
    • 线性模型选择与正则化
    • 非线性模型
    • 基于树的方法
    • 支持向量机
    • 无指导学习
    • 马尔科夫链和蒙托卡罗方法简明理解
    • R语言速查
  • deep_learning
    • basic_concepts
      • 逻辑回归与损失函数
      • 神经网络
      • 正则化、预处理、权重初始化
      • 优化算法
      • 机器学习策略
      • 复习:从计算机视觉的角度
      • 卷积神经网络
      • 深度卷积网络示例
      • 计算机视觉任务
      • 循环神经网络
      • 自然语言处理任务
      • 注意力
      • Transformers 家族
      • 显卡扫盲
      • 强化学习概述
    • semi-supervise
      • 半监督学习简介
      • Consistency Regularization
      • Proxy-label Methods
      • Holistic Methods
      • Generative Models
      • Graph-Based SSL
      • Self-Supervision for SSL
      • Other SSL methods
  • programming
    • cpp
      • STL
      • C++基础
      • 内存管理
      • 面向对象
    • java
      • 环境和介绍
      • 注释
      • String
      • 面向对象思想
      • Object
      • 包
      • 访问权限修饰符
      • 初始化块
      • 接口
      • 内部类
      • 注解
      • 枚举
      • 集合框架
      • List
      • Map
      • 泛型
      • 迭代
      • IO与流
      • 序列化
      • 异常
      • Lambda
      • Stream流
      • Socket
      • 缓冲
      • 命名规范
      • 拆箱装箱
      • 值传递
      • 深拷贝
      • 反射
      • JVM
      • 并发编程基础
    • python
      • 并发编程
      • 环境管理
  • software_engineering
    • basic_concepts
      • 系统分析与设计概述
      • 规划
      • 需求分析与原型设计
      • 项目管理
      • 建模
      • 数据库设计
      • 架构
      • 配置管理
      • 测试管理
      • 安全
      • 编码原则
      • 微服务
      • 补充内容
    • software_testing
      • CMMI基础
      • PPQA与SQA
      • 软件测试基础
      • 黑盒测试
      • 白盒测试
      • 集成测试
      • 系统测试
      • 测开面试补充
由 GitBook 提供支持
在本页
  • 准备
  • 一次性计划任务
  • 创建一次性计划任务
  • 管理一次性计划任务
  • 周期计划任务
  • 基本管理命令
  • 任务内容格式
  • 系统计划任务
在GitHub上编辑
  1. linux

计划任务

Linux 可以自动执行某些工作,包括一次性计划和周期计划

准备


atd 服务不是默认开启的,在某些版本 Linux 上需要手动开启(需要 root 身份)

[root@qmmms ~]# systemctl restart atd
[root@qmmms ~]# systemctl enable atd
[root@qmmms ~]# systemctl status atd
● atd.service - Job spooling tools
   Loaded: loaded (/usr/lib/systemd/system/atd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2022-10-01 15:28:38 CST; 1min 20s ago
 Main PID: 5681 (atd)
   CGroup: /system.slice/atd.service
           └─5681 /usr/sbin/atd -f

Oct 01 15:28:38 qmmms systemd[1]: Started Job spooling tools.

使用at命令需要权限,权限处理流程如下:

  1. 如果/etc/at.allow文件存在,则只有这个文件里面的用户可以使用at命令

  2. 如果/etc/at.allow文件不存在,并且/etc/at.deny文件存在,那么只有/etc/at.deny文件里面的用户不能使用at命令

  3. 上面的文件都不存在,只有root可以使用at命令

使用crontab命令需要权限,流程与at命令相似,配置文件为/etc/cron.allow和/etc/cron.deny

一次性计划任务


创建一次性计划任务

格式:

at [参数] 时间

参数:

  • -m:在计划完成后,给用户发一封邮件通知已完成

时间格式:

  • HH:MM

  • HH:MM YYYY-MM-DD

  • 其他例子:04pm July 30,now + 5 minutes,04pm + 3 days

注意:

  • 之后键入具体要执行的命令,这些命令会在预定的时间执行,注意按[Ctrl+d]作为结束

  • 计划任务由系统自动执行,无论用户是否登录

  • 计划任务命令使用独立的shell,环境与用户bash不同,建议命令和文件使用绝对路径

    提醒:查找命令绝对路径:which 命令

  • 同上,echo命令的输出需要重定向到用户终端窗口

    提醒:查看用户终端窗口:tty

例子:

[user1@qmmms ~]$ at -m now + 1 minutes
at> echo "hellooooooooo" > /dev/pts/0
at> <EOT>
job 5 at Mon Oct  3 14:00:00 2022

管理一次性计划任务

  • atq和at -l:列出一次性计划任务

  • at -c 任务号码:列出任务的详细内容

  • atrm 任务号码和at -d 任务号码:删除任务

周期计划任务


基本管理命令

格式:

crontab [参数]

参数:

  • -e:进入编辑页面

  • -l:查看内容

  • -r:删除所有任务,若删除一项请crontab -e进入编辑

任务内容格式

crontab -e后会进入编辑页面,每一行代表一个任务,一行的格式为

分钟 小时 日期 月份 周 命令串

关于特殊字符意义:

字符
意义

*

任意

,

或

-

范围

/n

每n个单位

例子:

59 23 1 5 * 命令			#每年5-1 23:59执行命令
*/5 * * * *  命令			#每隔5分钟执行命令
30 16 * * 5 命令			#每周五16:30执行命令

系统计划任务


对于不是针对用户,而是针对系统的计划任务,直接编辑/etc/crontab文件

[root@qmmms ~]# cat /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

如注释所示,会多出一个user-name字段,代表以哪个身份执行

上一页用户间交流下一页进程管理

最后更新于8个月前