sh 运维常用外壳脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 运维常用外壳脚本相关的知识,希望对你有一定的参考价值。

### 根据进程id查端口号

netstat -anop|grep 12146

### 统计访问日志IP和每个IP访问的次数

cat /home/wwwlogs/access-test.log | awk '{print  $1}' |sort| uniq -c |sort -rn |head -10
 
### CPU占用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k3|head -10

### 内存占用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k4|head -10

### 虚拟内存使用最多的前10个进程

ps auxw|head -1;ps auxw|sort -rn -k5|head -10

### 查看每个php-fpm占用内存

ps -ylC php-fpm --sort:rss | awk 'NR>1 {$8=int($8/1024)"M";}{ print;}'

### 查看php-fpm平均使用内存

ps --no-headers -o "rss,cmd" -C php-fpm | awk '{ sum+=$1 } END { printf ("%d%s\n", sum/NR/1024,"M") }'

### 文件大小排序并取前10个

```
du -s ./access.log* | sort -rn | head
```

### 将当前目录下所有aaa都替换为bbb

```
grep -rl 'aaa' ./  | xargs sed -i "" "s/aaa/bbb/g"
```

### 查看进程线程个数

```
ps hH p pid | wc -l
```

### 强制结束内存(CPU)消耗高的php-fpm进程

#!/bin/sh 

fpms=ps aux | grep php-fpm | grep -v grep | awk '{if($4>=5)print $2}'  # 内存是$4,cpu是$3,$2是进程号,内存>5%

for fpm in $fpms; 
   do kill -9 $fpm echo date +'%F %T' $fpm >>/var/log/php5/kill.log 
done
 
### 磁盘监控
 
#!/bin/sh 

diskinfo="/tmp/diskinfo.txt"

for d in `df -P | grep /dev | awk '{print $5}'| sed 's/%//g'`
do
	if [ $d -gt 90 ];then
		df -h>>$diskinfo;
		#sendmail
		mutt -s "disk warining!" "1399534656@qq.com" <${diskinfo} -a ${diskinfo}
		exit 0;
	fi
done

#awk https://segmentfault.com/a/1190000009745139

以上是关于sh 运维常用外壳脚本的主要内容,如果未能解决你的问题,请参考以下文章

sh 常用外壳命令

sh 监控的php-fpm的进程数并自动重启PHP-FPM的外壳脚本

Linux常用Shell脚本,值得学习及收藏

##无监控,不运维,以下是监控里常用的脚本监控

Linux常用shell脚本

shell介绍