进程监控脚本 | 定时任务 | 内核管理 | 网络管理总结

张开发
2026/4/21 13:13:52 15 分钟阅读

分享文章

进程监控脚本 | 定时任务 | 内核管理 | 网络管理总结
1. Bash 进程监控自动化脚本表格脚本要求实现内容核心语法 / 命令函数定义封装进程检测逻辑check_process (){ 逻辑代码}条件判断进程存在 / 不存在分支if [ -n $pid ];then fi循环检测每 5 秒持续监控while true;do sleep 5;done日志记录时间戳 重启记录date % F % T 、 echo 日志文件自动重启进程宕机自动拉起systemctl start 服务名1.2 完整监控脚本源码bash#!/bin/bash # 定义全局变量 PROCnginx LOG_PATH/var/log/proc_monitor.log START_CMDsystemctl start nginx # 定义进程检测函数 check_proc(){ pid$(ps aux | grep $PROC | grep -v grep | awk {print $2} | head -n 1) # 条件判断进程是否存在 if [ -n $pid ];then echo [$(date %F %T)] 进程$PROC正常运行,PID:$pid else echo [$(date %F %T)] 进程$PROC异常宕机,执行重启 $LOG_PATH $START_CMD echo [$(date %F %T)] 进程$PROC重启完成 $LOG_PATH fi } # 无限循环每5秒检测一次 while true do check_proc sleep 5 done1.3 脚本解释1.!/bin/bash指定脚本使用 Bash 解释器。2.PROC_NAMEnginx#定义要监控的进程名可改为sshd、mysql等。3.LOG_FILE/var/log/process_monitor.log#定义日志文件宕机重启信息会记录在这里。4.check_process()#自定义函数封装进程检测逻辑。5.ps aux#查看系统所有进程的详细信息。6.grep $PROC_NAME#过滤出包含nginx的进程行。7.grep -v grep #排除 grep 自身避免干扰结果。8.awk NR1 {print $2}#取第一行的第二列即 PID 号。9.if [ -n $PID ]#判断 PID 是否非空非空 进程存在。10.echo [$(date ...)]#输出带时间戳的运行状态。11. $LOG_FILE#将日志追加写入文件。12.systemctl start $PROC_NAME#启动进程。13.while true #无限循环。14.sleep 5# 每 5 秒检测一次。1.3 脚本运行与部署手动执行赋权执行chmod x monitor.sh前台运行./monitor.sh后台运行./monitor.sh 5. 开机自启crontab -e2. 周期性任务与内核管理实践2.1 周期性任务crontab表格任务需求执行周期完整命令自动清理 /tmp 过期文件每周日凌晨 3 点find /tmp -type f -mtime 7 -delete记录系统状态日志每天中午 12 点date %F %T /var/log/system_health.log ps auxwc -l /var/log/system_health.log free -h /var/log/system_health.log2.1.1 cron 时间语法格式分 时 日 月 周* * * * *0 3 * * 0→ 每周日 3:000 12 * * *→ 每天 12:002.1.2 配置定时任务运行bashcrontab -e写入内容2.1.3 查看已配置任务bashcrontab -lcrontab -l 执行结果:2.1.4 查看 cron 执行日志tail -f /var/log/syslog | grep croncron 执行日志记录2.2 内核管理实践表格操作类型命令作用查看内核参数cat /proc/sys/vm/swappiness查看 swappiness 当前值临时修改sysctl -w vm.swappiness10临时修改重启失效永久修改echo vm.swappiness10 /etc/sysctl.conf写入配置文件重载配置sysctl -p让永久配置立即生效验证结果sysctl -agrep swappiness查看修改后的值2.2.1 /proc 文件系统特性/proc 是虚拟文件系统不占用实际磁盘空间实时反映内核运行状态可直接查看 / 修改内核运行参数。2.2.2 查看内核参数演示cat /proc/sys/vm/swappiness内核参数修改前的值2.2.3 临时修改演示sysctl -w vm.swappiness10临时修改内核参数2.2.4 永久修改演示bashecho vm.swappiness10 /etc/sysctl.conf sysctl -p永久修改配置文件2.2.5 最终验证bashsysctl -a | grep swappiness free -h3.网络管理基础表格分类核心内容详细说明网络模型OSI 七层模型应用层、表示层、会话层、传输层、网络层、数据链路层、物理层TCP/IP 四层模型应用层、传输层、网络层、网络接口层TCP 协议连接机制三次握手、四次断开报文结构头部 20 字节源端口 (2B)、目标端口 (2B)、标志位 (FIN/SYN/ACK)常用端口22(SSH)、53(DNS)、80(HTTP)、3306(MySQL)、6379(Redis)IP 协议报文结构头部 20 字节源 IP (4B)、目标 IP (4B)版本IPv432 位、IPv6128 位表示方式10.0.0.12 255.255.255.010.0.0.12/24私有地址分类A 类10.0.0.0/8B 类172.16.0.0/16 ~ 172.31.0.0/16C 类192.168.0.0/24 ~ 192.168.255.0/243.1 IP 地址分类与私有网段演示ip a3.2 常用端口对应服务演示ss -tupln查看nginx的默认的80端口

更多文章