软件介绍


13
十一 08

开多个Gtalk

小花 同学那里知道的,同一个桌面开多个gtalk的方法,在gtalk.exe后加上个 “/nomutex” 参数,便可以了。

同学们果然都是很令人刮目相看的,即使不是技术部门的,也会偶尔提出来非常技术的问题,甚至解决方案,真的很赞赏,我深深的体会到和聪明人共事真的是一件快乐和庆幸的事儿。


6
十一 08

多 线程/进程 下载工具(for Linux)

1. lftp

lftp -c “pget -n 5 http://mirror.lupaworld.com/centos/5.2/isos/i386/CentOS-5.2-i386-bin-1of6.iso”

2.proz

http://prozilla.genesys.ro/

3.Axel

http://axel.alioth.debian.org/


5
十一 08

发现一个强悍的文件搜索利器

朋友推荐给我的,“Everything”,代替Windows上默认的文件搜索功能非常不错。速度非常快,几乎是瞬间。


22
十 08

Linux上的文本“浏览器”

从elinks开始,回想了一下Linux下基于ncurses库的“浏览器”,有如下几种:

lynx :最经典的,不用说了

w3m :用的和知道的人好像比较少。

elinks :昨天刚看到的,据说是替代lynx的程序。

links :指向elinks的软链接。

htmlview :一个shell角本,不能算是文件浏览器,他是一个探测程序,使用探测到的程序打开URL,在文本终端上,总是使用文件浏览器打开URL。

你还知道哪些?


21
十 08

编码问题(for Linux)

查看文件编码格式及文件编码转换及文件系统(目录、文件名)编码转换

查看文件编码格式

1. 使用VIM

使用命令 :set fileencoding 即可显示文件编码

如果你只是想查看其它编码格式的文件或者想解决用Vim查看文件乱码的问题,那么你可以在
~/.vimrc 文件中添加以下内容:

set encoding=utf-8 fileencodings=ucs-bom,utf-8,cp936

这样,就可以让vim自动识别文件编码(可以自动识别UTF-8或者GBK编码的文件),其实就是依照fileencodings提供的编码列表尝试,如果没有找到合适的编码,就用latin-1(ASCII)编码打开。

2. 使用enca ( Extremely Naive Charset Analyser )

这个包,系统默认可能没有安装,需要安装。

使用方法:$enca filename

文件编码转换

1. 使用VIM
:set fileencoding=utf-8
保存退出。

2. 使用enca包工具enconv转换文件编码

比如要将一个GBK编码的文件转换成UTF-8编码,操作如下:
enconv -L zh_CN -x UTF-8 filename

3. iconv 转换,(iconv属于glibc-common包,一般系统都有)iconv的命令格式如下:

iconv -f encoding -t encoding inputfile

比如将一个UTF-8 编码的文件转换成GBK编码

iconv -f GBK -t UTF-8 file1 -o file2

Linux文件名编码转换

从Linux往windows 拷贝文件或者从windows往Linux拷贝文件,有时会出现中文文件名乱码的情况,出现这种问题的原因是因为,windows的文件名中文编码默认为 GBK,而Linux中默认文件名编码为UTF8,由于编码不一致,所以导致了文件名乱码的问题,解决这个问题需要对文件名进行转码。

在Linux中专门提供了一种工具convmv进行文件名编码的转换,可以将文件名从GBK转换成UTF-8编码,或者从UTF-8转换到GBK。

首先看一下你的系统上是否安装了convmv,如果没安装的话用:
yum -y install convmv
安装。
下面看一下convmv的具体用法:

convmv -f 源编码 -t 新编码 [选项] 文件名

常用参数:
-r 递归处理子文件夹
–notest 真正进行操作,请注意在默认情况下是不对文件进行真实操作的,而只是试验。
–list 显示所有支持的编码
–unescap 可以做一下转义,比如把%20变成空格
比如我们有一个utf8编码的文件名,转换成GBK编码,命令如下:

convmv -f UTF-8 -t GBK –notest utf8编码的文件名

这样转换以后”utf8编码的文件名”会被转换成GBK编码(只是文件名编码的转换,文件内容不会发生变化)。

注意:不要在NTFS和FAT文件系统中使用此命令,否则可能产生意外结果,如果要在Linux中正确的显示NTFS和 FAT的中文件名,可以通过mount参数来解决,具体方法查看一下man手册。



29
九 08

ARP攻击对策(for Linux)

不了解ARP的同学,看下面来自http://www.oxid.it/的演示:

全屏显示

简单点儿说:之所以有ARP攻击是因为ARP协议本身设计的缺陷。网络设备在动态更新系统的ARP表时,会被恶意欺骗。ARP协议是在2层设备(数据链路层:交换机)之间传递的协议,ARP包可以在整个“冲突域”中传递。而一般而言,一个冲突域就是一个子网。VLAN就是设计用来隔离“冲突域”的,所以VLAN可以隔离ARP攻击。简单点说,就是不要和攻击者在一个子网。可惜不是所有的IDC都提供单独的子网(VLAN)给用户,因为划分子网会浪费IP地址。

