December 6th, 2011 | Tags:

脑袋生锈了,说话也常常不成句子,为了锻炼一下自己的语言能力,另外尝试重拾以前码字的乐趣,我决定开始隔三差五写点东西。有时候喜欢言语讽刺,偶尔还能有几分幽默在里面,虽常常黑色,但是自得其乐,回想起来的时候也沾沾自喜得回味很久。但是不能否认的事实是,我的语言能力越来越弱了,说话是技术活儿,要练,现在平均每天说不上20句话,即便算上脑袋里面想的句子估计也不超过一百句。时间久了,脑袋里面有东西却表达不清楚,挺愁人的。

晚上颇花了一点时间来折腾编辑器。mac 下我用的最多的是vim,平时是iTerm2和macvim 中哪个方便用哪个,但是要写汉字加图片就不太适合了。排版看起来不舒服,图片也不方便加。 于是适用了一下很久以前安装的Bean,这个软件免费,口碑也挺好,但是在我这不知道怎么的,撤销的行为十分不靠谱,cmd+z过去整段都消失了,但这似乎是显示的问题,强制退出再回来发现内容还在。但依旧放弃。
另一个软件是WriteRoom。看介绍,此软件目的是让人专心写作的,软件很小,才2.4M,打开软件默认全屏,黑底绿字,可让人心无旁骛的专心写作,但这东西完全是西方人码abcd用的,写中文不友好,立刻放弃。
下载了一个试用版的Pages,目前没发现问题,我目前就正在Pages里面敲,很舒服。不过这软件贵,我还是要物色个能承受的起的。说起价格,不能不说我最近开始清理身边的盗版软件和盗版书籍的愿景。年龄过了30,又还在IT从业,觉得依然使用盗版是一件很可耻的事情。上个周末刚刚从Amazon买了一本电子书,<A short history of nearly everything>

花去了11$,算是弥补一下我长久用kindle 3G看免费资源的心里遗憾,既然看到了好书,不妨花钱买下。每个月100元买书的钱我还是可以拿出,也由此顺便端正一下看书和使用软件的心态,我认为划算。

家里的iPad2并未越狱,免费的app已经足够使用。唯一还残留一些盗版软件就剩下这个macbook,但是也屈指可数了,因为mac 下很多free的软件就很不错。这里尝试整理一下思路,列举一下平时使用频度比较高的软件,然后在最近做一个了结,要么花钱要么换免费的:

1, iTerm2 这个是超级赞。天天开机第一件事就是开iTerm2,管理目录,登陆远程主机,文件操作,基本都依赖它。关于它的 tips,推荐看这2个链接:
http://www.yangzhiping.com/tech/iterm2.html
http://www.iterm2.com/#/section/documentation

2, 浏览器: Firefox + safari
3, Port 安装一系列open source software
4, MplayerX: 电影
5, iTunes 音乐
6, email: Mail + MS office (公司邮件)
7, evernote 整理日常知识文档
8, vmware fusion 虚拟机
9, Colloquy , For irc聊天室(公司用途)
10, ChickenVnc, VNC client

 

0 comments (62 views)
November 8th, 2011 | Tags:

原文在此:
Top 10 DTrace scripts for Mac OS X

http://dtrace.org/blogs/brendan/2011/10/10/top-10-dtrace-scripts-for-mac-os-x/

原文写的非常细致,连如何打开Terminal都在开篇的时候做了介绍,我这里只是做一下简单摘要,建议大家看原文。

MacOS内已经内置很多Dtrace脚本在/usr/bin下, 用sudo即可直接使用,这篇文章除了它们,也使用了Dtrace Book中的一些实用脚本。 脚本下载地址:DTrace book tarball

希望对Dtrace 入门的看山哥的Dtrace中文教程

 

1, iosnoop ,  察看磁盘io 情况,注意,是“ 磁盘 ” io,不是文件系统IO。 (iosnoop -h for help)

2, hfsslower.d (dtrace book) 察看dfs文件系统 io, 文件系统cache/hint等,所以会比 iosnoop看到的信息多很多。

    sudo ./dtbook_scripts/Chap5/hfsslower.d 1 (Trace 1ms 及更慢的文件系统io)

3, execsnoop , 察看新系统进程的exec  (sudo execsnoop -v)

4, opensnoop , 察看进程打开文件情况 ( sudo opensnoop -ve)

5, dtruss ,类似Linux的Strace, Solaris的truss (dtruss -h for help, dtruss -e ls , dtruss -n firefox-bin)

