让nagios报警消息重复通知

其实这也没什么好讲的,只要在service_tmpl.cfg中把notification_interval设置为不小于0的数字就好了,但实际上我在设定Nagios Server的时候,已经这么做了,但一旦报警通知发出,如果下次检查的时候仍为此状态,Nagios却不会继续通知。这让我郁闷了好久,相关的文档都翻阅了,还是不知道所以然。

后来不经意地在services.cfg文件中发现了这样的定义:

define service {
hostgroup_name                ssh-servers
service_description           SSH
check_command                 check_ssh
use                           generic-service
notification_interval         0 ; set > 0 if you want to be renotified
}

在具体的service中,居然把notification_interval设置为0了!怪不得不重复通知呢,我光改了模板文件,却没注意到具体的service都是由默认的service修改而来的,而默认的service,都将notification_interval设置为0了。知道原因后,马上将notification_interval删除,让其使用service_tmpl.cfg中的配置,然后重启nagios,就可以收到重复的报警消息了。

不用跨域,ExtJS通过代理使用CouchDB

在选择CoudhDB做数据库,Apache做Web服务器时,在客户端用ExtJS可以直接通过HTTP来访问CouchDB的数据。但通常CouchDB和Apache是位于不同的端口,这也就意味两者位于不同的域,所以对于ExtJS而言,要想使用CouchDB,必须得使用ScriptTagProxy来进行跨域访问了。

但ScriptTagProxy在实际使用中发现,如果一个返回的JSON字符串较长,CouchDB会将JSON使用’\n’截断,在Chrome/Firefox下都会提示”无法解析json”(Firefox下错误消息为”invalid label”),但如果不跨域使用HttpProxy来解释包含有’\n’的JSON字符串,却能正常工作,看起来似乎是ScriptTagProxy和HttpProxy在解释JSON字符串的方式有上区别吧。

既然没打算去Hack ScriptTagProxy代码,那就只好Google一下了。翻了翻,发现有人使用Apache的mod_proxy_http可以免跨域,具体做法如下:

$ sudo a2enmod proxy_http
$ vim /etc/apache2/mods-enabled/proxy.conf
内的Proxy_Via设置为on

编辑虚拟主机配置在(VirtualHost *:80)下增加两行

ProxyPass /cdb/ http://localhost:6902/
ProxyPassReverse /cdb/ http://localhost:6902/
$ sudo /etc/init.d/apache2 restart

这样,便可以通过”http://localhost/cdb” 来访问原来”http://localhost:6902″的资源了,在ExtJS中,也可以将ScriptTagProxy换成HttpProxy来使用了。

有缘千里来相会,婺源去看油菜花。

本来去年就可以去婺源的,由于种种原因,未能如愿。今年计划去时,去年那些去过的人纷纷建议:“不要去,你会失望的”。

旅行,在乎的是心境和随行的人,真正的景色,占的比重可能没那么大。于是在没有心境和随行的人的恶劣情况下,我毅然在游侠客上报名,选择了去那片让他们失望的油菜花地。

一大早出门忘带钱包,打的跑三个来回的糗事暂且不表,光是那四个多小时的车程,就把我坐得心神不宁了。

出行那天,杭州是在下着毛毛雨的,在大巴开到安徽黄山后,沿着车窗往外望去,似乎有些阳光了。我不由得大喜,暗自钦佩自己的人品,出行之处,天气必由坏变好。可当到达婺源清华镇进行午餐时,才发现其实我不可能一直保持好人品,天公还是不做美地飘着细雨,让人对尚在期待之中的油菜花地少了些盼头,既而又想,烟雨朦胧的画面,其实也别有番风情。

午餐后的首个目的地是花田乡,实际在地图上没有这个名字,与之最近的地名叫“外诗春”(为啥不是外思春?。。。)。领队说那是一片未开发的油菜地,除了当地居民,基本上人迹罕至。我们下车后,醒悟了,确实如此,有谁会这么神经病的在下雨天跑来花仅开三成的油菜地呢?经过当地民居时,她们窃窃私语间的贱笑,让人很自然地意识到自己做为正常人的形象在妇女们的谈笑间顿时灰飞烟灭了。不过话说回来,如果不下雨;如果油菜花开全了,外思春确实还值得一去,至少是在婺源。

在意识到雨天的外诗春已经没什么看头后,又乘大巴去了洪村。洪村是个长寿村,至少有多长寿,我忘了。当地导游带着我们转完这个小村子后,我又醒悟了,这是个比外诗春更不值得来的地方。一群老爷爷老奶奶坐在家门前,挨个接受游客们的瞻仰,这真的不好玩。倒是里面的古典徽派建筑群,看起来还有点意思。

