月度归档:2010年12月

解决Ubuntu服务器中console-kit-daemon进程多的问题

这些天,在装有 Ubuntu 10.10 的服务器上装了个Lxde的桌面端,但是用起来没有命令行来的自如,就卸载了,结果在控制台中发现大量的 console-kit-daemon 进程(60多个吧)。系统资源本来就不高,结果网页请求(Nginx+php+mysql在一台小服务器上)的速度一下子就降了下来。很是郁闷。而且Google中还没有现成的中文帮助。

    经过仔细的Google后,在一大堆的E文中发现,这是桌面端的一个“快速用户切换”包造成的,但是我的系统又找不到这个包。

    后来才发现,把 consolekit 卸载了就可以了。


apt-get purge consolekit







 

tar命令不打包指定目录(排除目录)

假如test目录结构如下

/test/aaa 目录

/test/bbb 目录

/test/ccc   目录

/test/ddd   文件

如果想将这个除aaa目录外的所有目录和文件打包到test.tar.gz ,可以使用tar命令的–exclude参数

tar zcvf test.tar.gz –exclude=/test/aaa
   /test

这样就可以了。 一定要注意排除目录的最后不要带"/",否则exclude目录将不起作用

–exclude多个目录也一样,例如排除aaa和bbb目录

tar zcvf test.tar.ga –exclude=/test/aaa
–exclude=test/bbb
/test

Squid运行调试命令及日志状态分析

当你的 squid.conf 配置文档按照你的想法修改完以后,启动 squid 之旅就开始了。
Squid安装调试命令:

1,初始化你在 squid.conf 里配置的 cache 目录
#/usr/local/squid/sbin/squid -z //初始化缓存空间
如果有错误提示,请检查你的 cache目录的权限。

2,对你的squid.conf 排错,即验证 squid.conf 的 语法和配置。
#/usr/local/squid/sbin/squid -k parse
如果squid.conf 有语法或配置错误,这里会返回提示你,如果没有返回,恭喜,可以尝试启动squid。

3,在前台启动squid,并输出启动过程。
#/usr/local/squid/sbin/squid -N -d1
如果有到 ready to server reques,恭喜,启动成功。
然后 ctrl + c,停止squid,并以后台运行的方式启动它。

4,启动squid在后台运行。
#/usr/local/squid/sbin/squid -s
这时候可以 ps -A 来查看系统进程,可以看到俩个 squid 进程。

5,停止 squid
#/usr/local/squid/sbin/squid -k shutdown
这个不用解释吧。

6,重引导修改过的 squid.conf
#/usr/local/squid/sbin/squid -k reconfigure //载入新的配置文件
这个估计用的时候比较多,当你发现你的配置有不尽你意的时候,可以随时修改squid.conf,然后别忘记对你的 squid.conf排错,然后再执行此指令,即可让squid重新按照你的 squid.conf 来运行。


7./usr/local/squid/sbin/squid -k rotate 轮循日志

8,把squid添加到系统启动项
编辑 /etc/rc.d/rc.local
添加如下行: /usr/local/squid/sbin/squid -s
利用Runc脚本……..

再来点其他的。
1,修改cache 缓存目录的权限。
#chown -R squid:squid /data/cache
我的cache缓存目录是 /data/cache,squid执行用户和用户组是 squid,squid。

2,修改squid 日志目录的权限
#chown -R squid:squid /usr/local/squid/var/logs
这一步并不是适合每一个使用squid的用户.意为让squid有权限在该目录进行写操作 。
例如生成 access.log cache.log store.log

3,查看你的日志文档。
#more /usr/local/squid/var/logs/access.log | grep TCP_MEM_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到内存中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_HIT
该指令可以看到在squid运行过程中,有那些文件被squid缓存到cache目录中,并返回给访问用户。
#more /usr/local/squid/var/logs/access.log | grep TCP_MISS
该指令可以看到在squid运行过程中,有那些文件没有被squid缓存,而是现重原始服务器获取并返回给访问用户。
关于 TCP_XXXX 等参数及代表的信息,请参看《squid中文权威指南》13.2.1 章节。
当然,本例中的蓝色文字是可以修改为其他的参数,例如你的域名 www.xxxx.com