解决ARP攻击,有几种方法:

第一:使用独立的VLAN(子网)。VLAN(子网)实际上划分了一个ARP安全域,在这个VLAN里的机器之间逻辑上是互相信任的,VLAN将其他不信任、不安全的设备隔离在ARP协议发挥作用的区域之外,这样便可以不用担心“邻居”中毒而受到连累。这是最保险的做法。但是,假如自家VLAN(网段)里有机器中毒进行攻击,则网络仍然会乱作一团。

第二:网关与服务器双双使用静态ARP记录。之前写过一篇《防止ARP中间人攻击的一个技巧》提到过。简单的点儿说就是在网关(路由器)上设定服务器网卡的MAC,在服务器上设定网关的MAC为静态。这样,路由器和服务器就不会再更新对应的ARP记录,就不会被欺骗。这个方法可以隔离每一台设备,而不用划VLAN(划子网浪费IP),比较适合单设备托管的用户。然而,绝大多数ISP都不会为用户做MAC绑定。而对于设备比多的用户,网关绑定MAC后,每次设备换IP都需要ISP重新设定MAC绑定,比较麻烦;而使用了某些用到ARP机制的应用,在绑定的环境下,则可能会运行不起来,比如HA集群中的failover切换。

第三,被动侦测,以毒攻毒。之前写过一篇关于send_arp的blog,其中无意间提到过这个方法。就是使用send_arp程序,纠正错误的ARP记录。之所以说是以毒攻毒,是因为send_arp程序本身就是一个利用ARP协议缺陷的程序。

另外,需要说明的是。有些ISP以端口保护为技术手段,认为可以阻止ARP攻击,实际上,这种技术是不能完全阻止ARP攻击的。

端口保护(有的称为PVLAN,不知道是不是相同的技术)之后,交换机上的端口下连接的设备只能和网关通信,不可以和“邻居”通信。这样可以起到一定的保护作用。但是,你的“邻居”,仍然是可以访问你的网关的(你们是同一个网关)。它只要欺骗网关,告诉网关你的MAC地址为一个错误的地址,或者干脆改成自己的MAC,那么,你的服务器就会断网,因为网关发给你的服务器的包,发到了错误的MAC地址上。

解决办法,就以毒攻毒。使用send_arp,强制让网关更新关于你的ARP(MAC)记录:send_arp  你的IP地址   你绑定该IP网络接口的MAC   你网关的IP   你网关的MAC

这个命令十分有用。管理员可能都会有这么一种经历,将一个IP地址调整到另一台服务器上的时候,会有一段时间这个IP是不通的。这个时候,这个工具又可以发挥作用了:使用相同的命令格式。

需要说明的是,send_arp命令是不需要必须在本地运行的,在网一网段(VLAN)内的任意主机上执行即可。

解决问题的基本思想是在同网段的机器上,执行两个send_arp,一个是发给网关的,一个是发给被攻击的主机的。

实际上,可以写一个角本,放在本地,使用crontab每两分钟运行一次,假如被ARP攻击,则自行通知网关更新相应的ARP记录。

首先将网关MAC绑定成静态:将下面的命令添加到/etc/rc.local

arp -s  网关IP  网关MAC

cat /opt/cron/moniter_gw.sh
#!/bin/bash
# gw_ip=网关地址
# gw_hw=网关MAC
gw_ip=192.168.0.1
local_ip=192.168.0.45
local_hw= 00:14:78:07:23:00

if ping -c1 -w5 ${gw_ip} ; do
:
else
/usr/local/bin/send_arp   ${local_ip} ${local_hw}   ${gw_ip}   ${gw_hw}
done

crontab :
*/2  *  *  *  *     /bin/bash  /opt/cron/moniter_gw.sh

send_arp.c下载


27
九 08

wput技巧

今天要将自己的备份,从一个ftp导到另一个ftp里去。还好可以登录其中一台服务器。

本来想使用lftp的mirror功能,无耐只能登录“local”,不能登录remote,而lftp的mput貌似依然不支持put目录。(谁知道有什么参数可以用来put目录?)

还好有wput可以使用。