晚上是去晓起村吃饭以及住宿的,因为这儿离第二天的目的地——江岭很近,并且也方便返回杭州。我当天确实有够倒霉的,在两块手机电池都告危的情况下,晓起居然停电了!停电就意味着,意味着我们只能点蜡烛打牌了,哈哈哈。从8点半打到10点半,有人撑不住,我只好悻悻的回房间了。由于停电,房间的电热水器也没能存下热水,用冷水随便冲了下脚,心怀怨念地躺下了。

江岭有个很著名的景点——梯田油菜花地。群山环绕着村庄,像两只大手,把孩子抱在怀中,而这些孩子们则在大手的皱纹上,种出了一片闻名全国的美景。与杭州不同的是,这里只要是号称为景点,就必有几个带着袖章,挂着胸牌的农民般模样的“保安”,并且都是要收费的。江岭的油菜花地,是没有大门的,几个收费的保安站在一个小山坡上,这里就是入口,游客需要凭门票才能进去。它的技术还蛮先进,门票和指纹绑定,进去只时在指纹机上按一下即可。在盘旋完梯田后,我感触良深,如果在一个景色非美好的地方,至少也得有个美好的人陪伴,那样才不至于失落太多。但为了不失落更多,还是举起HS11,四处装模做样的用EVF取景,咔嚓。

返程的时间比去时少了1小时,这点从地图上可以看出来。此次婺源之行,印象最深的还是线条优美的徽派建筑,白墙黑瓦们朦胧的烟雾中若隐若现,这比半绿半黄的油菜花地有看头多了。

附上此次旅行的照片和游玩路线:

Picasa Web相册:https://picasaweb.google.com/108795284939981934432/TUkky

Google Maps地图:http://goo.gl/maps/RDrr

自定义ubuntu clock applet显示格式

默认的clock applet只能显示有限的几种格式,可这种非中文locale的格式,还真是不习惯。

折腾了一会,终于找到了解决办法。

打开gnome的配置管理器,或直接输入命令

$ gconf-editor

找到节点

/apps/panel/applets/clock_screen0/prefs/

编辑右边format键值为"custom"(不含引号),同时将custom_format键值设置为

%Y-%m-%d %H:%M:%S

便可看到适合国情的时间格式了,嗯,我的格式加上了星期(%a)。

其实custom_format的格式可参见"man strftime"。:)

我是你流浪过的一个地方

我说过今年要读一本诗集,想来想去,又想到了我上次读到的那首诗《我是你流浪过的一个地方》。

名为上次,其实已经过了三年了。说来还是在官人买的读者上无意看到的,但由于很喜欢,所以印象很深刻。

于是打定主意,今年的诗集就选定王海桑了。

但这首诗太著名了,以至于搜索王海桑,结果基本上都是关于这首诗的,并且这才发现刊登在《读者》上的这首诗只是节选部分,原诗可是有足足24小节!

找了老半天,找到一个最相近的结果是《读库》的一篇日志,里面有提到王海桑,以及他的诗集出版的来龙去脉,并提供了联想网盘的下载地址,包含诗集和朗诵音频,可是因为年久失修,下载地址都失效了。

第二天晚上,终于在某一论坛上获得诗集PDF的下载地址,既而又灵感闪现,在tudou搜到整个诗集的音频,于是速度用iTudou拖下来了(有工具的话,就不用亲自inspect了:P)。

本着分享的精神,如果有同样喜欢海桑的朋友,在此送上下载地址。

自己空间怕盗链占VPS资源,还是放115网盘:《我是你流浪过的一个地方》,如果115失效了,就直接邮件联系我吧。

bye,24.

刚好是个做年终总结的时候,顺便告别“本命年”,站到下一个轮回口子上。

2010年过得很平淡。假设人生是一条抛物线,那么我这条线的开口是朝上的。如果我总共就能活2个24,那么随着2010年的远去,意味着我人生最平淡的时刻就跟我说再见了;如果能有3个或者更乐观一点,3+个24,那么从图像上看来,更悲剧的事情还在挥手准备迎接我的到来。

流水账似的总结,不想再写了。不切实际的展望,也不谈了。目标定高了,生活有压力,没有目标,生活没动力。

在价值观畸形的年代,既然不能提高经济境界,那只好独善其身,提升下思想境界吧。

  • 社科类书籍,至少读3本。
  • 经济学书籍,至少读2本。
  • 诗歌,1本吧。
  • 科幻,刘慈欣全集得看完。
  • 专业书籍,把买回来的先看完。