,同样可以看到access.log里关于该域名的行。

二.squid命中率分析

/usr/local/squid/bin/squidclient -p 80 mgr:info
/usr/local/squid/bin/squidclient -p 80 mgr:5min
可以看到详细的性能情况,其中PORT是你的proxy的端口,5min可以是60min


取得squid运行状态信息: squidclient -p 80 mgr:info
*取得squid内存使用情况: squidclient -p 80 mgr:mem
*取得squid已经缓存的列表: squidclient -p 80 mgrbjects. use it carefully,it may crash
*取得squid的磁盘使用情况: squidclient -p 80 mgr:diskd
*强制更新某个url:squidclient -p 80 -m PURGE http://www.xxx.com/xxx.php


*更多的请查看:squidclient-h 或者 squidclient -p 80 mgr:

查命中率:
/usr/local/squid/bin/squidclient -h 111.222.111.111 -p80 mgr:info

/usr/local/squid/bin/squidclient -h具体的IP -p80 mgr:info

 

如果看到很多的TCP_MEM_HIT ,这表明该文件是从内存缓存读取的,squid已经起作用了!你再用浏览器打开该文件,应该是快如闪电了。。呵呵,大功告成了!还有其他类型的HIT,如TCP_HIT等等,这些是从磁盘读取的,我觉得加速的意义不大,只不过缓解了apache的压力而已。

相应于HTTP请求,下列标签可能出现在access.log文件的第四个域。

TCP_HIT

Squid发现请求资源的貌似新鲜的拷贝,并将其立即发送到客户端。

TCP_MISS

Squid没有请求资源的cache拷贝。

TCP_REFERSH_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器返回304(未修改)响应,指示squid的拷贝仍旧是新鲜的。

TCP_REF_FAIL_HIT

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。然而,原始服务器响应失败,或者返回的响应Squid不能理解。在此情形下,squid发送现有cache拷贝(很可能是陈旧的)到客户端。

TCP_REFRESH_MISS

Squid发现请求资源的貌似陈旧的拷贝,并发送确认请求到原始服务器。原始服务器响应新的内容,指示这个cache拷贝确实是陈旧的。

TCP_CLIENT_REFRESH_MISS

Squid发现了请求资源的拷贝,但客户端的请求包含了Cache-Control: no-cache指令。Squid转发客户端的请求到原始服务器,强迫cache确认。

TCP_IMS_HIT

客户端发送确认请求,Squid发现更近来的、貌似新鲜的请求资源的拷贝。Squid发送更新的内容到客户端,而不联系原始服务器。

TCP_SWAPFAIL_MISS

Squid发现请求资源的有效拷贝,但从磁盘装载它失败。这时squid发送请求到原始服务器,就如同这是个cache丢失一样。

TCP_NEGATIVE_HIT

在对原始服务器的请求导致HTTP错误时,Squid也会cache这个响应。在短时间内对这些资源的重复请求,导致了否命中。 negative_ttl指令控制这些错误被cache的时间数量。请注意这些错误只在内存cache,不会写往磁盘。下列HTTP状态码可能导致否定 cache(也遵循于其他约束): 204, 305, 400, 403, 404, 405, 414, 500, 501, 502, 503, 504。

TCP_MEM_HIT

Squid在内存cache里发现请求资源的有效拷贝,并将其立即发送到客户端。注意这点并非精确的呈现了所有从内存服务的响应。例如,某些cache在内存里,但要求确认的响应,会以TCP_REFRESH_HIT, TCP_REFRESH_MISS等形式记录。

TCP_DENIED

因为http_access或http_reply_access规则,客户端的请求被拒绝了。注意被http_access拒绝的请求在第9域的值是NONE/-,然而被http_reply_access拒绝的请求,在相应地方有一个有效值。

