可能大家在工作中,客户或者自己想通过一些命令脚本来做些工作,遇到了很多的问题,这里想积累大家在工作中平常的经验或者已有的shell脚本,分享大家。
大家可能在发脚本命令时,直接将命令发到上面可能出现问题,可以打包发附件,大家更好分析。1)显示10个消耗CPU最多的进程:
# {ps aux |head -1 ;ps aux |sort -rn +2 |head –10;}
(2)显示10个消耗存储空间最多的进程:
# ps aux |head -1 ;ps aux |sort -rn +3 |head -10
(3)按顺序显示系统中受罚的进程:
#ps -eakl |head -1 ;ps -eakl |sort -rn +5
(4)按优先级顺序显示系统中的进程:
#ps -eakl |sort -n +6 |head
(5)按处理时间为顺序显示系统中的前十个进程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +3|head –10
(6)按实际内存使用的多少顺序显示系统中的前十个进程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +6 |head –10
(7)按换入页面的多少顺序显示系统中的前10个进程:
#ps vx |head -1 ;ps vx |grep -v PID |sort -rn +4 |head -10
(8)查看CPU的每隔十分钟的使用率
#set varible
integer cpu_us=0
integer cpu_sy=0
integer cpu_id=0
integer cpu_wa=0
integer n=0
#pick-up data and append to /sybase/log/cpu.data
cd /sybase/log
vmstat 2 2|grep "[0-9]"| grep -v "[a-zA-Z]"| awk '{print $14} {print $15} {print $16} {print $17}' >cpu.data
#calculate
while read -u3 line1 && read -u3 line2 &&read -u3 line3 &&read -u3 line4
do
print "$line1:$line2:$line3:$line4"
cpu_us=cpu_us+line1
print "$cpu_us"
cpu_sy=cpu_sy+line2
print "$cpu_sy"
cpu_id=cpu_id+line3
print "$cpu_id"
cpu_wa=cpu_wa+line4
print "$cpu_wa"
n=n+1
print "$n"
done 3
cpu_us=cpu_us/n
cpu_sy=cpu_sy/n
cpu_id=cpu_id/n
cpu_wa=cpu_wa/n
print "$(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M) : cpu-us=$cpu_us : cpu-sy=$cpu_sy : cpu-id=$cpu_id : cpu-wa=$cpu_wa"
#output data
print "$(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M) : cpu-us=$cpu_us : cpu-sy=$cpu_sy : cpu-id=$cpu_id : cpu-wa=$cpu_wa" >>/sybase/log/cpu_`date "+%Y%m"`.log
#temp-data clean
rm cpu.data
(9)查看内存每隔一段时间上的使用百分比
#set varible
integer mem_inuse=0
integer mem_free=0
integer mem_size
integer mem_pctusd
integer mem_int
integer mem_num
integer n=0
#pick-up data and append to /sybase/log/mem.data
cd /sybase/log
svmon -G -i 2 2|grep "^me" |awk '{print $3} {print $4}' >mem.data
#calculate
while read -u3 line1 && read -u3 line2
do
print "$line1:$line2"
mem_inuse=mem_inuse+line1
print "$mem_inuse"
mem_free=mem_free+line2
print "$mem_free"
n=n+1
print "$n"
done 3
mem_inuse=mem_inuse/n
mem_free=mem_free/n
mem_size=`expr $mem_inuse+$mem_free`
mem_pctusd=`expr $mem_inuse*10000/$mem_size`
mem_int=`expr $mem_pctusd/100`
mem_num=`expr $mem_pctusd-mem_int*100`
print "$(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M) : mem_inuse=$mem_inuse : mem_free=$mem_free : mem_pctusd=$mem_int.$mem_num%"
#output data
print "$(date +%Y)-$(date +%m)-$(date +%d) $(date +%H):$(date +%M) : mem_inuse=$mem_inuse : mem_free=$mem_free : mem_pctusd=$mem_int.$mem_num%" >>/sybase/log/mem_`date "+%Y%m"`.log
#temp-data clean
rm mem.data
附件:
cpu_mem.zip (1.51 KB)
收起