在运维过程中,我们有时需要对CPU进行优化,啥时候优化呢? 自然是出问题的时候,那么啥时候出问题呢? 这个问题就可以使用我们的shell脚本了.
原理: 通过监视一段时间内CPU使用情况,找出长期占用CPU的进程并对其进行优化,提高CPU的效率
我们先来写一个监视CPU并计算一小时内CPU的使用情况的脚本:
#!/bin/bash
SECS=3600
UNIT_TIME=60
STEPS=$(( $SECS / $UNIT_TIME ))
echo Watching CPU usage... ;
for((i=0;i<STEPS;i++))
do
ps -eo comm,pcpu |tail -n +2 >>/tmp/cpu_usage.$$
sleep $UNIT_TIME
done
echo
echo CPU eaters :
cat /tmp/cpu_usage.$$ | \
awk '
{ process[$1] += $2; }'
END{
for(i in process)
{
printf( "%-20s %s\n",i,process[i]);
}
}' |sort -nrk 2 | head
rm /tmp/cpu_usage.$$
写惯了python,在写shell脚本,就会觉得shell脚本比较晦涩,而python就不一样了,简单,易懂,
之前有知识星球的星球居民问: shell都能用来干嘛,好像学完了还是不知道能写啥.
除了这个脚本外,shell还可以写很多管理脚本这里举例说明几个方向:
图像文件的缩放及格式转换
使用shell读取mysql数据库
用户管理
检查磁盘及文件系统错误
监控用户登录防范******
搭建防火墙
写图片加载器及下载工具
跟踪网站变动等
其实有时候不用刻意迷信python,很多时候你觉得python好,shell差,实在是你因为我们写shell脚本能力太差.
当然了,有些事情python能做,shell做不了,后面我们会来讨论python的妙处.