Linux进程和计划任务管理

Linux 是多任务操作系统,进程管理负责对系统中运行的程序进行监控,调度,启停和资源管控,保障系统稳定高效;计划任务管理则实现程序/命令的定时,周期性自动执行,无需人工干预,是自动化运维的核心基础

ps 命令是Linux操作系统中最为常见的进程查看工具,主要用于显示包含当前运行的各进程完整信息的静态快照。通过不同的命令选项,可以有选择性地查看进程信息

a:显示当前终端下的所有进程信息,包括其他用户的进程,与"x"选项结合时显示系统中所有的进程信息

u:使用以用户为主的格式输出进程信息

x:显示当前用户在所有终端下的进程信息

-e:显示系统内的所有进程信息

-l:使用长(long)格式显示进程信息

-f:使用完整的(Full)格式显示进程信息

进程核心概念

进程(Process):程序(二进制可执行文件)在 Linux 系统中运行的实例,拥有独立的 PID(进程 ID,唯一标识)、内存空间、CPU 资源,是系统资源分配的最小单位。

  • 父进程 / 子进程:Linux 中进程遵循fork 机制,除了初始化进程init(PID=1,系统启动后第一个进程),所有进程都由其他进程创建,创建者为父进程,被创建者为子进程,形成进程树。

  • 进程状态:核心状态需掌握,通过命令可查看

    • R(Running/Runnable):运行中 / 就绪态,进程正在占用 CPU 或等待 CPU 调度

    • S(Sleeping):睡眠态,进程等待事件完成(如 IO 操作),可被唤醒

    • D(Uninterruptible Sleep):不可中断睡眠态,关键 IO 操作中,强制杀死会导致数据丢失,需等待 IO 完成

    • Z(Zombie):僵尸态,进程已结束但父进程未回收其资源(PID、状态信息),大量僵尸进程会占用系统 PID 资源

    • T(Stopped):停止态,进程被暂停(如执行ctrl+z),可被唤醒继续运行

  • 前台 / 后台进程

    • 前台进程:占用终端,执行时终端无法输入其他命令(如直接执行ls -l

    • 后台进程:不占用终端,在后台运行,终端可继续使用(如执行ls -l &&表示后台运行)

进程查看命令(核心)

ps:静态查看进程快照(一次性获取当前进程状态)

最常用组合参数(无分隔符,Linux 风格),记住这两个即可覆盖 90% 场景:

启动进程:前台 / 后台 / 守护进程

  • 前台启动:直接输入命令,如python test.py,终端被占用,关闭终端进程终止

  • 后台启动:命令后加&,如python test.py &,终端可继续使用,关闭终端进程仍会终止(因为进程依赖终端的会话)

Linux计划任务分一次性计划任务和周期性计划任务,分别由at和crontab实现,其中crontab是生产化境中最常用的(占99%场景)。

核心前提:计划任务服务开启

计划任务依赖系统服务,需确保服务运行,否则任务不执行:

  • crontab 依赖 crond 服务(CentOS7+/RHEL7 + 为crond,Ubuntu/Debian 为cron
    • 查看状态:systemctl status crond
    • 启动:systemctl start crond
    • 开机自启:systemctl enable crond
  • at 依赖 atd 服务
    • 查看状态:systemctl status atd
    • 启动:systemctl start atd

2. 一次性计划任务:at(仅执行一次)

适用于未来某个时间点执行一次命令 / 脚本,执行后任务自动失效,无需手动删除。

at 实操示例

bash

运行

# 10分钟后执行一次备份命令,将/root目录打包到/backup
at now + 10 minutes
> tar -zcf /backup/root_$(date +%Y%m%d).tar.gz /root
> ctrl+d  # 保存退出,提示job 1 at 2026-01-27 14:30

# 查看已创建的at任务
atq  # 显示任务编号、执行时间、所属用户

# 删除指定at任务(根据atq显示的任务编号)
atrm 1  # 删除编号为1的at任务

# 查看at任务执行日志(CentOS)
tail -f /var/spool/mail/root  # 任务执行结果会发送到用户邮箱
  • 命令 / 脚本必须使用绝对路径(如/usr/bin/ls,而非ls/root/backup.sh,而非backup.sh),避免因环境变量问题导致任务执行失败;
  • 任务执行的输出(如日志、报错)需手动重定向(> /日志路径 2>&1),否则会以邮件形式发送,堆积大量邮件占用磁盘;
  • 分钟位是第一个字段,不可省略,即使是整点执行,也需写0(如每小时执行一次,分钟位为0)。
crontab 的时间格式

crontab 的核心是时间表达式 + 执行命令,时间表达式由5 个字段组成,代表分、时、日、月、周,字段之间用空格分隔,支持通配符和特殊符号:

字段含义取值范围
第 1 位分钟0~59
第 2 位小时0~23
第 3 位日期1~31
第 4 位月份1~12
第 5 位星期0~7(0 和 7 均为周日)

通配符 / 特殊符号

  • *:匹配任意值(如分钟位*表示每分钟);
  • ,:指定多个值(如小时位3,18表示 3 点和 18 点);
  • -:指定范围(如日期位1-5表示 1 到 5 号);
  • /:指定步长(如分钟位*/10表示每 10 分钟)。

时间表达式示例

  • 0 3 * * *:每天凌晨 3 点整;
  • */10 * * * *:每 10 分钟;
  • 0 0 1 * *:每月 1 号凌晨 0 点;
  • 0 2 * * 6:每周六凌晨 2 点;
  • 30 18 * * 1-5:工作日(周一到周五)18 点 30 分。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值