6, soconnect_mac.d (dtrace book), 察看outbound TCP connection 情况.
还有 soaccept_mac.d 察看 INbound 情况

7, errinfo ,系统调用fail的err信息

8, bitesize.d , 字符方式直观显示app的 I/O workload

9, iotop , (iotop -CP 1)
C: rolling output , P: disk busy percentage.

10, maclife.d (dtrace book) 跟踪删除的/创建的 文件。

更多脚本:

man -k dtrace

0 comments (109 views)
October 30th, 2011 | Tags:

1, 安装squid

aptitude install squid

or

yum install squild

2, 配置:

vim /etc/squid/squid.conf

增加如下:

auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/squid_user.txt

auth_param basic children 5

acl squid_user proxy_auth REQUIRED

acl myip  src 111.222.0.0/16  #你的client ip address network

http_access allow squid_user myip

3, 配置用户名密码:

htpasswd -c /etc/squid/squid_user.txt userid

cat /etc/squid/squid_user.txt

重启squid:

/etc/init.d/squid restart

 

4, 修改Linux文件描述符number:

默认下Linux的文件描述符为1024个,按照以下方式增大

  1. # ulimit -n #查看当前文件描述符数量
  2. # ulimit -HSn 65499 #修改文件描述符数量
  3. #写入配置文件,使配置永久生效:
  4. # echo “* soft nofile 65499″ >> /etc/security/limits.conf
  5. # echo “* hard nofile 65499″ >> /etc/security/limits.conf

 

Reference :

http://linux.vbird.org/linux_server/0420squid.php#adv_auth

http://www.libertyvps.com/thread-46-1-1.html

0 comments (124 views)
October 25th, 2011 | Tags:

今天遇到两例ssh pseudo-tty的使用,都值得记录一下。

一是在使用mindterm的时候,需要借助跳板机, 流程如下:

<laptop(mindterm)> ssh to   <jump box> ssh to <target host>

这种情况下,使用pseudo-tty就是必须的  (-t),否则 <jump box>上的ssh没法进行交互。根据ssh 的manual :

-t      Force pseudo-tty allocation.  This can be used to execute arbitrary screen-based programs on a             remote machine, which can be very useful, e.g. when implementing menu services.  Multiple -t options             force tty allocation, even if ssh has no local tty.

如果需要远程运行基于screen-based的程序,如ssh -t -l root targethost “vim”,则这个 -t 是必不可少的。
第二例是caifeng遇到的诡异问题。他需要远程到target host A执行一些脚本,发现当不使用-t的时候,系统每次都会自动加载.bashrc 中的内容,造成脚本运行异常。如果使用-t参数,ssh 过去的session就是忽略掉.bashrc。 从而脚本正常运行。
首先看bash manual:

–norc     Do not read and execute the personal initialization file ~/.bashrc if  the  shell  is  interactive.

This option is on by default if the shell is invoked as sh.

也就是当bash由sh来调用的,那么默认将不加载.bashrc

而这个问题就取决于bash的调用方式:

  • 1, rshd: remote shell daemon调用bash, ( 不使用pseudo-tty,直接远程执行命令,就是这种方式)
  • 2, sh调用bash。(使用pseudo-tty情况下,将会由sh调用bash)

 

0 comments (189 views)
July 6th, 2011 | Tags:

今天遇到一些 dns client古怪的行为方式,这里做一个记录:

命令如下:

Linux

[root@crp-abc~]# host  -v -t A  -N1 lvsosprovsvc01.lvs 10.10.10.10
Trying “lvsosprovsvc01.lvs”

Host lvsosprovsvc01.lvs not found: 3(NXDOMAIN)
Received 111 bytes from 10.10.10.10#53 in 0 ms

Solaris

crp-xyz# host  -v -t A  -N1 lvsosprovsvc01.lvs 10.10.10.10
Trying “lvsosprovsvc01.lvs”
Received 111 bytes from 10.10.10.10#53 in 0 ms
Trying “lvsosprovsvc01.lvs.corp.abc.com”
Trying “lvsosprovsvc01.lvs.vip.corp.abc.com”
Trying “lvsosprovsvc01.lvs.qa.abc.com”

lvsosprovsvc01.lvs.qa.abc.com. 125 IN  A      10.10.10.11

 

两机器的/etc/resolv.conf相同。

也就是说 同样是在尝试按照Absolute dns name 来解析lvsosprovsvc01.lvs(红字)失败后, Solaris下host命令继续尝试search domain list,直到最终找到结果,但是Linux却放弃了。

 

host命令的Manual page 中对 ndots的描述:

