有事没事请备份

备份的起因

公司电脑上使用过几年后,居然已经积累了几千个文件,还有近十个G的邮件。由于有了Everything来搜索文件,lookout来搜索邮件以,平时查找文件什么的还是挺方便的。但是原来依靠U盘拷贝来备份的方法显然已经无法在这种状况下继续满足要求了。

而笔记本的机械硬盘到底是非常脆弱的,轴承,磁头,悬臂,玻璃盘,电缆这些东西在几万次的读写后肯定会有损耗,特别是在我这种不经意的人手里,保不齐那天挂掉。希望SSD之类固定大容量存储设备快快现身,解决这棘手的问题。

常见备份的方法

目前常见的备份方法有:

  • 移动硬盘拷贝。优点:容量大,速度快。缺点:不要丢掉,不要摔坏的话,估计还好吧。
  • 网盘同步。国内用户还是放弃这个吧,一是说不定那天你常用的那个网盘就盒斜了,而且容量有限,国内网速实在是……。最最关键的是,公司的内部文件是不能采用外部存储系统的,这个大家小心一些为好(Google Apps 大哭……)
  • 与另一个电脑同步。这是我的方法。好处是公司的所有文件我在家也可以使用,加班弄点什么,就不用开公司电脑(关键公司电脑实在是慢的无语)。下面介绍的就是这个。
  • 定期光盘。这个适合我的照片这些东西,不会修改,智只会增加。Picasa定期导出一个年度的照片做一个合集还是不错的。不过公司的文件要修 改,Outlook的PST文件可是一个大块头,刻不下。
  • 磁带机。哦,怀念这东西。不过,你现在还是好好安息吧。

电脑间同步的方法

在我看来在两个电脑之间同步,是最为节省资源的方法。如果是在目录(包括本地目录和共享目录)之间同步,微软的SyncToy感觉还不错。但是如果你要同步的内容无法在共享目录方式下访问,比如公司电脑禁止了共享,没有安装samba的Linux主机等,则无法使用此工具。

电脑间采用FTP同步

我倾向于使用更加简单而且标准的文件传输工具,这里推荐FTP方式,因为支持的工具最多,基本都是免费的。协议标准而且和平台无关。

  • 迷你FTP服务器,推荐一个TYPSoft FTP Server,网上可以找到小巧的绿色版本。
  • FTP客户端,Filezilla是一个不错的选择。功能全面,免费,使用起来也挺方便。
  • 另一个FTP,SFTP客户端,WinSCP绝对是一款值得拥有的工具。

所要做的事情就是

  • 设置FTP服务器,我喜欢把需要同步的目录的上一级目录作为跟目录。
  • 建议:单独建立一个FTP帐号用于同步重要信息,并设上密码。
  • Filezilla只需要用这个帐号连接这个服务器,下载相关的文件即可。
  • 而如果使用WinSCP作为客户端连接服务器,则可以实现双向同步。

由于Filezilla只能实现单向下载同步,对于重要文件只能单向来说是足够的。

  • 比如从公司电脑下载到移动硬盘上
  • 网站内容的定期备份

但是如果需要双向的同步,可以采用WinSCP来进行。

在我的Linux主机和本地电脑之间的同步上,就采用了WinSCP同步的方法。如果需要双向同步,请在Direction/target directory中选择Both进行。

结论和期望

目前看来,这种FTP同步的方法可以满足大部分需要。但是还是有一些不足之处

  • 速度还是比较缓慢(SyncToy > Filezilla > WinSCP)。
  • 而且由于文件名和目录深度的问题,经常导致有个别文件无法在FTP中传输(估计是文件名长度超过了FTP的规定)。
  • 在传输大文件的时候,由于只是更改了一小部分呢(比如outlook的PST文件),需要传送数G的文件。

在我看来,能否有这样一个同步软件,满足以下的要求:

  • 服务器和客户端一体,小巧而且绿色,操作简单。
  • 无需依赖文件共享等平台依赖的机制(部分Windows无法共享目录)
  • 传输文件需要用户认证,防止文件外泄。
  • 采用索引机制,对本地目录建立修改记录数据库。
  • 超过100MB的文件进行分块修改记录的建立。
  • 在同步的时候,两端先比较修改数据库,找出需要传输的文件和数据块。
  • 采用数据压缩的方式传输数据(类似HTTP的gzip方式),而对ZIP, RAR, JPG等文件则不进行压缩。
  • 同步结束后,两端进行数据校验。
  • 数据传输和平台(操作系统,字节顺序等)无关。

也许在目前网络硬盘同步的大形势下,还在想要这样的工具实在是有点落伍了。

怎么批量修改Outlook联系人?

我的8900在和Gmail地址簿用Google sync同步后就没有正确显示过。也不知道为什么Google的地址簿总是把姓名显示倒过来,甚至连姓名都不分开存储。于是放弃了,还是转投outlook方案了。

不过windows7不知道为什么,把所有地址都自己保存了,放在”user/contacts”目录下面。于是同步来同步去,就乱套了。

  • 所有联系人全都重复显示:姓 名,名 姓,各单独一条
  • 自动为所有人添加一个头像,还无辜删除了很多人的头像
  • 为一些没有姓名的联系人(比如叫车电话,订票电话)创造了姓名,而且多条存储

看看手机上多了几百条电话信息,只好自己手工恢复了。

  • 首先在备份了你的手机后,在blackberry desktop manager上设置同步方式为与outlook同步。
  • 保证你的outlook联系人是空白的,这样最好一些。
  • 把手机联系人全部同步到outlook联系人上
  • 按照电话列表方式显示,并显示姓和名列,然后按照姓氏排列,找到那些奇怪的姓氏(两个字的,或者单字名字)删除这些记录
  • 手工删除其他多余的条目
  • 除了你自己要保留的那些,挨个删除所有人的头像
  • 做完一切后,再次和blackberry同步。

在列表中操作的话,前几个工作还算是顺利,不过最后一条,在网上搜了一圈竟然没有批量删除头像的方法。我只能采用最愚蠢的方法了。

在电话列表中,按照附件排列联系人(就是那个小别针的图标)。然后挨个打开在头像上右键,点击删除头像菜单,保存关闭。有鉴于这个动作要进行几百回,一些工具还是必要的:AHK,使用录制工具记录你一次操作,生成代码框架,稍加修改后就可以自动执行了。代码如下(只能适用于我自己的机器):

#n::
SetTitleMatchMode RegEx
loop
{
	WinWait, .*- 联系人  , ,3

	if ErrorLevel
	{
		MsgBox, WinWait timed out.
		return
	}
	else
	{
		IfWinNotActive, .*- 联系人  , , WinActivate, .*- 联系人  ,
		WinWaitActive, .*- 联系人  ,
		MouseClick, left,  460,  14
		Sleep, 100
		MouseClick, right,  646,  248
		Sleep, 100
		MouseClick, left,  687,  288
		Sleep, 100
		MouseClick, left,  420,  307
		Sleep, 150
		MouseClick, left,  40,  112
		Sleep, 100
	}
}

我这个脚本中采用了正则表达式方式来寻找窗口,然后按Win+n快捷键执行。由于不能一次打开太多的联系人卡片(否则会死机),每次打开几十个,然后按一下快捷键即可。

不过问题依然存在,保存在自己电脑上,到底还是有些担心的。除了google contacts 之外,还有什么比较靠谱的联系人在线同步工具呢?