书籍再排多一点,恐怕就不太靠谱了。

身体方面,需要继续保持锻炼,同时提高业余爱好

  • 天睛就去爬山,呼吸室外空气。
  • 带上相机,练习摄影技术。
  • 每周打一次羽毛球,保持身体机能。
  • 哑铃嘛,等到天气回暖时练习吧,肌肉还是需要加强的。
  • 2011年,必须要有一次远门旅游,即使是辞职,也必须要有!!!

至于关心的其它方面,那就只剩一件事了,求偶。

可是这光靠一已之力是搞不定的,所以只能看天气了。

希望好运吧,如果在11年把这些事都搞定。

good bye,  24; hello, 25!

檀头山岛游记

哎,今天是来杭州后值得记念的日子,比本周日更重要,可惜哇,搞砸了。

自10月份以来,只更新过一篇日志,甚是愧对vps和孜孜不倦往我blog spam的机器人。

争取在过年前,把今年落下的日志都给补上。

早就计划着去一趟海边,身为在长江边上长大的人儿,见过最多的水,也就是在长江里了。

终于趁着十一假期,去体验一下荒岛上别样的生活,顺便结束在温州半年的悲剧生活。

该路线是在杭州游侠客上找到的,提前在支付所有旅途必需费用后,我和一群朋友在10月1号凌晨从文三路伟星大厦出发了。

嗯,今天思绪有点过头,不宜多写文字,还是直接上图算了。点击可看大图。

后记:那天的天气很给力,天气预报不看好檀头山,但是老天用实际行动证明了,电视上真的只剩时间是准的了。

早上去的时候还灰蒙蒙的,一进象山,马上就出太阳了。让我不停的感叹,泳具没有白拿,长焦没有白拿。哈哈哈。

带人像尤其是泳装照,是万万不能出现在这里的,所以暂放些风景,以兹纪念。

健康生活从今天开始

把标题取好后,我突然想起:我的生活,什么时候健康过?

自我记事开始,健康的生活就是吃完酱油拌饭,然后就去玩泥巴。酱油拌饭,在当时是多么的香甜啊,可是如今看来,自然不能是健康生活。

小学、初中和高中都是在家里走读,每天最痛苦的事就是起床。不是因为被闹钟叫醒而觉得痛苦,而是因为没闹钟,幼小的心灵哪能绷紧一根弦,于是就睡过头了,等我走到学校后,同学们的早读都快结束了,然后被老师命令在门口罚站。这在现在看来,也算不得健康。

到了大学,那个自由啊。记得我原来回答过一个问题:“你早上吃早饭么?”,答曰:“只有大学生才不吃早饭”。这就是大学四年日子的写照。在大一的那段岁月,那是相当地早睡晚起(早上6点睡,下午2点起,是的,通宵。),作息基本紊乱,生活规律基本失调。如果这也算健康,那。。。

工作之后,关乎到收入的事情,作息不得不规定一点,饮食不得不端正一点;早起基本上固定了,踩着点上班,而早睡,那是完全没影的事。健康,似乎没想起过。

在温州工作了半年,成天就是上班,下班,睡觉,好不容易有个周日,那也只能能来补觉了。补完觉醒来,突然就有了对于健康生活的追求。那种生活真TMD累,身体上不太觉得,可是心理上感觉巨强烈。

回来杭州后,便早早地把健康生活纳入了往后的计划中。

每次回家,都会听父母长辈们说:“怎么不见长胖”、“越长越瘦”诸如此类的令人伤感的各式疑问和感叹。哥其实当年也胖过,传说哥小时候吃肥肉,那是“港港”的,一度达到“无肥肉,不成饭”的地步。只可惜,由于长大后,懂的事情越来越多,事情越来越让人操心,于是乎,哥也就越来越瘦了。

本次健康生活计划包括:健身,早睡早起,健康饮食,合理运动四大部分。想要达到的目的:增肥,增肌肉,能撑起每一件配得上哥的衣服。

简要讲讲健康生活计划的详细内容:

健身:由于附近没有健身房,不仅花费不菲,而且机动性不强,所以选择自购哑铃,在室内进行锻炼。有两点好处,其一,花费少,只需要自购哑铃;其二,随时都可以锻炼,早上起床后做几组动作,晚上回来后,又可以做几组动作,下午上班休息时间,还可以做几组(当然,公司也有哑铃),巨方便。哥不是体能牛人,只能选择像少食多餐一样的进行运动。其实去健身房的好处更多,只是我喜欢性价比高的。:)

