收集的55个Linux系统管理中常用的一些shell命令

2019-09-23 09:31:14刘景俊

31  系统日志  # cat /var/log/rflogview/*errors
检查是否有异常错误记录  也可以搜寻一些异常关键字,例如:

# grep -i error /var/log/messages
# grep -i fail /var/log/messages
# egrep -i 'error|warn' /var/log/messages 查看系统异常

32  核心日志  # dmesg
检查是否有异常错误记录

34  打开文件数目  # lsof | wc -l
检查打开文件总数是否过多

35  日志  # logwatch ?print  配置/etc/log.d/logwatch.conf,将 Mailto 设置为自己的email 地址,启动mail服务 (sendmail或者postfix),这样就可以每天收到日志报告了。
缺省logwatch只报告昨天的日志,可以用# logwatch ?print ?range all 获得所有的日志分析结果。
可以用# logwatch ?print ?detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。

36.杀掉80端口相关的进程

lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh

37.清除僵死进程。

ps -eal | awk '{ if ($2 == "Z") {print $4}}' | kill -9

38.tcpdump 抓包 ,用来防止80端口被人攻击时可以分析数据

# tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts

39.然后检查IP的重复数 并从小到大排序 注意 "-t +0"  中间是两个空格

# less pkts | awk {'printf $3"n"'} | cut -d. -f 1-4 | sort | uniq -c | awk {'printf $1" "$2"n"'} | sort -n -t +0

40.查看有多少个活动的php-cgi进程

netstat -anp | grep php-cgi | grep ^tcp | wc -l

41.利用iptables对应简单攻击

netstat -an | grep -v LISTEN | awk ‘{print $5}' |grep -v 127.0.0.1|grep -v 本机ip|sed  “s/::ffff://g”|awk ‘BEGIN { FS=”:” } { Num[$1]++ } END { for(i in Num) if(Num>8) { print i} }' |grep ‘[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}'|  xargs -i[] iptables -I INPUT -s [] -j DROP

Num>8部分设定值为阀值,这条句子会自动将netstat -an 中查到的来自同一IP的超过一定量的连接的列入禁止范围。   基中本机ip改成你的服务器的ip地址

42. 怎样知道某个进程在哪个CPU上运行?

# ps -eo pid,args,psr

43. 统计var目录下文件以M为大小,以列表形式列出来。

find /var -type f | xargs ls -s | sort -rn | awk '{size=$1/1024; printf("%dMb %sn", size,$2);}' | head

查找var目录下文件大于100M的文件,并统计文件的个数

find /var -size +100M -type f | tee file_list | wc -l

44. sed 查找并替换内容

sed -i "s/varnish/LTCache/g"   `grep "Via" -rl /usr/local/src/varnish-2.0.4`

sed -i "s/X-Varnish/X-LTCache/g"     `grep "X-Varnish" -rl /usr/local/src/varnish-2.0.4`