深入掌握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。
终止进程:kill
与killall
-
优雅终止:
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占用过高问题
-
使用
top
定位高负载进程:top # 发现PID 1234占用90% CPU
-
终止进程:
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 {} \;
五、总结与最佳实践
-
计划任务:
-
使用
crontab
管理周期性任务,at
处理一次性任务。 -
定期检查
/var/log/cron
日志,确保任务按预期执行。
-
-
进程管理:
-
优先使用
kill -15
终止进程,避免数据丢失。 -
结合
top
和ps
实时监控资源使用。
-
-
网络诊断:
-
利用
netstat
快速定位端口占用和异常连接。
-