The -N option sets the number of dots that have to be in name for it to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with fewer dots are interpreted as relative names and will be searched for in the domains listed in the search or domain directive in /etc/resolv.conf.

host 命令的Manual page中对ndots的描述:

-N ndots     Set the number of dots that have to be in  name for  it  to be considered absolute. The default value is that defined using the ndots statement in /etc/resolv.conf, or 1 if no ndots statement is present. Names with fewer  dots  are  inter-
preted  as  relative names and will be searched  for in the domains  listed  in  the  search  or domain directive in /etc/resolv.conf.

Manual中并没有明确对这种行为做出解释,是Linux下做的少了?还是Solaris下做的多了呢?

为了在Linux下避免这种行为,最好的解决办法就是将ndots修改为2,那么lvsosprovsvc01.lvs就永远不会被当成 Absolute name来对待,所以直接就会走search domain list进行匹配查询,直到找到结果。

 

关于/etc/resolv.conf中的search 参数也有一个tricky的地方,因为这个list最长只支持6个domain:

The search list is currently limited to six domains with a total of 256 characters.

 

我不知道有什么办法expand这个list,除了修改 host 命令源代码 include/resolv.h 中的这行。

#define MAXDNSRCH       6               /* max # domains in search path */

 

0 comments (405 views)
June 20th, 2011 | Tags:

solaris 11 express 在 2010年就推出了,前几天正好公司空出来一个老台式机,就装上试了试。如果这个“推测”准确的话,正式版本的solaris 11可能在 2011.11.11推出,的确是个好日子 。如果真的放在11时11分11秒发布就更好玩了。

solaris 11 用的是Build 151a

solaris:~$ uname -a
SunOS solaris 5.11 snv_151a i86pc i386 i86pc Solaris

 

在solaris 11中ifconfig 转变到 dladm and ipadm

这个变动很大,/etc/hostname.nic模式就要变掉了。不过对SA来说是福音,因为更直观了,易用了,放弃丑陋的ifconfig吧。

* dladm – administer data links

dladm可以用户 查看/创建 所有数据链路层的信息: phys,aggregation, vlan,link,bridge,wifi,etherstub,ip tunnal..

dladm的help简单明了,基本不用看manual就可以直接 try。

以下是几个demo:

root@solaris:~# dladm show-phys
LINK         MEDIA                STATE      SPEED  DUPLEX    DEVICE
bge0         Ethernet             up         1000   full      bge0
root@solaris:~# dladm show-vnic
LINK         OVER         SPEED  MACADDRESS        MACADDRTYPE         VID
vnic1        etherstub01  0      2:8:20:25:1a:47   random              0
vnic0        bge0         1000   2:8:20:67:cf:15   random              0
root@solaris:~# dladm show-aggr
root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –
etherstub01 etherstub 9000   unknown  –         –
vnic1       vnic      9000   unknown  –         etherstub01
vnic0       vnic      1500   up       –         bge0

yoqian@solaris:~$ dlstat -i 3
LINK    IPKTS   RBYTES    OPKTS   OBYTES
bge0    5.08M  410.21M  142.41K   13.17M
vnic1        0        0        0        0
vnic0    4.95M  397.73M    3.47K  149.42K

 

* ipadm – configure Internet Protocol network  interfaces  and TCP/IP tunables

ipadm可以用户 查看/创建 所有IP层的信息: interface, IP address. interface 属性,address属性.

root@solaris:~# ipadm show-if
IFNAME     STATE    CURRENT      PERSISTENT
lo0        ok       -m-v——46 —
bge0       ok       bm——–4- —
vnic0      ok       bm——–46 -46
vnic1      disabled ———— -46
root@solaris:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
bge0/_a           dhcp     ok           100.249.68.30/22
vnic0/v4          static   ok           192.168.123.101/24
lo0/v6            static   ok           ::1/128

For example, IP forwarding 可以更方便的设置了,修改ip层的属性就可以了,如下:

查看各种协议属性:

root@solaris:~# ipadm show-prop |egrep “forw|PROT”
PROTO PROPERTY              PERM CURRENT      PERSISTENT   DEFAULT      POSSIBLE
ipv4  forwarding            rw   off          –           off          on,off
ipv6  forwarding            rw   off          –           off          on,off

如何利用dladm和ipadm添加logic ip(类似传统的hostname.bge0:1),只需以下两步,没有配置文件,非常直观易懂。

1, 用dladm查看现有的link,如下,然后我们可以在bge0上新建一个vnic3

root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –

root@solaris:~# dladm create-vnic -l bge0 vnic3

