当前位置: 首页 > news >正文

深入掌握Linux计划任务与进程管理:从基础到实战

一、Linux计划任务:自动化运维的核心工具

1. 计划任务的权限管理

Linux通过黑名单和白名单机制控制用户对计划任务的使用权限:

黑名单(/etc/cron.deny
  • 作用:禁止指定用户使用crontab命令。

  • 操作示例

    # 禁止用户zkingtest使用计划任务  
    su - root  
    echo "zkingtest" >> /etc/cron.deny  
白名单(/etc/cron.allow
  • 作用:仅允许指定用户使用crontab(需手动创建文件)。

  • 优先级:白名单优先于黑名单。

  • 操作示例

    # 仅允许user1和user2使用计划任务  
    vim /etc/cron.allow  
    user1  
    user2  

2. 计划任务的日志与文件管理

  • 日志路径/var/log/cron,记录所有计划任务的执行情况。

    tail -f /var/log/cron  # 实时监控日志  
  • 任务文件存储:用户计划任务保存在/var/spool/cron/用户名

    cat /var/spool/cron/root  # 查看root用户的计划任务  

3. 一次性任务工具:at命令

at用于执行一次性任务,适合临时调度场景。

安装与启动服务
yum install at -y  
systemctl start atd && systemctl enable atd  
使用案例
  • 三天后执行命令

    at 5pm + 3days  
    at> /bin/ls  
    at> [Ctrl+D]  
  • 查看任务队列

    atq  # 显示待执行任务  
    atrm 2  # 删除任务编号为2的任务  

二、Linux进程管理:资源监控与优化

1. 进程与程序的关系

  • 程序:静态的代码文件(如/usr/bin/firefox)。

  • 进程:程序在内存中的运行实例,拥有独立PID和资源。

  • 父子进程关系:子进程由父进程创建,PPID指向父进程的PID。


2. 进程管理命令

实时监控:top
top  # 动态查看CPU、内存、进程信息  
  • 快捷键

    • P:按CPU使用率排序。

    • M:按内存使用率排序。

    • k:终止指定PID的进程。

进程查看:ps
ps -ef | grep httpd  # 查看httpd进程的详细信息  
  • 输出字段:PID(进程ID)、PPID(父进程ID)、%CPU、%MEM。

终止进程:killkillall
  • 优雅终止

    kill -15 1234  # 发送SIGTERM信号,允许进程清理资源  
  • 强制终止

    kill -9 1234    # 强制终止进程(SIGKILL)  
    killall httpd   # 终止所有httpd进程  

三、网络状态诊断:netstat命令实战

1. 常用参数与功能

netstat -tnlp | grep :80  # 查看80端口的TCP监听状态  
  • 关键参数

    • -t:TCP协议。

    • -n:显示数字地址。

    • -p:显示进程信息。

2. 实际应用场景

  • 检测异常连接

    netstat -antp | grep ESTABLISHED | awk '{print $5}' | sort | uniq -c  

    统计每个IP的连接数,识别DDoS攻击源。

  • 服务端口监控

    netstat -tnlp | grep httpd  # 确认Web服务是否正常监听  

四、实战案例:性能问题排查与自动化任务

案例1:CPU占用过高问题

  1. 使用top定位高负载进程

    top  # 发现PID 1234占用90% CPU  
  2. 终止进程

    kill -9 1234  

案例2:自动化备份与日志清理

  • 每日备份脚本

    crontab -e  
    0 2 * * * tar -czf /backup/web_$(date +\%Y\%m\%d).tar.gz /var/www/html  
  • 每周清理日志

    0 3 * * 1 find /var/log -name "*.log" -mtime +7 -exec rm {} \;  

五、总结与最佳实践

  1. 计划任务

    • 使用crontab管理周期性任务,at处理一次性任务。

    • 定期检查/var/log/cron日志,确保任务按预期执行。

  2. 进程管理

    • 优先使用kill -15终止进程,避免数据丢失。

    • 结合topps实时监控资源使用。

  3. 网络诊断

    • 利用netstat快速定位端口占用和异常连接。

http://www.xdnf.cn/news/403489.html

相关文章:

  • Pandas教程:被冷落的数据结构-Panel
  • 联想 SR550 服务器,配置 RAID 5教程!
  • MySQL创建了一个索引表,如何来验证这个索引表是否使用了呢?
  • window 显示驱动开发-将虚拟地址映射到内存段(二)
  • 探秘高可用负载均衡集群:企业网络架构的稳固基石
  • openwrt 之 procd init 脚本
  • vue3配置element-ui的使用
  • Java SE所需工具与常见类型和运算符介绍
  • Docker原理与使用教程
  • ZYNQ笔记(二十):Clocking Wizard 动态配置
  • 不定长滑动窗口---初阶篇
  • Vue学习百日计划-Gemini版
  • 【华为HCIP | 华为数通工程师】821—多选解析—第二十三页
  • 日志 Slf4j , Java 中使用
  • 服务器带宽基础知识
  • Neo4j 入门级使用
  • 【Git】GitHub上传图片遇到的问题
  • 告别卡顿,图片查看界的“速度与激情”
  • CentOS部署Collabora Online
  • 【Java学习】Lambda表达式
  • 【Linux】进程状态、优先级、切换和调度
  • 三层交换机,单臂路由(用DHCP自动配置ip+互通+ACL
  • Elasticsearch架构原理
  • 数据库原理期末考试速成--最后附带两套题
  • 项目全栈实战-基于智能体、工作流、API模块化Docker集成的创业分析平台
  • 【漫话机器学习系列】254.假设空间(Hypothesis Space)
  • 批量重命名bat
  • 当 AI 邂逅丝路:揭秘「丝路智旅」,用 RAG 重塑中阿文化旅游体验
  • Axure 纵向滚动隐藏滚动条 Axure 滑动开关(属性开关)on-off
  • 数据结构-树(2)