本帖最后由 elvis 于 2016-4-26 10:57 编辑
1.查看占用最多内存的进程(前5个占用最多内存的进程)
ps -eo rss,vsz,pmem,pcpu,vsize,comm | sort -k 1 -r -n |head
解释:
-e #显示所有进程
-o #定制显示信息的格式
rss #进程占用RAM(内存)的大小(Kbytes字节)
vsize #进程占用的虚拟内存的大小(Kbytes字节)
comm #进程名
2.查看某个进程占用内存的大小
#例:redis-server进程占用的内存大小
ps -ylC redis-server --sort:rss
ps --no-headers -o rss -C redis-server
3.查看某个进程的所有子进程共占用的内存大小(每个子进程占用的内存相加)
#例: 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") }'
4. 查看指定的某个进程
例: php-fpm进程
ps -f -C php-fpm
5.某进程CPU利用率
例: php-fpm进程的CPU利用率, 把子进程的利用率也加上
ps --no-headers -o pcpu -C php-fpm |awk '{ sum+=$1 } END { print (sum"%")}'
6. 根据CPU的使用率来排序
ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print $2,$3,$11}'
7.查看占用内存最多的进程具体的操作些什么
#例: 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
8.查看占用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
9.进程占用了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}'
10.当前多少端口被打开处于活动状态
ss -ant|wc -l
#查看http的time-wait的连接
ss -o state time-wait 'sport = :http'
#查看http建立连接
ss -o state established 'sport = :http'
11.去掉重复行
sort -u
12.IP地址排序
#ip地址排序(从小到大)
sort -t"." -k1,1n -k2,2n -k3,3n -k4,4n
#ip地址排序(从大到小)
sort -t"." -k1,1nr -k2,2nr -k3,3nr -k4,4nr
13.查看linux内核最大打开文件数
ulimit -a | grep "open files"
ulimit -n
14.进程打开文件数
lsof |wc -l
15.搜索活动的连接
lsof -P -i @192.168.0.161
16.相找监听端口的进程
#例: 11211端口
lsof -P -i :11211
或者使用ss
ss -lp src :11211
还可以使用lsof来查看网络连接状态
#例: 显示ipv4服务及监听端情况
lsof -Pnl +M -i4
17.更直观的显示父子进程(树状结构显示进程)
ps -axjf
18.实时查看系统状态的工具
htop
atop
nmon
19.查看文件的状态
#例: /data/data20151125_4.dat 这个文件的状态
stat /data/data20151125_4.dat
20.获取进程的pid
#例: php-fpm
pidof php-fpm
21.查看网站URL实访问情况
#例: /open/weixin/test.php
tcpdump -w - port 80 |strings|grep "/open/weixin/test.php"
22.后端服务器查看时实用户的访问IP
tcpdump -w - port 80 |strings |grep X-Forwarded-For |awk '{print $2}'
23.用户使用的CDN节点信息
tcpdump -w - port 80 |strings |grep X-Via
tcpdump -w - port 80 |strings |grep Cdn-Src-Ip
24.时实用户访问的设备
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
25.删除15天前的文件
#例: /data/tmp/
find /data/tmp/ -mtime +15 -type f | xargs rm -rf
26.时实查看目录下文件大小的变化
watch -n 1 -d 'ls -lS /data/logs/nginx'
#时实查看php-fpm进程
watch -n 1 -d "ps -o pmem,rss,pcpu,args -C php-fpm "
27.跟踪进程
strace -p pid号
28.使用awk判断查看Nginx日志502的日志数据
cat /data/logs/nginx/www.linuxhub.org.log |awk '{ if ($9 = 502) print $0}'
1.查看占用最多内存的进程(前5个占用最多内存的进程)
ps -eo rss,vsz,pmem,pcpu,vsize,comm | sort -k 1 -r -n |head
解释:
-e #显示所有进程
-o #定制显示信息的格式
rss #进程占用RAM(内存)的大小(Kbytes字节)
vsize #进程占用的虚拟内存的大小(Kbytes字节)
comm #进程名
2.查看某个进程占用内存的大小
#例:redis-server进程占用的内存大小
ps -ylC redis-server --sort:rss
ps --no-headers -o rss -C redis-server
3.查看某个进程的所有子进程共占用的内存大小(每个子进程占用的内存相加)
#例: 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") }'
4. 查看指定的某个进程
例: php-fpm进程
ps -f -C php-fpm
5.某进程CPU利用率
例: php-fpm进程的CPU利用率, 把子进程的利用率也加上
ps --no-headers -o pcpu -C php-fpm |awk '{ sum+=$1 } END { print (sum"%")}'
6. 根据CPU的使用率来排序
ps aux --sort=-%cpu | awk 'NR==1{print $2,$3,$11}NR>1{if($3!=0.0) print $2,$3,$11}'
7.查看占用内存最多的进程具体的操作些什么
#例: 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
8.查看占用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
9.进程占用了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}'
10.当前多少端口被打开处于活动状态
ss -ant|wc -l
#查看http的time-wait的连接
ss -o state time-wait 'sport = :http'
#查看http建立连接
ss -o state established 'sport = :http'
11.去掉重复行
sort -u
12.IP地址排序
#ip地址排序(从小到大)
sort -t"." -k1,1n -k2,2n -k3,3n -k4,4n
#ip地址排序(从大到小)
sort -t"." -k1,1nr -k2,2nr -k3,3nr -k4,4nr
13.查看linux内核最大打开文件数
ulimit -a | grep "open files"
ulimit -n
14.进程打开文件数
lsof |wc -l
15.搜索活动的连接
lsof -P -i @192.168.0.161
16.相找监听端口的进程
#例: 11211端口
lsof -P -i :11211
或者使用ss
ss -lp src :11211
还可以使用lsof来查看网络连接状态
#例: 显示ipv4服务及监听端情况
lsof -Pnl +M -i4
17.更直观的显示父子进程(树状结构显示进程)
ps -axjf
18.实时查看系统状态的工具
htop
atop
nmon
19.查看文件的状态
#例: /data/data20151125_4.dat 这个文件的状态
stat /data/data20151125_4.dat
20.获取进程的pid
#例: php-fpm
pidof php-fpm
21.查看网站URL实访问情况
#例: /open/weixin/test.php
tcpdump -w - port 80 |strings|grep "/open/weixin/test.php"
22.后端服务器查看时实用户的访问IP
tcpdump -w - port 80 |strings |grep X-Forwarded-For |awk '{print $2}'
23.用户使用的CDN节点信息
tcpdump -w - port 80 |strings |grep X-Via
tcpdump -w - port 80 |strings |grep Cdn-Src-Ip
24.时实用户访问的设备
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
25.删除15天前的文件
#例: /data/tmp/
find /data/tmp/ -mtime +15 -type f | xargs rm -rf
26.时实查看目录下文件大小的变化
watch -n 1 -d 'ls -lS /data/logs/nginx'
#时实查看php-fpm进程
watch -n 1 -d "ps -o pmem,rss,pcpu,args -C php-fpm "
27.跟踪进程
strace -p pid号
28.使用awk判断查看Nginx日志502的日志数据
cat /data/logs/nginx/www.linuxhub.org.log |awk '{ if ($9 = 502) print $0}'
编辑回复