2009年12月4日

一些好记又实用的免费DNS服务器

以前总是记本省电信的DNS,问题是出了省这些DNS往往无法访问
外加上国内DNS污染非常严重,后来就不敢用国内DNS了,直接用OpenDNS

OpenDNS : 208.67.222.222 208.67.220.220 还是比较好用的

年初买了个G1,发现G1用的DNS是非常好记啊,速度也快
4.2.2.1
4.2.2.2
4.2.2.3
4.2.2.4
4.2.2.5
在 twitter 上还听到过一个DNS ,长得比较可爱
4.3.2.1

刚刚 google 又出了免费 DNS 服务

8.8.8.8
8.8.4.4

基本上,同学们可以不必再用电信的垃圾DNS了。

2009年8月13日

|G1| 让一个无线网卡即当AP又当STA

公司用WIFI上网,只给笔记本分配了一个MAC地址,G1来了没法上网。

想了一个办法,把笔记本虚拟成一个AP,这样需要笔记本的无线网卡需拟成两块无线网卡:一个作STA客户端与公司的WIFI连接,另一个模拟AP供G1连接

用madwifi,已经能把原先的一个 ath0 设备变成 ath0/ath1 ,AP也出来了,可是网络很不稳定,时断时续,还需要找问题继续改进。。。

/etc/init.d/NetworkManager stop
modprobe -r ath_pci ath_rate_sample ath_hal wlan_scan_sta wlan_wep wlan_tkip wlan_xauth wlan_scan_ap wlan
modprobe ath_pci autocreate=none

wlanconfig ath create wlandev wifi0 wlanmode sta nosbeacon
wlanconfig ath create wlandev wifi0 wlanmode ap

ifconfig ath0 up
iwconfig ath0 essid myspace
iwpriv ath0 mode 3
dhclient ath0

ifconfig ath1 192.168.31.1/24
ifconfig ath1 up
iwconfig ath1 essid Android
/etc/init.d/dhcp3-server

2009年5月4日

|Script|在控制台使用 cd 命令时,用拼音自动补全中文路径

在控制台使用 cd 命令时,用拼音自动补全中文路径

实验目录如下:
biff@lenovo:/domain/WorkSpace$ ls
SVN培训 全球眼 浙江建行 浙江农信

使用: (输完后按 TAB 键自动补全)
cd S <tab> 进入[SVN培训]
cd q <tab> 进入[全球眼]
cd z <tab> 自动补全[浙江]
cd zj <tab><tab> 提示[浙江建行 浙江农信]备选
cd 浙江j <tab> 进入[浙江建行]
cd zjj <tab> 进入[浙江建行]
cd zj1 <tab> 进入[浙江建行]
cd zj2 <tab> 进入[浙江农信]

配置:
找到 /etc/bash_completion 中 _file_dir() 函数,将
COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" )
改成 ( 其中chsdir为本脚的名字,注意指定路径和赋执行权限 )
chs=($(chsdir "x$1" "$cur"))
COMPREPLY=( "${COMPREPLY[@]}" "${toks[@]}" "${chs[@]}" )
( 这是最简单的,但也是最不安全的。还有其它的方法,比如将这段函数粘到$HOME/.bashrc文件中,在引用/etc/bash_completion之后再覆盖性的定义一遍。或者另起一个文件保存这段脚本,然后在.bashrc中用 . $HOME/bin/myscript.sh 导入一遍。注意小点点。)
( 上面的修改只对 cd 命令生效,如果其它地方也需要补全,比如vim,还要用相同的方法处理 _filedir_xspec() 函数 )

问题:
1、多音字无法解决,比如[浙江建行]要输入[zjjx];
2、可以用数字序号定位,但是现在序号有乱序问题,思考中...
有问题邮件联系!

祝Linux之行一路顺风!

版本更新在: https://groups.google.com/group/binsos/browse_thread/thread/1951b77a2cf4bfab

---------------------------------
google talk
shaozx@gmail.com
---------------------------------

2009年5月2日

时间和书

今天是五六年来第一次去电脑城买光盘,与其等上三四天时间从电骡上下载,不如打个车今天就把光盘买回来。

这就是时间的价值,我也是最近一年多才意识到有些时候时间比金钱重要。当然,这是有前提条件的,就是在有一定的经济基础之后。

大家可能也有这个毛病:每天泡在淘宝上看一款U盘,或者一部手机,连续关注了两三个月还是下不了决心买下来。
半年前,我想买个U盘,连续三四周的时间都在网上逛,比较性价比,比较哪个卖家信用高而且价格便宜。突然有一天,我想通了,一口气买了三个,两个4GB、一个8GB,一起花费了200块钱。该有的都有了,以后就再没去关心U盘的事情了。
为了这200块钱真的不值得每天花一个多小时逛淘宝。

还有就是买书。

回想起来,差不多有十年没买过书了,因为不管找什么资料,网上都能找到。
但是还是应该买书回来看,特别的一本好书。“书非借不能读”,这是非常有道理的,不是每个人都能坚持把一本300页的PDF电子书从头看到尾,而买的纸质书就不一样了。

买书看,还有另外一个理由。一般网上找到的资料都是片段性的,比如装个Apache,或者学个新语言Python之类的,去网上找资料都会搜索某个针对性的问题,或是找快速入门参考,而很少能系统全面的学习。我指的是找“资料”,不是找“书”。如是上网找书的朋友,估计又遇到前面说到的问题,有很多人电脑里面存着大把的电子书,却没有一本书看完过。

