蓝天,小湖,湖水中一方小筑

Merge Two Hg Repositories

最近在折腾手头上的小项目,发现有一个工程已经建了Hg的版本库,但是想把它给丢到现有的版本库中以方便管理。假设现在用的版本库叫A,需要被merge过来的版本库 叫B,于是有: A: hg pull –f <repo B> A: hg merge A: hg ci 关键的地方是在那个- f处,如果没有加这个参数会报两个版本库不同源而不让你这么折腾。([via](http://stackoverflow.com/questions/12843 /how-to-combine-two-projects-in-mercurial))

端午内蒙之玉龙沙湖

第二天,玉龙沙湖。有沙有湖还有草的一个地方。出发前,看着一帮人揉着惺忪的睡眼从屋里出来,其实也是件满好玩的事情。漫漫的车程拉开了新的一天,一路昏昏欲睡的到了 经棚,已然是午饭的点了。吃过午饭再次上车,继续昏昏欲睡了两个来小时,终于到了目的地。

端午内蒙之达里诺尔湖

端午,除了粽子外就是那三天假期了吧。被内蒙活动的照片诱惑了,于是背上了新败的脚架上了大巴。

略去无聊的路上,14号清晨到了内蒙,快4点的时候天已然开始蒙蒙亮,可惜没时间下车拍照,4点半左右太阳就整个蹦出来了,到这时候才发现,这边的天,真蓝~

继续略去经棚难吃到死的馄饨,早上8点多的时候,车终于停了。拎着相机下车,看着通透的蓝天上飘着的像棉花糖一样的云,还有一望无际的草原,啥也不说了,拿起相机按呗 。一边按一边感慨,这能见度就是高啊,一眼望过去能把你视线挡住的,也只有山了。

朝圣东方红

骑车也有段时间了,但一直没有去传说中的东方红朝圣,终于在这次踏上了测试赛的道路~

其实,在来之前并是十分想走这一趟,因为对比赛十分的没感觉。但是想想骑了这么久还没有走过东方红,实在有些说不过去哇,所以,就当出来活动活动了,成绩是次要的嘛,重在掺和,hoho。

Reuse the TIME_WAIT Port

最近在调试的时候,经常会需要直接kill掉监听的进程,然后在SLES上再启动进程的时候就会报端口被占用,用netstat查看会发现这个端口处于TIME_WA IT状态。此状态是表示,当机器A发出CLOSE请求后,经过FIN_WAIT_1和FIN_WAIT_2,机器B会将socket置于CLOSE状态,此时机器B会 将端口置于 TIME_WAIT状态一定时间(2*msl)以保证机器B的数据不会丢失。这一策略可以保证TCP的可靠性,但是在测试过程中经常会报端口被占用,da emon启动错误的信息。 解决的方法一是减少msl时间,让TIME_WAIT的socket尽快结束,这个值好像可以在/proc/sys/net/ipv4/tcp_fin_timeou t中指定,不过不是很确定。再一种方式就是通过设置reuse标志位,让处于TIME_WAIT状态的端口可以被新的进程bind,此方式同样需要动/proc系统中 的东西: net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_tw_reuse = 1 其实我也不太确定第一个是做什么用的,只是照猫画虎了。这个方式的写法是写在/etc/sysctl.conf文件中的,而不需要直接向/proc文件系统中echo 东西。在改完sysctl.conf文件后运行sysctl -p让配置生效。还有一点需要注意的是可能需要运行如下的命令刷新缓存 sysctl -w net.ipv4.route.flush=1 差不多就这些了,话说,很诡异的一点就是,这个情况只在ppc64_sles11中碰到过,x86/amd64都没碰到过,ppc64_rh5没做测试,不表态,嗯。 话说文章里面TCP状态所表示的含义及转换关系是我自己的理解,嘿嘿,自辨对错哈~~

The Capital S in Linux Permission Bitmap

昨天某人丢过来一个问题,为啥Linux下有的文件权限是-rws,有的是- rwS,当时就没想法了,后来某人被逼求助于Google顺便把结果发给了我,顺便记一下吧~ 首先,这个S,不管大写还是小写都是setuid/setgid bit, 大小写的不同之处在于,大写的S表示这个文件没有x位,而小写的则是一般常见(这个只是我 常见的哈,有空查查,如果大S比较常见俺会上来改的)的即是有x权限的。即在chmod中,如果是4755的话,那么它的权限就是通常的-rwsr- xr-x,如果是4655的话,就是大写的-rwSr-xr-x。就这么些东西。 最后多一句嘴,第一位的那个4其实也是bitmap,4代表setuid bit,2代表setgid bit,1代表sticky bit。下面木有了~~

Using sudo in rsh's command

公司的产品需要配置无密码rsh,刚写了一个脚本用于重置环境,但是被系统告知sudo需要在tty的环境下用,所以只好去找把这个安全选项禁掉的方法。开始想当然的 把pts加到/etc/securetty中,可惜不行,最后求助于G神才发现需要在/etc/sudoers中把下面这行注释掉 Defaults requiretty 最后说一句,最好用visudo编辑,而不要手动改~