root@solaris:~# dladm show-link
LINK        CLASS     MTU    STATE    BRIDGE     OVER
bge0        phys      1500   up       –         –
vnic3       vnic      1500   up       –         bge0

root@solaris:~# dladm show-vnic
LINK         OVER         SPEED  MACADDRESS        MACADDRTYPE         VID
vnic3        bge0         1000   2:8:20:8b:5e:fb   random              0

2,  使用ipadm设置 vnic3的ip address

root@solaris:~# ipadm create-addr -T static -a local=192.168.123.201/24 vnic3/v4
root@solaris:~# ipadm show-addr
ADDROBJ           TYPE     STATE        ADDR
lo0/v4            static   ok           127.0.0.1/8
bge0/_a           dhcp     ok           100.249.68.30/22
vnic3/v4          static   ok           192.168.123.201/24
lo0/v6            static   ok           ::1/128

 

CAUTION: 默认情况下solaris 11 express 会启用 nwam来管理nic,而传统的physical:default是disabled。如下:这样会导致我们上面做做的修改在system reboot后处于disable状态。

系统默认的情况:

root@solaris:~# svcs -a |grep physi
disabled        3:13:09 svc:/network/physical:default
online          3:13:14 svc:/network/physical:nwam

所以装好solaris 11第一件事就是把nwam disable,然后enable physical:default ,就可以放心使用ipadm了。

# svcadm disable nwam
# svcadm enable network/physical:default

更多ipadm信息可以看这里或者这个pdf

0 comments (883 views)
May 28th, 2011 | Tags:

当我们入睡时/一只手枕在头下/另一只手伸到星空——兹比格涅夫•赫贝特

 

铅青的月/于一个古老的下午/冰冷的田野上/月多于土地 ——马查多

 

当夜色降临,我站在台阶上倾听;星星蜂拥在花园里,而我站在黑暗中。听,一颗星星落地作响!你别赤脚在这草地上散步,我的花园到处是星星的碎片。 ——伊迪丝·索德格朗《星星》

 

月亮不会发现,它所要照耀的东西。——亨里克·诺德布兰德

 

我以为看见一封信投在门廊/可那只是一片月光。——伊娃·利萨·曼纳

 

我们称之为土地的,是最近的星星。——英格尔·克里斯坦森

 

树枝想去撕裂天空/但却只戳了几个微小的窟窿/它透出了天外的光亮/ 人们把它叫作月亮和星星。——顾城《星月的来由》

 

我们都生活在阴沟里,但仍有人愿仰望星空。——王尔德

 

我的天空里没有太阳,总是黑夜,但并不暗,因为有东西代替了太阳。凭借着这份光,我便能把黑夜当成白天。——东野圭吾《白夜行》

 

为了太阳,我才来到这世界。——巴尔蒙特

0 comments (421 views)
May 22nd, 2011 | Tags:

我是从Linux转到Mac OS的,那个时候正好上一家公司的笔记本要归还了,我还在犹豫要不要买个IBM thinkpad,装Linux然后直接就把老机器的/home目录rsync过去就可以用起来了。恰巧我在水木上逛,看到有人贴新蛋正在清仓甩货MacBook,于是果断买了一个。5700RMB的价格很有诱惑力,不用犹豫了。从那时起到现在大概用mac os大概一年半了,中间也纠结过几次,要不要再用回Linux,但是最终还是没反复,这里有必要总结一下,其实就是一个要问自己的问题:

你为什么用电脑?没有最好的,只有最合适的。

刚上大学的时候开始用电脑是为了学习编程,跟大家打游戏,偶尔编辑网页。windows完美解决了我的需求,后来对Linux感兴趣,于是装了个双系统,偶尔过去玩玩,顺带完成毕业设计。但是主需求没变过,所以windows依然占据我大部分使用电脑时间。

大学毕业开始工作,因为跟Unix相关,渐渐对Unix/Linux感兴趣,外加身边很多同事都在用Linux,于是就转到Linux。虽然当时的Gnome/KDE版本易用行完全没法跟现在相提并论,但是折腾折腾用起来也没啥太大障碍,毕竟不用做太多文档工作,openoffice套件外加thunderbird完全能解决办公需要。剩下的大部分工作都是在gnome-terminal和firefox里面度过的,对OS知识不求甚解,偶尔顺带从Linux中学到一些皮毛常常还像捡到了宝贝。我那个时候很少玩游戏了,这挺主要的。

