小樱 发表于 2024/9/26 21:16

linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控进程是否内存不足然后重启恢复

linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控进程是否内存不足然后重启恢复

获取free值,单位MB
vmstat -SM | awk '{print $4}' | awk 'NR==3'

检测内存不足125MB则运行命令,使用计划任务来每分钟运行一次命令
运行crontab -e
* * * * * [ $(vmstat -SM | awk 'NR==3 {print $4}') -lt 125 ] && { killall -9 opentracker;sleep 3;cd /home/OpenTracker-master;cd opentracker;./opentracker -f opentracker.conf.sample -p 8080 -P 8080 -p 6961 -P 6961 -p 2710 -P 2710 &}

取不到used字段,不然效果比free可能更精准
早期的帖子,可以代替之前的pidof判断oom杀进程,毕竟触发oom的之前几分钟因为内存不足都无法新建tcp连接,ssh都上不去
https://bbs.itzmx.com/thread-105494-1-1.html

帖子补充
找到更好的真实内存获取方案啦,比free更精准
* * * * * [ $(awk '/MemFree/ {free=$2} /Buffers/ {buffers=$2} /^Cached/ {cached=$2} END {print free + buffers + cached}' /proc/meminfo) -lt 125000 ] && { killall -9 opentracker;sleep 3;cd /home/OpenTracker-master;cd opentracker;./opentracker -f opentracker.conf.sample -p 8080 -P 8080 -p 6961 -P 6961 -p 2710 -P 2710 &}

页: [1]
查看完整版本: linux一条命令获取free剩余内存大小,sh监控脚本,使用计划任务自动监控进程是否内存不足然后重启恢复