星期三, 十二月 31, 2008

星期二, 十二月 30, 2008

久违的感觉-解决文件同步问题

这两天上班几乎没有什么事情,就是混着。今天决定解决一个长久以来困扰我的关于文件同步的问题。

我用的文件同步软件是微软的SyncToy 2.0。公司的电脑预装了另外一个同步软件,简直就是垃圾,我们有同事曾经因为它丢失了所有需要备份的文件(原因仅仅是因为目标盘的存储空间不够了)。SyncToy毕竟是微软的东西,好用多了,多种同步模式可以选择,定制不同的Profile,而且支持命令行,这样就可以在计划任务中加入一个同步任务,每天定时同步。我设置了每天中午12点(正好是午饭时间)把我的ThinkPad中所有需要备份的文件文档图片等等全部同步到另外一台台式机上。

但是Outlook给我的文件同步带来了一个问题。Outlook上班一直开着,在同步.pst(Personal folder file)文件时总是会出错,因为文件被Outlook lock住了,不能够拷贝。所以每天中午的同步运行完以后.pst文件的同步都是失败,我只能想起的时候关掉Outlook然后手动运行同步。这样实在Annoying,而且有数据丢失的危险。

我发现这个问题后曾经查询过SyncToy的网站,我相信我不是第一个遇到这个问题的人。果然已经有人有了解决方案,我大概看了那个帖子,需要写一些批处理调用一些东西,有些复杂。于是我把帖子存了下来等有时间的时候再研究,今天是时候了。

仔细看了一遍帖子,发现需要使用一个新玩意儿,叫Volume Shadow Copy Service。大概意思是先在系统中创建一个shadow copy,然后再从shadow copy中把需要的文件拷贝出来。帖子中还给出了Volume Shadow Copy Service在MSDN中的链接,这就好办了。我先安装了一个相应的SDK,然后按照MSDN中的例子写批处理文件,也就几行。运行,失败。仔细查原因,发现MSDN中的有些内容竟然已经过时了,有些参数根本就不支持。上午在办公室折腾了一个多小时直到中午吃饭也没有解决问题。

晚上吃完饭后我继续研究。看来按照MSDN上的例子是行不通了,我于是重新研究最初的帖子上的代码,仔细比较后我发现MSDN上的代码竟然有一个地方写错了,活生生的多了一个字母“V”,奶奶的,把我郁闷的。但修正后还是有问题,好像shadow每次创建完以后还没等我拷贝就自动删除了。再研究帖子上的代码,发现它还callback了另外一个批处理文件。看来必须通过callback才能在shadow copy删除之前运行文件拷贝。这下有眉目了,我另外创建了一个单独的callback批处理文件用于拷贝.pst文件,再试,成功。

其实最后两个批处理文件加起来一共6行代码,折腾了这一天。久违的感觉。

星期二, 十二月 16, 2008

地震

今天清晨我睡得正酣,突然被一阵剧烈的摇晃给晃醒了。我明显感到床旁边的大衣柜和我睡的床正在剧烈摇晃,持续了大概5秒钟左右就停了。当时我还真是吓得够呛,因为晃动感太强了。我们家的大衣柜特别大,而且里面装满了衣服,这都能晃动。地震了吧,我想。可是听听窗外还是安静依旧。醒了醒神后我看了一下手机,6点23分,说明晃动大概是6点20分发生的。靠,刚才做梦吧,我也不确定了。去了一趟厕所我倒头又睡了。

上午我一去办公室就问对面的丹麦同事Thomas:“丹麦有地震吗”?他马上回答说今天清晨瑞典地震了,4.7级,6点20分时。难怪。不过他住的是house,所以感觉不明显。而我住的是公寓,4楼(按中国说法是5楼),所以明显感觉到了震动。我又问了一个瑞典的同事,他住在马尔默。地震发生时他刚出门。他说当时他老婆吓得从厨房里跑了出来,大叫:“发生什么事了?!”

这还真是我第一感觉到地震。以前在北京好像经历一两次但从来没有震感。

网上的报道:

新华网斯德哥尔摩12月16日电(记者和苗)据瑞典媒体16日报道,瑞典南部当地时间16日凌晨发生里氏4.7级地震,这是瑞典100多年来遇到的最强烈地震。目前尚无人员伤亡的报道。

    据报道,此次地震震中位于瑞典第三大城市马尔默以东60公里处,当地居民能感受到强烈震感,整座城市的楼房都产生了晃动。瑞典地震学家介绍说,瑞典南部地区也有震感,震感持续了大约5秒钟。

    另据丹通社报道,丹麦首都哥本哈根及丹麦北部一些地区也有明显震感。

    1904年10月23日,位于瑞典西海岸的克斯特岛发生里氏6级地震,瑞典南部及波罗的海三国等地均被测定发生了里氏5.3级地震。