1 CPU
CPU数量:
cat /proc/cpuinfo | grep -c processor
CPU负载:
系统空闲情况,检查%idle是否过低(比如小于5%)
mpstat 1 1
平均负载:
cat /proc/loadavg
5个值从左到右分别是:系统5分钟、10分钟、15分钟前的平均负载、正在运行的进程数/总进程数、最近运行的进程ID
2 内存
获得总的内存:
free -mh | grep Mem | awk '{print $2}'
内存情况:
free
或者
cat /proc/meminfo
检查内存是否过低
swap情况:
检查used是否过高:
free
检查swap动作是否频繁,观察si和so值是否较大:
vmstat 1 5
按内存使用降序排序:
ps -d -o "%C %p %z %a" | sort -k3 -nr
类似的,按照CPU排序则用k1,或者不需要参数
3 磁盘
磁盘空间情况:
df -h
磁盘IO:
iostat 1 2
4 网络
查看已建立的连接:
netstat -an -t | grep "80" | grep ESTABLISHED | awk '{printf "%s %s\n" ,$5,$6}' | sort -k1
查看http的并发请求数及其TCP连接状态:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
获取当前的IP地址:
ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-
网络流量:
sar -n DEV
检查网络流量(rxbyt/s, txbyt/s)是否过高
rxbyt/s:每秒钟接收的字节数
txbyt/s:每秒钟发送的字节数
网络错误:
netstat -i
RX-OK:接收时正确数据包
RX-ERR:接收时错误数据包
RX-DRP:接收时丢弃数据包
RX-OVR:接收时因为发送方发送速度过快而丢失的数据包
TX-OK:发送时正确的数据包
TX-ERR:发送时错误的数据包
TX-DRP:发送时丢失的数据包
TX-OVR:发送时因为速度过快而丢失的数据包
网络连接数目:
netstat -an | grep "tcp" | cut -c 68- | sort | uniq -c | sort
或
netstat -an | grep "tcp" | awk '{print $6}' | sort | uniq -c | sort
tcpdump 抓包
用来防止80端口被人攻击时可以分析数据
tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
分析数据:检查IP的重复数
less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n
根据IP查网卡地址:
arping 127.0.0.1
5 进程
进程总数:
ps -aux | wc -l
实时进程情况:
top
查看有多少个活动的firefox进程:
netstat -anp | grep firefox | grep tcp | wc -l
某端口正在运行的程序:
lsof -i:22
彻底杀掉某个进程:
ps -aux | grep firefox | awk '{print $2}' | xargs kill -9
大概过程是:列出所有进程,找到名字相关的进程,打印PID,根据PID杀死进程
清除僵死进程:
ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9
显示运行3级别开启的服务:
ls /etc/rc3.d/S* | cut -c 15-
先列出所有服务,然后剪去前15个字符
6 其他
统计服务器下面所有jpg文件的大小的总和:
find / -name *.jpg -exec wc -c {} ; | awk '{print $1}' | awk '{a+=$1}END{print (a/1024/1024)"M"}'
登录用户总数:
who | wc -l
错误日志:
grep -i error /var/log/messages
grep -i fail /var/log/messages
egrep -i 'error|warn' /var/log/messages
核心日志:
dmesg
打开文件数量:
lsof | wc -l
删除目录下0字节文件:
find -type f -exec rm -rf {} ;