然后到了 eBay,现今这份工作对于我使用电脑的需求是:office 套间一定要好用,我现在一天收的邮件是以往的10倍,邮件收到后的相应速度很重要,这就要跟公司的MS 邮件服务器有很好的兼容,系统更要足够稳定。至于OS本身已经不再是一个学习的场所,仅仅是一个工具,因为从这个工具出发,iTerm的ssh可以带我去到任何我想要的OS。而为了适应以往的Linux桌面经验,Mac OS 这个时候就成为了最适合的OS:BSD的内核结构,可以方便的是用各种开源工具; 很多以往Linux下的脚本直接拿过来用即可。而我也常常为Mac OS下高质量的应用程序和为用户着想的贴心设计折服。

OS不再是手中的积木,任凭你搭建玩耍,从中寻找乐趣;而是一个靠得住的工具,用起来得心应手。 我要把时间放在更多OS以外的地方,却要保持跟*nix最近的距离,这就是我现在需求,而Mac OS 很好的满足了。

现在Mac OS有烂大街的趋势,安全问题很可能会是未来的威胁,我也要改一改长久以来对Mac OS的盲目信任。用windows又不想装那如同摆设一样的杀毒软件的时候,我总是很警惕的,未来也许对待Mac OS 也会有同样的警惕,不过我真不希望那一天到来。

0 comments (484 views)
May 19th, 2011 | Tags:

这事情终于发生了,方滨兴的功夫网误国愚民,有功夫网在,民智永远别指望开。

所以今天这日子挺值得纪念的,这是一个开发愚民工具的人应得的下场,他们也会被永远钉在耻辱柱上,应该没有翻身的机会了。当然意料之中,新浪微博上大部分相关消息都已经消失了,我摘录几个存在这里。

来自solidot的消息

whuhacker 写道 “公元2011年5月19日, @hanunyi 在武大扔鸡蛋未命中后, 用鞋子砸中 GFW 的主要代表方校长, 打响了物理上 FuckGFW 的第一枪。
据悉,方校长在武汉大学计算机学院B座404会议室进行学术交流。此前有推特网友悬赏砸中方校长,至少可以得到ipad2一个,《国家囚徒》一本,香港大餐一席,新鞋子一双,上海及成都美女拥抱各一。

来自微博
北邮方校长今天下午在武汉大学有个交流会,推友重金悬赏英雄,推友@hanunyi 挺身而出,砸了一鞋一鸡蛋,鸡蛋没中,鞋中了!方校长责问:讲座前就在推上讨论要砸我,你们没一点应对措施?校方:那网站我们打不开,不知道他们说了什么。

2 comments (884 views)
May 16th, 2011 | Tags:

五一的时候回成都过的,老婆 怀孕,送回去成都生小孩,二来看看成都的新房子,见见成都的朋友们。

这个blog本应该早写,趁那时还记得回成都的感觉,写出来能流畅一些,现在只好凭着记忆贴一些照片,算是做个记录了。

在上海一年多了,飞机着陆双流机场的时候还有点激动,我在成都待了近10年,读了4年大学,工作也近6年,这种感情应该就是第二故乡的感觉吧。入城的路上看着路的两边,对比着记忆中的印象,感慨成都变化很大,高楼又多了很多,空气却依旧很差,这么多工地施工,空气质量不会好。

贴几张照片,算是个记录吧。

新房子,周围高楼很密集,上海浦东这边做的比成都好的多,楼间距都比较开阔。

 

 

 

 

 

跟老黄夫妇吃澳门豆捞,这两口子没啥变化,不过他们马上就要去普吉岛玩,跟他们一比,我这真是不懂生活。羡慕。

 

 

 

 

便宜的冷锅鱼,家常菜的价格。

 

 

 

 

 

跟小董两口子吃烤鱼,小董感慨了一下自己出来创业的艰辛,不过他把福克斯两厢都买了,我最喜欢的车啊!

 

 

 

 

岩哥家喝酒,老乡开了瓶茅台,下东北蘸酱菜。

 

 

 

 

 

跟老婆在春熙路吃台湾小吃。

 

 

 

 

 

在成都照片拍得不多,一周的假期一晃儿就过去了。一个人回到上海空荡荡的房子的时候就特难受,这时才意识到,老婆在上海的时候,我们两个人每天相处的时间反而很短,每天工作回来见面的也就几个小时而已,还要扣除掉我在家里上网不理她的时间。周末她也总有一天是上班的。这次回了成都,有大块大块的时间在一起,反而觉得感情增进了不少。我要回上海了,她送我刚出家门,哭得跟个泪人似的,我只好把她送回家再去机场。

永远都要珍惜跟家人在一起的机会,珍惜那份经历。

0 comments (372 views)