<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[静怡家园]]></title> 
<link>http://www.zhanghaijun.com/index.php</link> 
<description><![CDATA[书山有路勤为径，学海无涯苦作舟！]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[静怡家园]]></copyright>
<item>
<link>http://www.zhanghaijun.com/post//</link>
<title><![CDATA[Linux服务器管理Shell经典命令]]></title> 
<author>碟舞飞扬 &lt;webmaster@zhanghaijun.com&gt;</author>
<category><![CDATA[Linux技术]]></category>
<pubDate>Sun, 28 Apr 2013 17:58:10 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//</guid> 
<description>
<![CDATA[ 
	1.站点根目录下查找是否被放置webshell木马根据语句判断是不是PHP木马脚本<br/><br/># find ./ -name “*.php” &#124;xargs egrep “phpspy&#124;c99sh&#124;milw0rm&#124;eval&#92;(gunerpress&#124;eval&#92;(base64_decode&#124;spider_bc”&gt;/tmp/php.txt<br/><br/># grep -r –include=*.php&nbsp;&nbsp;‘[^a-z]eval_r($_POST’&nbsp;&nbsp;&gt; /tmp/eval.txt<br/><br/>#grep -r –include=*.php&nbsp;&nbsp;‘file_put_contents(.*$_POST&#92;[.*&#92;]);’ &gt; tmp/file_put_contents.txt<br/><br/>2.统计服务器访问日志中所有不同ip出现的次数<br/><br/># cat access.log &#124;awk ‘{print $4}’&#124; sort &#124; uniq -c &#124;sort -rn<br/><br/>或者<br/><br/>#cat access.log&nbsp;&nbsp;&#124; awk ‘{print $4}’ &#124; sort -n &#124; awk ‘{S[$NF]++} END {for(a in S) {print a”&#92;t” S[a]}}’ &#124; sort +1 -2nr<br/><br/>awk ‘{print $4}’ :&nbsp;&nbsp;通过管道将第四个字段也就是ip地址筛选出来。<br/><br/>sort -n ：将ip地址进行排序<br/><br/>awk ‘{S[$NF]++} END{for(a in S) {print a”&#92;t” S[a]}}：<br/><br/>$NF是awk里的一个变量，代表最后一个字段的内容，由于这晨只有一个字段，即：IP地址，所以$NF代表IP地址。<br/><br/>S[$NF]++里的S代表一个数组，然后统计IP地址出现的次数. 后面是一个for in 循环语句，将这个数组里的值和键打印出来。<br/><br/>sort +1 -2nr：以第二个字段，也就是每个IP的访问次数进行排序<br/><br/>3.分析出现次数最多的ip对网站的具体数据访问情况<br/><br/># grep -e IP access.log &gt; filename<br/><br/># cat filename &#124;awk ‘{print $8}’&#124;sort&#124;uniq -c&#124;sort -rn<br/><br/>4.访问次数最多的文件或页面,取前20<br/><br/># cat access.log&#124;awk ‘{print $11}’&#124;sort&#124;uniq -c&#124;sort -nr&#124;head -20<br/><br/>5.列出传输最大的几个exe文件（分析下载站的时候常用）<br/><br/># cat access.log &#124;awk ‘($7~/&#92;.exe/){print $10 ” ” $1 ” ” $4 ” ” $7}’&#124;sort -nr&#124;head -20<br/><br/>6.列出输出大于200000byte(约200kb)的exe文件以及对应文件发生次数<br/><br/># cat access.log &#124;awk ‘($10 &gt; 200000 &amp;&amp; $7~/&#92;.exe/){print $7}’&#124;sort -n&#124;uniq -c&#124;sort -nr&#124;head -100<br/><br/>7.如果日志最后一列记录的是页面文件传输时间，则有列出到客户端最耗时的页面<br/><br/># cat access.log &#124;awk ‘($7~/&#92;.php/){print $NF ” ” $1 ” ” $4 ” ” $7}’&#124;sort -nr&#124;head -100<br/><br/>8.列出最最耗时的页面(超过60秒的)的以及对应页面发生次数<br/><br/># cat access.log &#124;awk ‘($NF &gt; 60 &amp;&amp; $7~/&#92;.php/){print $7}’&#124;sort -n&#124;uniq -c&#124;sort -nr&#124;head -100<br/><br/>9.列出传输时间超过 30 秒的文件<br/><br/># cat access.log &#124;awk ‘($NF &gt; 30){print $7}’&#124;sort -n&#124;uniq -c&#124;sort -nr&#124;head -20<br/><br/>10.统计网站流量（G)<br/><br/># cat access.log &#124;awk ‘{sum+=$10} END {print sum/1024/1024/1024}’<br/><br/>11.统计404的连接<br/><br/># awk ‘($9 ~/404/)’ access.log &#124; awk ‘{print $9,$7}’ &#124; sort<br/><br/>12. 统计http status.<br/><br/># cat access.log &#124;awk ‘{counts[$(9)]+=1}; END {for(code in counts) print code, counts[code]}&#039;<br/><br/># cat access.log &#124;awk &#039;{print $9}&#039;&#124;sort&#124;uniq -c&#124;sort -rn<br/><br/>13.查找挂马内容进行批量清除<br/><br/># find /webbase/ -type f -exec grep &#039;www.800816.com.cn&#039; -l {} &#92;;<br/><br/># sed -i &quot;s/body{.*www.800816.com.cn.*}//g&quot; `grep www.800816.com.cn -rl ./`<br/><br/>14.批量转换GBK为UTF-8文件编码<br/><br/># find default -type d -exec mkdir -p utf/{} &#92;;<br/><br/># find default -type f -exec iconv -f GBK -t UTF-8 {} -o utf/{} &#92;;<br/><br/>15.find查找文件的时候怎么避开多个文件目录<br/><br/># find /usr/sam &#92;(-path /usr/sam/dir1 -o -path /usr/sam/file1 &#92;) -prune -o -name &quot;*.txt&quot; -print<br/><br/>16.查看tcp的并发请求数及其TCP连接状态：<br/><br/># netstat -n &#124; awk &#039;/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}&#039;<br/><br/># netstat -nat &#124;awk &#039;{print $6}&#039;&#124;sort&#124;uniq -c&#124;sort -rn<br/><br/># netstat -n &#124; awk &#039;/^tcp/ {++state[$NF]}; END {for(key in state) print key,&quot;&#92;t&quot;,state[key]}&#039;<br/><br/># netstat -n &#124; awk &#039;/^tcp/ {++arr[$NF]};END {for(k in arr) print k,&quot;&#92;t&quot;,arr[k]}&#039;<br/><br/># netstat -n &#124;awk &#039;/^tcp/ {print $NF}&#039;&#124;sort&#124;uniq -c&#124;sort -rn<br/><br/># netstat -ant &#124; awk &#039;{print $NF}&#039; &#124; grep -v &#039;[a-z]&#039; &#124; sort &#124; uniq -c<br/><br/>17.查找请求数前20的IP（常用于查找攻来源）<br/><br/># netstat -anlp&#124;grep 80&#124;grep tcp&#124;awk &#039;{print $5}&#039;&#124;awk -F: &#039;{print $1}&#039;&#124;sort&#124;uniq -c&#124;sort -nr&#124;head -n20<br/><br/># netstat -ant &#124;awk &#039;/:80/{split($5,ip,&quot;:&quot;);++A[ip[1]]}END{for(i in A) print A[i],i}&#039; &#124;sort -rn&#124;head -n10<br/><br/>18.查看有多少个活动的php-cgi进程<br/><br/># netstat -anp &#124; grep php-cgi &#124; grep ^tcp &#124; wc -l<br/><br/>19.查找较多time_wait连接<br/><br/># netstat -n&#124;grep TIME_WAIT&#124;awk &#039;{print $5}&#039;&#124;sort&#124;uniq -c&#124;sort -rn&#124;head -n20<br/><br/>20.找查较多的SYN连接<br/><br/># netstat -an &#124; grep SYN &#124; awk &#039;{print $5}&#039; &#124; awk -F: &#039;{print $1}&#039; &#124; sort &#124; uniq -c &#124; sort -nr &#124; more<br/><br/>21.根据端口列进程<br/><br/># netstat -ntlp &#124; grep 80 &#124; awk &#039;{print $7}&#039; &#124; cut -d/ -f1<br/><br/>22.抓包用来防止80端口被人攻击时可以分析数据<br/><br/># tcpdump -c 10000 -i eth0 -n dst port 80 &gt; /root/pkts<br/><br/>23.用tcpdump嗅探80端口的访问看看谁最高<br/><br/># tcpdump -i eth0 -tnn dst port 80 -c 1000 &#124; awk -F&quot;.&quot; &#039;{print $1&quot;.&quot;$2&quot;.&quot;$3&quot;.&quot;$4}&#039; &#124; sort &#124; uniq -c &#124; sort -nr &#124;head -20<br/><br/>24.查看是哪些蜘蛛在抓取内容。<br/><br/># /usr/sbin/tcpdump -i eth0 -l -s 0 -w - dst port 80 &#124; strings &#124; grep -i user-agent &#124; grep -i -E &#039;bot&#124;crawler&#124;slurp&#124;spider&#039;<br/><br/><br/>25.按域统计流量<br/><br/># zcat squid_access.log.tar.gz&#124; awk &#039;{print $10,$7}&#039; &#124;awk &#039;BEGIN{FS=&quot;[ /]&quot;}{trfc[$4]+=$1}END{for(domain in trfc){printf &quot;%s&#92;t%d&#92;n&quot;,domain,trfc[domain]}}&#039;<br/><br/>26.查看数据库执行的sql<br/><br/># /usr/sbin/tcpdump -i eth0 -s 0 -l -w - dst port 3306 &#124; strings &#124; egrep -i &#039;SELECT&#124;UPDATE&#124;DELETE&#124;INSERT&#124;SET&#124;COMMIT&#124;ROLLBACK&#124;CREATE&#124;DROP&#124;ALTER&#124;CALL&#039;<br/><br/>27.将匹配Root一行中no替换成yes<br/><br/># sed -i &#039;/Root/s/no/yes/&#039; /etc/ssh/sshd_config<br/><br/>28.去掉第一列<br/><br/># awk &#039;{for(i=2;i&lt;=NF;i++) if(i!=NF){printf $i&quot; &quot;}else{print $i} }&#039; list<br/><br/>29.按内存从大到小排列<br/><br/># ps -e -o &quot;%C : %p : %z : %a&quot;&#124;sort -k5 -nr<br/><br/>30.按cpu利用率从大到小排列<br/><br/># ps -e -o &quot;%C : %p : %z : %a&quot;&#124;sort -nr<br/><br/>31.怎样知道某个进程在哪个CPU上运行<br/><br/># ps -eo pid,args,psr<br/><br/>32.清除僵死进程。<br/><br/># ps -eal &#124; awk &#039;{ if ($2 == &quot;Z&quot;) {print $4}}&#039; &#124; kill -9<br/><br/>33.查看硬件制造商<br/><br/># dmidecode -s system-product-name<br/><br/>34.查找占用磁盘IO最多的进程<br/><br/># wget -c http://linux.web.psi.ch/dist/scientific/5/gfa/all/dstat-0.6.7-1.rf.noarch.rpm<br/><br/># dstat -M topio -d -M topbio<br/><br/>35.检查I/O使用率(%util)是否超过100%<br/><br/># iostat -x 1 2<br/><br/>36.磁盘空间，检查是否有分区使用率(Use%)过高(比如超过90%) 如发现某个分区空间接近用尽，可以进入该分区的挂载点，用以下命令找出占用空间最多的文件或目录：<br/><br/># df -h<br/><br/># du -cks * &#124; sort -rn &#124; head -n 10<br/><br/>37.CPU负载检查前三个输出值是否超过了系统逻辑CPU的4倍。<br/><br/># cat /proc/loadavg<br/><br/>38.CPU的数量<br/><br/># cat /proc/cpuinfo &#124;grep -c processor<br/><br/>39.检查网络流量(rxbyt/s, txbyt/s)是否过高<br/><br/># sar -n DEV<br/><br/>40.每隔1秒显示一下网络流量<br/><br/># watch -n 1 &quot;/sbin/ifconfig eth0 &#124; grep bytes&quot;<br/><br/>41.批量覆盖目录下的文件不用确定是否执行<br/><br/># &#92;cp -rf /svn/wwwroot /wwwroot<br/><br/>42.调试命令<br/><br/># strace -p pid<br/><br/>43.跟踪指定进程的PID<br/><br/># gdb -p pid<br/><br/>44.查看当前进程打开了多少个文件句柄<br/><br/>lsof -n &#124;awk ‘{print $2}’&#124;sort&#124;uniq -c &#124;sort -nr&#124;more<br/><br/>45.查找最近一天被修改的HTML文件<br/><br/>find -mtime -1 -type f -name &#92;*.html<br/><br/>46.修改网站的权限<br/><br/>find -type f -name &#92;*.php -exec chmod 444 {} &#92;;<br/><br/>find ./ -type d -exec chmod 555{} &#92;;<br/>Tags - <a href="http://www.zhanghaijun.com/tags/linux/" rel="tag">linux</a> , <a href="http://www.zhanghaijun.com/tags/shell/" rel="tag">shell</a> , <a href="http://www.zhanghaijun.com/tags/%25E7%25BB%258F%25E5%2585%25B8%25E5%2591%25BD%25E4%25BB%25A4/" rel="tag">经典命令</a>
]]>
</description>
</item><item>
<link>http://www.zhanghaijun.com/post//#blogcomment</link>
<title><![CDATA[[评论] Linux服务器管理Shell经典命令]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.zhanghaijun.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>