早睡、早起:如无其它必须事情,争取在23:30上床睡觉,早上7:30起床锻炼。锻炼前,先去煮两鸡蛋,顺便泡杯牛奶,等做完几组动作,洗漱完毕,就可以开始吃早餐了。

健康饮食:我唯一拿得出手的一样菜就是煎鸡蛋。所以为了健康饮食,我不能只吃煎鸡蛋,只好在外面吃吃。这里的健康饮食,其实就是指早餐和夜宵了。早餐,现在两煮鸡蛋+一杯牛奶+一个苹果,以后可以考虑煎两荷包蛋+面包;所谓夜宵,其实也和早餐差不多,为了在晚上做完锻炼后补充下能量。号称夜宵而已,仅仅是。

合理运动:每天都要玩这么多次哑铃,对于我这状态的人,想想挺可怕的。花了若干大洋购入的神器(Victor Brave Sword 169)不能就这样尘封,于是每周还得计划打两次羽毛球,发展下业余体育爱好。

以上,便是自我总结出来的山寨健康生活的概念。先试行一段时间,看看效果如何。好则继续之,差则改之。

2010年10月19日早上正式开始这个计划,只是已经过了0点了,我该睡了。Over。

Google translate新发现

一朋友让我翻译一篇文章,文体像诗,长度短篇小说那种,翻译成英文,死活推脱不掉后,只好操起了Google translate。以前用它只是拿来翻译点单词或是短句,这次为了解脱,不求质量了。

前段时间也看到文章说Google tanslate改版了,最近一直没啥需求,也就没去折腾,今天正好趁此机会,试用了一把。把要翻译的文章复制到左边文本框,选择翻译的目标语言为English,点下translate,结果很快便出来了。 继续阅读“Google translate新发现”

crontab中使用scp提示’permission denied’的解决方法

曾经有一段时间需要从集群中的一台服务器收集数据,并放到另一台服务器上。手工做了几次,实在是烦了。于是写了个脚本加上crontab来做这件事情,脚本内容大致如下:

#!/bin/sh
# file: script.sh
#1. collect some data…
#2. generate data file
scp data_file someuser@somehost:~/destination/today.data
echo "[Today] collect data completed." >> /tmp/collect.log

而crontab的内容也很简单:

* 16 * * * cd path_of_script; sh script.sh

当然,在放到crontab之前,我用手动运行过个脚本,是可以正确的收集数据,并且将收集到的数据复制到另一台服务器的指定路径。为了记录收集情况,每当执行完后,都会在/tmp的日志中写入一条log。

我在crontab中设定了让这个脚本每天下午4点钟开始执行,可是第二天下午5点钟了,同事说当天的数据没到收集到。我觉得很奇怪,登录到这台机器上发现日志里已经显示当天的"collect data completed"了,但不知道为什么,数据没有复制过去。想了想,把脚本和crontab都稍做了修改:

script.sh:

#!/bin/sh
# file: script.sh

#1. collect some data…
#2. generate data file
scp data_file someuser@somehost:~/destination/today.data
echo "[Today] collect data completed."

crontab:

* 16 * * * cd path_of_script; sh script.sh &> /tmp/collect.log

不仅记录自己输出的日志,而且把scp的stdout也记录下来。第三天下午4点过了,数据依然还是没有复制到目的机器上,查看collect.log发现当天的日志是:

Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
lost connection
[2010-08-30] collect data completed.

这时候我才想起来,这台机器压根就没有可用的key来登录到目的机器!当初我之所以能成功地执行脚本是因为我是开启了ssh_config中的ForwardAgent,在执行脚本中的scp时,使用了我的key,而当我退出这台机器后,它便无法再登录到目的机器,因而亦不能执行scp了。

找到原因后,问题就好解决了。在收集数据的机器上使用ssh-keygen产生一对rsa公私钥对。把公钥追加到目的机器的"/home/someuser/.ssh/authorized_keys"中,然后使用scp时加上-i选项来指定私钥的位置即可,修改后的脚本如下:

#!/bin/sh
# file: script.sh
#1. collect some data…
#2. generate data file

scp -i ~/.ssh/id_rsa data_file someuser@somehost:~/destination/today.data
echo "[Today] collect data completed."

记住,退出机器前先使用ssh -i ~/.ssh/id_rsa someuser@somehost来登录到目的机器,不然下次crontab运行时,scp会傻傻地等着你输入yes来确定把目的机器加到known_hosts里。