Linux系统运维常用命令

发布 : 2013-03-17 分类 : linux

Linux系统运维常用命令

查看占用最多内存的进程(前5个占用最多内存的进程)

ps -eo rss,vsz,pmem,pcpu,vsize,comm | sort -k 1 -r -n |head 
解释:
-e #显示所有进程
-o #定制显示信息的格式
rss #进程占用RAM(内存)的大小(Kbytes字节)
vsize #进程占用的虚拟内存的大小(Kbytes字节)
comm #进程名

查看某个进程占用内存的大小

#例: redis-server进程占用的内存大小
ps -ylC redis-server --sort:rss
ps --no-headers -o rss -C redis-server

查看某个进程的所有子进程共占用的内存大小(每个子进程占用的内存相加)

#例: php-fpm进程及php-fpm所有的子进程使用的内存

ps --no-headers -o rss -C php-fpm |awk '{ sum+=$1 } END { print sum }'

#可以过滤下只查看点关键些的东东
php_pid=`ps --no-headers -o pid,rss -C php-fpm |sort -rn -k 2 |head -n 1| cut -d ' ' -f 1` ; lsof -p $php_pid |grep -e DIR -e IPv4

#更直观显示进程占用内存的大小,GB为单位
ps --no-headers -o rss -C php-fpm |awk '{ sum+=$1 } END { print (sum/1024/1024,"GB") }'

查看指定的某个进程

例: php-fpm进程
ps -f -C php-fpm

某进程CPU利用率

例: php-fpm进程的CPU利用率, 把子进程的利用率也加上
ps --no-headers -o pcpu -C php-fpm |awk '{ sum+=$1 } END { print (sum"%")}'

根据CPU的使用率来排序

ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print $2,$3,$11}'

查看占用内存最多的进程在执行操作些啥

#例: php-fpm进程
php_pid=`ps --no-headers -o pid,rss -C php-fpm |sort -rn -k 2 |head -n 1| cut -d ' ' -f 1` ; lsof -p $php_pid

查看占用CPU最多的进程在执行操作些啥

#例: php-fpm进程
php_pid=`ps --no-headers -o pid,pcpu -C php-fpm |sort -rn -k 2|head -n 1| cut -d ' ' -f 1` ; lsof -p $php_pid

进程占用了CPU多个核

#例:php-fpm进程
echo -e "核数\t进程数(php-fpm)";ps --no-headers -o psr -C php-fpm |sort|uniq -c |awk '{print ""$2,"\t\t",$1}'

当前多少端口被打开处于活动状态

ss -ant|wc -l

查看http的time-wait的连接

ss -o state time-wait 'sport = :http'

查看http建立连接

ss -o state established 'sport = :http'

去掉重复行

sort -u

IP地址排序

#ip地址排序(从小到大)
sort -t"." -k1,1n -k2,2n -k3,3n -k4,4n

#ip地址排序(从大到小)
sort -t"." -k1,1nr -k2,2nr -k3,3nr -k4,4nr

查看linux内核最大打开文件数

ulimit -a | grep "open files" 
ulimit -n

进程打开文件数

lsof |wc -l

搜索活动的连接

lsof -P -i @192.168.0.161

查找监听端口的进程

#例: 11211端口
lsof -P -i :11211

或者使用ss
ss -lp src :11211

还可以使用lsof来查看网络连接状态

#例: 显示ipv4服务及监听端情况
lsof -Pnl +M -i4

更直观的显示父子进程(树状结构显示进程)

ps -axjf

时实查看系统状态的工具

htop 
atop
nmon
nethogs #按进程查看流量占用

查看文件的状态

#例: /data/data20151125_4.dat 这个文件的状态
stat /data/data20151125_4.dat

获取进程的pid

#例: php-fpm
pidof php-fpm

查看网站URL实访问情况

#例: /open/weixin/test.php
tcpdump -w - port 80 |strings|grep "/open/weixin/test.php"

后端服务器查看时实用户的访问IP

tcpdump -w - port 80 |strings |grep X-Forwarded-For |awk '{print $2}'

用户使用的CDN节点信息

tcpdump -w - port 80 |strings |grep X-Via
tcpdump -w - port 80 |strings |grep Cdn-Src-Ip

时实用户访问的设备

tcpdump -w - port 80 |strings |grep User-Agent 

# 抓包,目标端口80,并且目标IP不是10.0.0.100的
tcpdump -nn -t -i eth0 dst port 80 and dst host ! 10.0.0.100

删除15天前的文件

#例: /data/tmp/
find /data/tmp/ -mtime +15 -type f | xargs rm -rf

时实查看目录下文件大小的变化

watch -n 1 -d 'ls -lS /data/logs/nginx'

#时实查看php-fpm进程
watch -n 1 -d "ps -o pmem,rss,pcpu,args -C php-fpm "

跟踪进程

strace -p pid号

使用awk判断查看Nginx日志502的日志数据

cat /data/logs/nginx/www.linuxhub.org.log |awk '{ if ($9 = 502) print $0}'

查找命令

locate #查找

查看CPU,内存,硬盘,网络的时实数据

yum install collectl
collectl -s+m

top查看某个进程的线程使用的CPU内存用户时实信息

top -H -p PID
本文作者 : 泽泽
原文链接 : http://www.linuxhub.cn/2013/03/17/ops-linux.html
版权声明 : 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!

知识 & 情怀 | 二者兼得

微信扫一扫, 向我投食

微信扫一扫, 向我投食

支付宝扫一扫, 向我投食

支付宝扫一扫, 向我投食

留下足迹