例行维护、问题排查等是运维工程师的日常工作,杜老师收集了 30 个常用命令,推荐给会使用到的小伙伴们,如果您有更多的好用命令欢迎分享给我们!
删除文件
1
| find -type f -size 0 -exec rm -rf {} \;
|
注意:删除 0 字节的文件。
查看进程
按内存使用率从大到小排列:
1
| ps -e -o "%C : %p : %z : %a" | sort -k5 -nr
|
按 CPU 从大到小排列:
1
| ps -e -o "%C : %p : %z : %a" | sort -nr
|
输出信息
1
| grep -r -a jpg /data/cache/* | strings | grep "http:" | awk -F 'http:' '{print "http:"$2;}'
|
注意:打印 cache 里的 URL。
查看连接状态
1
| netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
|
注意:查看 http 的并发请求数及其 TCP 连接状态。
替换
1
| sed -i '/Root/s/no/yes/' /etc/ssh/sshd_config
|
注意:sed 在这个文里 Root 的一行,匹配 Root 行,将 no 替换成 yes。
杀掉进程
1
| ps aux | grep mysql | grep -v grep | awk '{print $2}' | xargs kill -9
|
注意:杀掉 MySQL 的进程。
显示服务
1
| ls /etc/rc3.d/S* | cut -c 15-
|
注意:显示运行 3 级别开启的服务。
显示多个信息
1 2 3 4 5
| cat << EOF +-------------------------------------------+ | === Welcome to dusays.com === | +-------------------------------------------+ EOF
|
注意:用 EOF 在编写 Shell 显示多个信息。
for 的巧用
1 2 3 4 5
| cd /usr/local/mysql/bin for i in * do ln /usr/local/mysql/bin/$i /usr/bin/$i done
|
注意:给 MySQL 建软链接。
取 IP 地址
1 2
| ifconfig eth0 | grep "inet addr:" | awk '{print $2}' | cut -c 6-
|
注意:或 ifconfig | grep 'inet addr:' | grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'
。
内存大小
1
| free -m | grep "Mem" | awk '{print $2}'
|
注意:截取内存大小数据。
查看端口
1
| netstat -ant | grep ":80" | grep ESTABLISHED | awk '{printf "%s %s\n",$5,$6}' | sort
|
注意:查看 80 端口的连接信息。
统计文件大小
1
| find / -name *.jpg -exec wc -c {} \; | awk '{print $1}' | awk '{a+=$1} END {print a}'
|
注意:统计服务器下面所有 jpg 文件的大小。
CPU 的负载
检查前三个输出值是否超过系统逻辑 CPU 的 4 倍:
检查 %idle 值是否过低:
内存空间
注意:检查 free 值是否过低,也可用 cat /proc/meminfo
。
交换空间
注意:观察 si 和 so 值是否较大。
磁盘空间
注意:检查是否有分区使用率过高,如发现某分区空间接近用尽,可进入该分区的挂载点,用 du -cks * | sort -rn | head -n 10
命令找出占用空间最多的文件或目录。
网络错误
注意:检查是否出现网络错误,也可用命令 cat /proc/net/dev
。
网络连接数目
1
| netstat -an | grep -E "^(tcp)" | cut -c 68- | sort | uniq -c | sort -n
|
注意:查询网络连接数目。
可运行的进程数目
注意:列出的是可运行进程的数目,检查是否超过系统逻辑 CPU 的 4 倍。
用户
注意:检查登录用户是否过多「比如超过 50 个」也可用命令 uptime
。
系统日志
检查是否有异常的错误记录:
1
| cat /var/log/rflogview/*errors
|
搜寻一些异常的关键字:
1 2
| grep -i error /var/log/messages grep -i fail /var/log/messages
|
杀掉进程
1
| lsof -i :80 | grep -v ID | awk '{print "kill -9",$2}' | sh
|
注意:杀掉 80 端口相关的进程。
清除进程
1
| ps -eal | awk '{if ($2 == "Z") {print $4}}' | kill -9
|
注意:清除僵尸进程。
分析数据
1
| tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts
|
注意:用 tcpdump 抓包,防止 80 端口被人攻击时可以分析数据。
检查 IP 重复数
1
| less pkts | awk {'printf $3"\n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"\n"'} | sort -n -t\ +0
|
注意:检查 IP 的重复数并从小到大排序。
查看活动进程
1
| netstat -anp | grep php-cgi | grep ^tcp | wc -l
|
注意:查看有多少个活动的 php-cgi 进程。
条评论