TCP_OFFLINE_HIT

当offline_mode激活时,Squid对任何cache响应返回cache命中,而不用考虑它的新鲜程度。

TCP_REDIRECT

重定向程序告诉Squid产生一个HTTP重定向到新的URI(见11.1节)。正常的,Squid不会记录这些重定向。假如要这样做,必须在编译squid前,手工定义LOG_TCP_REDIRECTS预处理指令。

NONE

无分类的结果用于特定错误,例如无效主机名。

相应于ICP查询,下列标签可能出现在access.log文件的第四域。

UDP_HIT

Squid在cache里发现请求资源的貌似新鲜的拷贝。

UDP_MISS

Squid没有在cache里发现请求资源的貌似新鲜的拷贝。假如同一目标通过HTTP请求,就可能是个cache丢失。请对比UDP_MISS_NOFETCH。

UDP_MISS_NOFETCH

跟UDP_MISS类似,不同的是这里也指示了Squid不愿去处理相应的HTTP请求。假如使用了-Y命令行选项,Squid在启动并编译其内存索引时,会返回这个标签而不是UDP_MISS。

UDP_DENIED

因为icp_access规则,ICP查询被拒绝。假如超过95%的到某客户端的ICP响应是UDP_DENIED,并且客户端数据库激活了(见附录A),Squid在1小时内,停止发送任何ICP响应到该客户端。若这点发生,你也可在cache.log里见到一个警告。

UDP_INVALID

Squid接受到无效查询(例如截断的消息、无效协议版本、URI里的空格等)。Squid发送UDP_INVALID响应到客户端

收了一堆netstat命令,判断CC用

查看所有80端口的连接数

代码:

netstat -nat|grep -i "80"|wc -l

对连接的IP按连接数量进行排序

代码:

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

查看TCP连接状态

代码:

netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c

查看80端口连接数最多的20个IP

代码:

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}' |sort -rn|head -n20

用tcpdump嗅探80端口的访问看看谁最高

代码:

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

查找较多time_wait连接

复制内容到剪贴板

代码:

netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20

找查较多的SYN连接

代码:

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

手机内置天线设计

PIFA 天线基本注意:
1 ,天线空间一般要求预留空间: W (宽), L (长), H (高)其中 W ( 15-25mm )、   L ( 35-45mm )、
H ( 6-8mm) 。其中 H 和天线谐振频率的带宽密切相关。 W 、 L 决定天线的最低频率。如果天
线面积如下:
双频( GSM/DCS ): 600×6~8mm
三频( GSM/DCS/PCS ): 700×7~8mm
满足以上要求则 GSM 频段一般可能达到 -1~0dBi , DCS/PCS 可达 0~1dBi 。当然高度越高越
好,带宽性能得到保证。
2 ,内置天线尽量远离周围马达、 SPEARKER 、 RECEIVER 等较大金属物体。有时候有摄像
头出现,这时候应该把天线这块挖空,尽量作好摄像头 FPC 的屏蔽(镀银襁),否则会影响
接收灵敏度。尽量避免 PCB 上微带、引线等与天线弹片平行。
3 ,内置天线附近的结构件(面)不要有喷涂导电漆等导电物质。
4 ,手机天线附近区域不要做电镀工艺以及避免设计金属装饰件等。 有环形的金属圈就要接
地 .   装饰件,通过导电布接到入件上再接到电路板的边缘,即导地。
5 ,内置天线正上、下方不能有与 FPC 重合部分,且相互边缘距离 3mm 以上。
6 ,内置天线与手机电池的间距应在 5mm 以上。
7 ,手机 PCB 的长度对 PIFA 天线的性能有重要的影响,目前直板机 PCB 的长度在 75-105mm
之间这个水平。
8 ,馈电点的焊盘应该不小于 2x3mm ;馈电点应该靠边缘。
9 ,天线区域可适当开些定位孔!
10 ,在目前的有些超薄滑盖机中,由于天线高度不够,可以通过挖空 PIFA 天线下方的地,
然后在其背面再加一个金属片,起到一个参考地的作用,达到满足设计带宽的要求。