然而在wput( wput /home/myname ftp://ftpusername:password@ip/myname )的时候,发现文件名、目录名中包含的空格和汉字,总是报错。

于是有了下面的方法:

$find /home/myname -type f >> ~/list.txt
$while read i ; do wput “$i”  ftp://ftpusername:password@ip/myname ; done < ~/list.txt

这样就支持了空格,不再报错。shell内部的处理,还真是复杂。


26
九 08

Firefox 3.0.2 无法保存密码

Firefox升级到3.0.2之后,发现原来保存的密码都不能用了,而且也不能重新保存……

木溪 帮忙,试了很多种方法,网上找了很久,终于找到问题:原来是3.0.2将存密码的文件编码由ANSI转换成了UTF-8,造成了编码错误。

解决办法,就是找到密码保存文件signons3.txt(在 系统盘:\Documents and Settings\xxxx\Application Data\Mozilla\Firefox\Profiles\xxxxx.default目录下),用常用的编辑器打开,另存为UTF-8编码覆盖原来的文件即可。

已经验证过,可行。


28
八 08

搜狗五笔

一个朋友QQ上发给我一URL,并附言:绝对是你所期待的。

点开一看,果不其然,sogou出五笔输入法了。立刻下载安装试用。还想着,要是能像其他五笔那样拼音和五笔不用切换就可以用就好了。朋友已经发过来消息,证实我的需求,是被满足的。

试用了一下,风格正是我所喜欢的“简洁”型的,与是,删除掉了用了很久的“极点五笔”,从此开始“搜狗五笔”的日子……

按照朋友的抱怨,Google拼音的更新速度太慢,大概开发人员不足吧,这个我深有体会,也知道这中间的众多复杂的事情,想来,google并不是十分重视“google拼音”。搜狗拼音的更新速度就相对快的多,而且据说词库丰富,比google拼音好用。大概是因为迷信Google的缘故吧,一直安装的Google拼音,但是却也不怎么常用,只有在晚上脑子不清醒的时候、不知道字怎么写的时候,才偶尔用一下。

提供一个下载地址:搜狗五笔

喜欢的朋友可以用起来了。除了“中/英”切换的时候,不能“全角/半角”自动切换,一切都很习惯。


15
七 08

科学绘图软件gnuplot

Gnuplot 是一种免费的绘图工具,可以移植到各种主流平台。它可以下列两种模式之一进行操作:当需要调整和修饰图表使其正常显示时,通过在 gnuplot
提示符中发出命令,可以在交互模式下操作该工具。或者,gnuplot 可以从文件中读取命令,以批处理模式生成图表。
在shell中敲打”gnuplot”,
进入到gnuplot编辑环境里
初级基础命令:
1. set terminal postscript
设置终端
2. set
xlabel ‘x-date’
x坐标轴的名字为”x-date”
3. set title
“demo”
该图的名字为”demo”
4. set key top left
set key
box
设置图例的位置和形状
5. set output ‘/test/aa.ps’
设置图片保存到的文件目录
6. set xdata
time
set timefmt “%H:%M:%S”
set format x
“%H:%M:%S”
设置x坐标轴数据的格式
7.plot ["17:39:31":"17:50:48"]
‘/var/log/dns.log’using 1:2 title “test” with lines linetype 1
画图,
x坐标起点是”17:39:31″, 终点是”17:50:48″, 源文件为’/var/log/dns.log’,
使用该文件的第一列和第二列数据作图,画直线图

8. 例子:
set xlabel
‘x-time’
set ylabel ‘y-%’
set mxtics 1
set title “cpu data
analysis”
set key top left
set key box
set term post eps color solid
enh
set output ‘/export/home/nancy/cpu.eps’
set xdata time
set timefmt
“%H:%M:%S”
set format x “%H:%M:%S”
plot
["17:39:31":"17:50:48"] ‘/export/home/nancy/cpu’using 1:2 title “usr” with
line
s linecolor rgb “yellow”, ‘/export/home/nancy/cpu’using 1:3 title “sys”
with line linecolor r
gb “red” , ‘/export/home/nancy/cpu’using 1:4 title “w”
with line linecolor rgb “blue”, ‘/expo
rt/home/nancy/cpu’using 1:5 title
“idle” with line linecolor rgb “green”

9.
写成脚本直接运行
把8中的命令写到*.plt文件里, 可以gnuplot>load ‘a.plt’,
若只想生成ps或eps文件, 则可以直接在shell下运行gnuplot a.plt

10.
ps和eps
ps:生成pft文件
eps:可以直接插入到word/execel 文件中.

11. 目前还有个小问题没有解决—已解决,更新例子(8)
当我在一个图中画多条线时,
如何使用不同的颜色来加以区分

12. 有用的文章
http://www.ibm.com/developerworks/cn/linux/l-gnuplot/index.html
http://cycloid.blog.163.com/blog/static/8847862006823102056295/

http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/ (gnuplot
中文手册)

http://cycloid.blog.163.com/blog/static/8847862006823102056295/

http://people.ofset.org/~ckhung/b/ma/gnuplot.php

http://dsec.pku.edu.cn/dsectest/dsec_cn/gnuplot/

http://www.cnblogs.com/morebetter/archive/2008/02/29/1086485.html

http://www.ibm.com/developerworks/cn/linux/l-gnuplot/index.html