书是朋友,时间是财富。

2009年4月29日

|EasyScripts|用GMail从控制台发送邮件的脚本


有时候需要备份些东西到邮箱,能够让脚本定时自动运行当然是最好!
抽时间用python写了这么个脚本,使用python-libgmail库 ( sudo apt-get install python-libgmail )

发送邮件的代码都是现成的调用,主要是在易用性上做了些优化:

1、发送一句话,不需要正文,比如给邮件列表发个“求助。。。。。(如题)”之类的:
    msend -t  list@domain.com  -s "求助,图形界面进不了,哈哈”

2、发个文件到自已的邮箱,一般用 -f "file1;file2;file3;dir2;dir3" ,发懒的时候不写 -f 也能用
    msend -t my@gmail.com -f readme.txt
    msend -t my@gmail.com  *.txt

3、发个文件或目录到某个邮箱,需要ZIP一下,(当然2和3可以混用)
    msend -t friend@domain.com  -z  ./pics/

基本上:
1、目标邮箱和主题必须写上;
2、如果有文件附件,可以不指定主题,脚本会把文件数当主题名(gmail的title里会显示正文的)
3、程序会自动判断文件和目录,如果是目录就会遍历
4、不管是文件还是目录,如果前缀指定了-z,就压缩后发送
5、没有前缀的参数一律当文件名

如果有需要,可以下载玩玩,运行msend不带参数就有用法,应该很明白了。

(还有什么稀奇古怪的想法?欢迎提出来!)


    Usage:
        msend -t user@domain.com -s title
        msend -t user@domain.com {-s title | -f file | -z file}

    Full command:
        msend --to=user@domain.com --subject=title [--msg=body] [--files="file1;dir2"] [--zip="file1;dir2"]

    Example: ( edit ~/.msend for default sender account )
        msend -t user@domain.com -s "just a test"
        msend -t user@domain.com -s "send all pic" -f ./mypics/
        msend -t user@domain.com -s "send files as zip" -z ./mytext/
        msend -t user@domain.com -s "send both" -f mytext -z mytext


附件下载和更新在: https://groups.google.com/group/binsos/browse_thread/thread/1362719b1a34cd9b

2009年4月9日

Linux下有线和无线网络共存时优先使用无线网

用Linux下的NetworkManager 0.70(网络管理器小程序)遇到个问题:无线网络和有线网络同时启用时,系统默认优先使用有线网络--即默认路由使用的是有线网络的。
写了一个脚本解决这个问题,无线网卡和有线网卡同时启用时,优先使用无线路由器的网关。
代码如下:
------------------------------------
#!/bin/bash
# /etc/dhcp3/dhclient-exit-hooks.d/wireless-gw
# /etc/network/if-up.d/wireless-gw

WIRELESS=`iwconfig 2>/dev/null| awk 'NR==1 {print $1}'`
[ -z "$WIRELESS" ] && exit 0

gw=`ip addr show dev $WIRELESS | grep "inet " | awk 'NR==1 {print $2}'`
[ `echo $gw | awk -F. '{print NF}'` -ne 4 ] && exit 0

gw=`echo $gw | awk -F. '{printf("%s.%s.%s.1",$1,$2,$3)}'`

while [ `ip route | grep ^default | wc -l` -gt 0 ]
do
ip route delete default
done
ip route add default via $gw

#echo nameserver $gw > /etc/resolv.conf
echo nameserver 8.8.8.8 > /etc/resolv.conf
echo nameserver 208.67.222.222 >> /etc/resolv.conf

------------------------------------
脚本先取到无线网络设备名,依照设备名取到IP地址,然后假设无线路由地址是该IP段的第一个IP号,即xxx.xxx.xxx.1(通常无线AP都这样用的,暂时没有其它更好的办法),最后删除错误的默认路由,将无线网络的网关当作默认路由。
最后一句是修正DNS,如果DNS工作正常,可以去掉。
写好后放到/etc/network/if-up.d/ 和 /etc/dhcp3/dhclient-exit-hooks.d/下,命名为wireless-gw,赋执行权限。
(Ubuntu8.10下使用正常,其它发行版安放目录可能会有差异)

难道ubuntu里面就没有考虑这个问题?很奇怪!

2009年1月14日

用python修改gnome网络代理

在家里用无线网络,不需要设置代理;在公司用局域网,需要指定代理才能上网。每次在两个地方换来换去都要手工切换代理。本来就是非常机械化的动作,干嘛不用程序自动解决呢?

今天试了一下写一个python的程序去修改代理设置,但是发现一个奇怪的问题:
用 gnome-network-preferences 修改代理地址和代理端口后 gconf-editor 中可以看到 /system/http_proxy/ 里面的值会发生变化,包括 host,port,use_http_proxy。修改以后 GNOME 全局的代理配置都会发生变化。
但是,用 gconf-editor 修改这些值以后,gnome-network-preferences 的配置项不会变化,GNOME 全局的代理配置也没有变化,修改不生效。

很奇怪啊。。。。。

上网查了一下,有人将这一情况作为BUG提交了。需要修改的地方是 /system/proxy/mode 。

https://bugs.launchpad.net/ubuntu/+source/gconf/+bug/290995
https://bugs.launchpad.net/ubuntu/+source/gnome-control-center/+bug/271108

在 gnome-network-preferences 里面启用和禁用代理服务器后,/system/http_proxy/use_http_proxy 和 /system/proxy/mode 两个地方都被修改。可能其中一个值是历史遗留的吧。