一张图片
2010.03.29. 18:33 Articles by 老翅 Posted in 感悟 - 6 CommentsAuthor Website: http://www.nowings.com


最近有一个同事要求我写两个脚本(或者我主动要求),需求是这样子的。
第一个需求是给出一个进程的名称,杀掉它。
第二个需求是监视一个log日志文件的输出,遇到指定字眼,就要以别的形式报警。
关于第一个要求。恰好以前看到类似的代码,翻出来看看。
ps ax | grep 进程名字 | grep -v grep | awk '{ print $1 }' | xargs kill -9
翻出来马上意识到,这不是一个很好的解决方案,比如说 如果想结束Firefox进程,进程中存在 firefox,以及 vi firefox.conf,那么这俩不幸的进程就会被干掉了。
不过找到了另外一个命令 pkill write by Kjetil Torgrim Homme. 直接调用 pkill -9 进程名字 就万事大吉了。
第二个需求么,就有点费劲了,逻辑倒是比较容易理清楚,就是对我来说实现起来有些难度。Google搜索了一下,果然也有成型的开源产品,叫做Swatch
只要下载安装,稍作配置,就能很好的工作。可以参考 这里
Logcheck 也不错, http://logcheck.org/ http://sourceforge.net/projects/logcheck/
推荐给同事使用了。
接上篇。Apache配置好了之后,尝试把网页文件上传到服务器,简单的把WWW服务架起来。蛮以为简单的事情,结果问题来了。
同事编辑的网页是使用的中文名称,比如"网站首页.html"。而服务器在架设之初,我使用的编码格式是en_US.UTF-8,可以支持汉字。所以没有多想,用FTP工具将其上传,且在FTP工具显示正常。打开浏览器测试,失败。
大概的心里有数了,用Putty连接到服务器查看了一下,乱码。
rar格式的比较好办,rar 3.6以后版本对unicode的支持更加智能化。 Linux下使用rar进行压缩/解压缩时,可以使用-scuc,来强制指定文件名用unicode编码进行压缩和解压缩。 对于zip格式的需要注意,Windows下创建的zip压缩包默认是使用的本地编码。即如果是简体中文的Win系统,则会使用GBK来存储文件名。此时,在Linux下解压缩包含中文文件名的压缩包时,需要在命令行使用参数-O cp936。 同理,在Windows下如果用WinRAR来解压缩zip文件倒是没有这个限制,WinRAR会自动检测文件名的编码方式。 不建议在Linux下使用gz/tar格式的压缩文件来给Windows机器共享文件,如果gz/tar压缩包中包含中文文件名会导致winrar解压缩包含中文文件名的文件时失败! --来自这里 |
ftp乱码的现象和原因:访问ftp,遇到中文文件名出现乱码。由于在FAT和NTFS文件系统中,中文是直接按照操作系统所使用的编码方式存储的,中文系统通常是gbk编码。针对不同的ftp客户端软件,有的ftp服务器端软件无法将文件系统中的编码,转换成客户端软件所使用的编码,于是就出现了乱码。--来自这里
|
首先是在Windows上用Filezilla连接Ubuntu时看到的中文文件名全是乱码,但是用Putty通过SSH连接Ubuntu却是正常的(原先是乱码,后来改设置为UTF-8编码就好了,不过Filezilla没有类似的设置可改)。如果用Filezilla向Ubuntu上传本地的中文文件,则在Filezilla里看到Remote端的文件名是正确的,但在Putty里看到是乱码。 然后更严重的问题是:当我在Ubuntu上用Filezilla的SFTP从FreeBSD上下载文件时发现那些中文文件名都成了乱码。只好改用tar/tar.gz再试,结果还是乱。最后问了Google,但是结果并不理想,试过很多方法都无法解决,甚至为此特地在FreeBSD和Ubuntu上都装了p7zip试验,也还是不行。 折腾了好几天之后,我才想到应该研究一下几个系统上的locale设置究竟是如何的--坦白说,要不是因为搜到的资料里有提到这方面,我从前还真没注意到这回事。在FreeBSD和Ubuntu上分别运行了locale命令检查的结果是: FreeBSD的LC_ALL为"C",即"POSIX"的别名,似乎是一种无固定编码的方案,或者可以认为就是本地编码,默认的设置。 这样就好理解了,Filezilla不改变编码方式,所以当Remote端与本机的编码不一致时,必然乱码。所以在Windows上用Filezilla连接Ubuntu看到乱码,而我的Putty因为是设置为UTF-8编码,所以看到的是正确的--因为Ubuntu一端是UTF-8。而如果用Filezilla上传中文文件,则因为Windows是本地编码,所以上传以后仍然为本地编码(GB系),而Ubuntu是UTF-8所以是乱码。 FreeBSD那边的问题也是一样的,因为那些文件都是以前从Windows上传上去的,用的都是GB系编码,而早年我用Putty都是用默认的本地编码方案,所以一直没有发现问题。这样的话,因为FreeBSD是本地编码,与Ubuntu的UTF-8不一致,所以怎么弄都是乱码。 但是据说用7zip这样的工具打包以后是可以解决这样的编码不一致问题的,我试了却没有成功。后来才想明白,因为7zip是根据系统的locale设置来对文件名进行相应的处理,因为原来我处理的时候文件名是GB系的编码,而系统是设置为UTF-8,所以总也不对。 |
但是,试着在浏览器里打开时,一切正常。
|
NameVirtualHost *:80
<VirtualHost *:80> |