MONOPOLE 天线的基本注意:
内置的 MONOPOLE 天线体积稍小,性能较外置天线差。具体要求如下:
1 ,内置天线周围 3mm 内不能有马达、 SPEARKER 、 RECEIVER 等较大金属物体。
2 ,天线的宽度应该不小于 15mm 。
3 ,内置天线附近的结构件(面)不要喷涂导电漆等导电物质。
4 ,手机天线区域附近不要做电镀工艺以及避免设计金属装饰件等。
5 ,内置天线正上、下方不能有与 FPC 重合部分,且相互边缘距离 3mm 以上。
6 ,内置天线与手机电池的间距应在 5mm 以上。
7 , MONOPOLE 必须悬空,平面结构下不能有 PCB 的 Ground ,一般内置天线必须离主板
3mm (水平方向),在天线正下方到地的高度必须保持在 5mm (垂直方向)以上(如下示意
图),可以把主板天线区域的地挖空,目前在超薄的直板机上基本上是满足这个要求。
 
点击查看原图

8 ,由于 MONOPOLE 天线没有参考的地, SAR 一般比 PIFA 天线大,实际应用中受到限制

且这是测试的难点,但是效率一般比 PIFA 高。 离电池要 5mm 以上。


点击查看原图

假内置天线的注意事项:

相同的方向尽量不要有大的铜箔和密集的布线。

2 ,假内置天线的最小空间要   WxL=10x20mm ,

3 ,周围元件离天线应该尽量远些。实际上安排可参照如下: Speaker 磁性大要离天线尽量远

些,相对 Camera   磁性小些可以安排据天线近些。

4 ,假内置天线,效率不高, GSM 可以达到 31 , DCS 可以达到 25   ;如果采用陶瓷天线高

频可以达到 28 左右,但低频会降低到 27-28 左右。

点击查看原图

倒 F 天线的注意事项:

不同于 PIFA 天线的倒 F 天线,弹片如单极天线是窄片或丝线,双馈电点。此种天线的注意

如单极天线,天线必须悬空,要求天线周围 3mm 范围内不能有大的铜箔和元器件。正下方

不得有元器件。天线的最小空间要 10x40x10mm 左右。

 

 

点击查看原图

FICA 天线的注意事项 , 如右图:
 
FICA 天线一实例
 
本天线的特点是高频带宽比较大,是做三频、四频等内置天线的首选。该天线占的面积理论
上是 PIFA 天线的一半左右,可以避开大的金属元器件。该天线物理结构特点是曲折的长微
带线双条并行,保持两条微带之间的距离会对天线的参数有影响。
1 ,要求天线所占平面的下方要铺满地铜箔,并且天线正下方不能有大的元器件。
2 ,天线的高度要 6-8mm
3 ,天线的馈电点比较有特点,两个馈电点可以较远。安排馈电点的原则是在 PCB 的顶端或
边缘,两个馈电点到天线弹片的尾端长度一般要对称相等。
4 ,天线的周围机壳上的处理不要有金属饰物和导电漆。这一点是所有天线的要求。
 

高手在民间,神一般的大爷!

转的~~
 
一个在菜场看到的,神一般的大爷!
那大爷买西红柿来着的,挑了三个放到秤盘里,摊主秤了下说:“一斤半,三块七。”
大爷说:“我就做个汤,用不着那么多。”说完就去掉了个儿最大的那个西红柿。
摊主迅速又瞧一眼秤子,“一斤二两,三块。”
正当我看不过去想提醒大爷注意摊主的秤子时,大爷从容的掏出了七毛钱,拿起刚刚去掉的那个大的西红柿,扭头就走了……
摊主当场就凌乱了,我憋成内伤,把头扭向一边……