运维工作中遇到的问题汇总  http://tshare365.com/archives/1561.html

解决centos系统远程连接慢


linux面试题:删除一个目录下的所有文件,但保留一个指定文件

find /xx -type f ! -name "file10"|xargs rm -f 

find /xx -type f ! -name "file10" -exec rm -f {} \;

rsync -az --delete --exclude "file10" /null/ /xx/


快速截取时间段的日志做分析

awk '$1 >="16/May/2015:11:52:22" && $1 <="16/May/2015:11:55:54"' access.log

awk '{ip[$3]++}END {for (s in ip) print s,ip[s]}' access.log


shell脚本之批量处理文件


Varnish 获取真实IP

tcpflow -cp host IP and port 80

由上图我们可以看出来是使用了X-Forwarded-For变量

修改varnish的配置文件

vim /etc/init.d/varnishncsa 

修改为这样的%{X-Forwarded-For}i

DAEMON_OPTS="-m TxHeader:X-Cache: HIT -F \"%{X-Forwarded-For}i %{%Y-%m-%dT%H:%M:%S+08:00}t %m %U %q - %s %b %D %{User-Agent}i\" -P $pidfile -a -w $logfile -D"


查询库文件属于哪个rpm包

yum install XXX --enablerepo=YYY

yum provides libname


增加swap的大小

在生产环境中要注意,先将服务器切下来,然后停掉服务,添加swap


Too many authentication failures for root (code2)解决办法

找到这个选项:MaxAuthTries=2


Linux被DDOS及CC***解决方案

netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 | netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20

iptables -I INPUT -s 222.127.94.0/16 -j DROP

iptables -I INPUT -s 247.27.128.0/16 -j DROP

iptables -I INPUT -s 145.27.133.0/16 -j DROP

iptables -I INPUT -s 193.1.0.0/8 -j DROP 【慎用封禁整个段】

运行下面这行命令,来查看谁的访问量最高(需要服务器安装tcpdump)

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20

如果出现误封可以参考下面这行解封命令

iptables -D INPUT -s 222.142.2.0/16 -j DROP