<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[沧海一粟]]></title> 
<link>http://www.dzhope.com/index.php</link> 
<description><![CDATA[Web系统架构与服务器运维,php开发]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[沧海一粟]]></copyright>
<item>
<link>http://www.dzhope.com/post//</link>
<title><![CDATA[linux shell小技巧]]></title> 
<author>jed &lt;jed521@163.com&gt;</author>
<category><![CDATA[服务器技术]]></category>
<pubDate>Thu, 31 Mar 2011 22:55:42 +0000</pubDate> 
<guid>http://www.dzhope.com/post//</guid> 
<description>
<![CDATA[ 
	1.删除0字节文件<br/>find -type f -size 0 -exec rm -rf &#123;&#125; &#92;;<br/><br/>2.查看进程<br/>按内存从大到小排列<br/>ps -e&nbsp;&nbsp; -o “%C&nbsp;&nbsp; : %p : %z : %a”&#124;sort -k5 -nr<br/><br/>3.按cpu利用率从大到小排列<br/>ps -e&nbsp;&nbsp; -o “%C&nbsp;&nbsp; : %p : %z : %a”&#124;sort&nbsp;&nbsp; -nr<br/><br/>4.打印说cache里的URL<br/>grep -r -a&nbsp;&nbsp; jpg /data/cache/* &#124; strings &#124; grep “http:” &#124; awk -F’http:’ ‘&#123;print “http:”$2;&#125;’<br/><br/>5.查看http的并发请求数及其TCP连接状态：<br/>netstat -n &#124; awk ‘/^tcp/ &#123;++S[$NF]&#125; END &#123;for(a in S) print a, S[a]&#125;’<br/><br/>6. sed -i ‘/Root/s/no/yes/’ /etc/ssh/sshd_config&nbsp;&nbsp; sed在这个文里Root的一行，匹配Root一行，将no替换成yes.<br/><br/>7.1.如何杀掉mysql进程：<br/>ps aux&#124;grep mysql&#124;grep -v grep&#124;awk ‘&#123;print $2&#125;’&#124;xargs kill -9 (从中了解到awk的用途)<br/><br/>killall -TERM mysqld<br/><br/>kill -9 `cat /usr/local/apache2/logs/httpd.pid`&nbsp;&nbsp; 试试查杀进程PID<br/><br/>8.显示运行3级别开启的服务:<br/>ls /etc/rc3.d/S* &#124;cut -c 15-&nbsp;&nbsp; (从中了解到cut的用途，截取数据)<br/><br/>9.如何在编写SHELL显示多个信息，用EOF<br/>cat << EOF<br/>+————————————————————–+<br/>&#124;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; === Welcome to Tunoff services ===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#124;<br/>+————————————————————–+<br/>EOF<br/><br/>10. for 的巧用(如给mysql建软链接)<br/>cd /usr/local/mysql/bin<br/>for i in *<br/>do ln /usr/local/mysql/bin/$i /usr/bin/$i<br/>done<br/><br/>11. 取IP地址：<br/>ifconfig eth0 &#124;grep “inet addr:” &#124;awk ‘&#123;print $2&#125;’&#124;cut -c 6-&nbsp;&nbsp; 或者<br/><br/>ifconfig&nbsp;&nbsp; &#124; grep ‘inet addr:’&#124; grep -v ’127.0.0.1′ &#124; cut -d: -f2 &#124; awk ‘&#123; print $1&#125;’<br/><br/>12.内存的大小:<br/>free -m &#124;grep “Mem” &#124; awk ‘&#123;print $2&#125;’<br/><br/>13.<br/>netstat -an -t &#124; grep “:80〃 &#124; grep ESTABLISHED &#124; awk ‘&#123;printf “%s %s&#92;n”,$5,$6&#125;’ &#124; sort<br/><br/>14.查看Apache的并发请求数及其TCP连接状态：<br/>netstat -n &#124; awk ‘/^tcp/ &#123;++S[$NF]&#125; END &#123;for(a in S) print a, S[a]&#125;’<br/><br/>15.因为同事要统计一下服务器下面所有的jpg的文件的大小,写了个shell给他来统计.原来用xargs实现,但他一次处理一部分,搞的有多个总和….,下面的命令就能解决啦.<br/>find / -name *.jpg -exec wc -c &#123;&#125; &#92;;&#124;awk ‘&#123;print $1&#125;’&#124;awk ‘&#123;a+=$1&#125;END&#123;print a&#125;’<br/><br/>CPU的数量（多核算多个CPU，cat /proc/cpuinfo &#124;grep -c processor）越多，系统负载越低，每秒能处理的请求数也越多。<br/><br/>——————————————————————————————————————–<br/>16&nbsp;&nbsp; CPU负载&nbsp;&nbsp; # cat /proc/loadavg<br/>检查前三个输出值是否超过了系统逻辑CPU的4倍。<br/><br/>18&nbsp;&nbsp; CPU负载&nbsp;&nbsp; #mpstat 1 1<br/>检查%idle是否过低(比如小于5%)<br/><br/>19&nbsp;&nbsp; 内存空间&nbsp;&nbsp; # free<br/>检查free值是否过低&nbsp;&nbsp; 也可以用 # cat /proc/meminfo<br/><br/>20&nbsp;&nbsp; swap空间&nbsp;&nbsp; # free<br/>检查swap used值是否过高&nbsp;&nbsp; 如果swap used值过高，进一步检查swap动作是否频繁：<br/># vmstat 1 5<br/>观察si和so值是否较大<br/><br/>21&nbsp;&nbsp; 磁盘空间&nbsp;&nbsp; # df -h<br/>检查是否有分区使用率(Use%)过高(比如超过90%)&nbsp;&nbsp; 如发现某个分区空间接近用尽，可以进入该分区的挂载点，用以下命令找出占用空间最多的文件或目录：<br/># du -cks * &#124; sort -rn &#124; head -n 10<br/><br/>22&nbsp;&nbsp; 磁盘I/O负载&nbsp;&nbsp; # iostat -x 1 2<br/>检查I/O使用率(%util)是否超过100%<br/><br/>23&nbsp;&nbsp; 网络负载&nbsp;&nbsp; # sar -n DEV<br/>检查网络流量(rxbyt/s, txbyt/s)是否过高<br/><br/>24&nbsp;&nbsp; 网络错误&nbsp;&nbsp; # netstat -i<br/>检查是否有网络错误(drop fifo colls carrier)&nbsp;&nbsp; 也可以用命令：# cat /proc/net/dev<br/><br/>25 网络连接数目&nbsp;&nbsp; # netstat -an &#124; grep -E “^(tcp)” &#124; cut -c 68- &#124; sort &#124; uniq -c &#124; sort -n<br/><br/>26&nbsp;&nbsp; 进程总数&nbsp;&nbsp; # ps aux &#124; wc -l<br/>检查进程个数是否正常 (比如超过250)<br/><br/>27&nbsp;&nbsp; 可运行进程数目&nbsp;&nbsp; # vmwtat 1 5<br/>列给出的是可运行进程的数目，检查其是否超过系统逻辑CPU的4倍<br/><br/>28&nbsp;&nbsp; 进程&nbsp;&nbsp; # top -id 1<br/>观察是否有异常进程出现<br/><br/>29&nbsp;&nbsp; 网络状态&nbsp;&nbsp; 检查DNS, 网关等是否可以正常连通<br/><br/>30&nbsp;&nbsp; 用户&nbsp;&nbsp; # who &#124; wc -l<br/>检查登录用户是否过多 (比如超过50个)&nbsp;&nbsp; 也可以用命令：# uptime<br/><br/>31&nbsp;&nbsp; 系统日志&nbsp;&nbsp; # cat /var/log/rflogview/*errors<br/>检查是否有异常错误记录&nbsp;&nbsp; 也可以搜寻一些异常关键字，例如：<br/># grep -i error /var/log/messages<br/># grep -i fail /var/log/messages<br/><br/>32&nbsp;&nbsp; 核心日志&nbsp;&nbsp; # dmesg<br/>检查是否有异常错误记录<br/><br/>33&nbsp;&nbsp; 系统时间&nbsp;&nbsp; # date<br/>检查系统时间是否正确<br/><br/>34&nbsp;&nbsp; 打开文件数目&nbsp;&nbsp; # lsof &#124; wc -l<br/>检查打开文件总数是否过多<br/><br/>35&nbsp;&nbsp; 日志&nbsp;&nbsp; # logwatch –print&nbsp;&nbsp; 配置/etc/log.d/logwatch.conf，将 Mailto 设置为自己的email 地址，启动mail服务 (sendmail或者postfix)，这样就可以每天收到日志报告了。<br/>缺省logwatch只报告昨天的日志，可以用# logwatch –print –range all 获得所有的日志分析结果。<br/>可以用# logwatch –print –detail high 获得更具体的日志分析结果(而不仅仅是出错日志)。<br/><br/>36.杀掉80端口相关的进程<br/>lsof -i :80&#124;grep -v “PID”&#124;awk ‘&#123;print “kill -9〃,$2&#125;’&#124;sh<br/><br/>37.清除僵死进程。<br/>ps -eal &#124; awk ‘&#123; if ($2 == “Z”) &#123;print $4&#125;&#125;’ &#124; kill -9<br/><br/>38.tcpdump 抓包 ，用来防止80端口被人攻击时可以分析数据<br/># tcpdump -c 10000 -i eth0 -n dst port 80 > /root/pkts<br/><br/>39.然后检查IP的重复数 并从小到大排序 注意 “-t&#92; +0〃&nbsp;&nbsp; 中间是两个空格<br/># less pkts &#124; awk &#123;‘printf $3〃&#92;n”‘&#125; &#124; cut -d. -f 1-4 &#124; sort &#124; uniq -c &#124; awk &#123;‘printf $1〃 “$2〃&#92;n”‘&#125; &#124; sort -n -t&#92; +0<br/><br/>40.查看有多少个活动的php-cgi进程<br/>netstat -anp &#124; grep php-cgi &#124; grep ^tcp &#124; wc -l<br/><br/>chkconfig –list &#124; awk ‘&#123;if ($5==”3:on”) print $1&#125;’<br/>41.kudzu查看网卡型号<br/>kudzu –probe –class=network<br/><br/><br/>Tags - <a href="http://www.dzhope.com/tags/linux/" rel="tag">linux</a> , <a href="http://www.dzhope.com/tags/shell%25E5%2591%25BD%25E4%25BB%25A4/" rel="tag">shell命令</a>
]]>
</description>
</item><item>
<link>http://www.dzhope.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.dzhope.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>