获取某进程 内存使用量 shell脚本

每隔10分钟查看xxx进程的内存使用 并发送到指定的tftp server
#!/bin/sh
#spilt pid of current process xxx
pid=`ps |grep xxx|awk 'NR==1 {print $1}'`
echo $pid

BLANK=
#timeout is 600 seconds
TIMEOUT=600

#loop until we kill it
while true 
do

#catch current time
DATE=`date +%H:%M:%S-%Y-%m-%d`

#write current time to log.dat
echo $DATE >> log.dat

#write mem info to log.dat
cat /proc/$pid/status|grep -e VmRSS >> log.dat

#write a enter to log.dat
echo $BLANK >> log.dat

#every 10 minutes put it to remote tftp server(for example 192.168.14.23)
tftp -l log1450.dat -p 192.168.14.23

sleep $TIMEOUT
done


提升内存使用率通常意味着要对系统进行优化,确保内存资源被高效利用。虽然Shell脚本本身无法直接提高物理内存,但它可以帮助监控内存使用情况,自动化一些内存管理任务,或者提供优化建议。 一个简单的Shell脚本可能包含以下几个部分: 1. 监控内存使用:使用`free`, `top`, `vmstat`等命令获取当前内存的使用情况。 2. 分析数据:对获取的数据进行分析,判断内存是否紧张。 3. 优化内存使用:如果检测到内存使用较高,可以根据分析结果执行一些优化操作,如清理缓存、杀死不必要的进程等。 4. 报告和警报:通过邮件或其他方式通知管理员内存使用情况,并根据设定阈值发出警报。 下面是一个简单的Shell脚本示例,用于监控并报告当前系统的内存使用情况: ```bash #!/bin/bash # 获取内存的总量、已使用量和剩余量 total=$(free -m | awk 'NR==2{printf "%.2f", $2/1024 }') used=$(free -m | awk 'NR==2{printf "%.2f", $3/1024 }') free=$(free -m | awk 'NR==2{printf "%.2f", $4/1024 }') # 设置内存使用率的警告阈值 warning_threshold=80.0 # 计算内存使用率 mem_usage=$(echo "scale=2; $used/$total*100" | bc) echo "Total: ${total} GB" echo "Used: ${used} GB" echo "Free: ${free} GB" echo "Memory Usage: ${mem_usage}%" # 检查内存使用率是否超过阈值,如果超过则发出警告 if [ $(echo "$mem_usage > $warning_threshold" | bc -l) -eq 1 ]; then echo "Warning: Memory usage is above ${warning_threshold}%" fi ``` 运行此脚本,可以得到系统当前的内存使用情况,并在使用率超过80%时给出警告。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值