牛骨文教育服务平台(让学习变的简单)

 

上次说到我的解决方案(Mac OS X数据备份方案一例

 

技术要求重复一下:

  1. 可以随便挑选备份源(目录/文件,添加/删除源等);
  2. 关键是同步,因为我可能是用外置硬盘在别人的机器上拷贝了数据,而在自己的机器上没有/或者是旧的数据,不能一味地备份而用旧数据覆盖了新数据;
  3. 可以很好地支持文件/目录的权限,ACL, ExtendedAttributes和Flags等文件属性的同步;
  4. 可以自由选择多个目标盘;
  5. 可以最大效率地使用硬盘空间不浪费;
  6. 可以选择处理links的方式;
  7. 安全可靠, 简单并可控制

 

首先是规划

 

    技术要求已经说了,现在要考虑的是

 

    我希望把日常所有的数据都备份到外置硬盘,再加点备份系统设置等数据。为了自己管理方便,把所有非系统的自己安装的应用程序都放在~/Applications目录里面。

 

    其次,我希望把那个外置硬盘的数据同步到另一个外置硬盘,因为第一个外置硬盘经常随我外出,更容易坏不能依赖它。

 

其次,测试命令

 

    命令使用rsync而且是更新后的版本。

 

    测试备份过程,系统资源占用情况等,

    测试变更源盘内容(文件内容,属性等)是否在目标盘更新,

    测试变更目标盘内容,是否被源盘覆盖,

    双向测试同步是否成功,

    ... ...

 

最后,实施

 

    使用下面的命令来实施了:

#

# 1. Sync Current user to 1st External HD: exMac

#

sudo -s

rsync -auvEAXN --progress --inplace /Users/myaccount /Volumes/exMac/Backup/Users/

rsync -auvEAXN --progress --inplace /Library/Preferences /Volumes/exMac/Backup/OSX_System

rsync -auvEAXN --progress --inplace /Library/Application/ Support /Volumes/exMac/Backup/OSX_System

#

# Sync from exMac to exMac2

#

rsync -auvEAXN --progress --inplace /Volumes/exMac/Backup /Volumes/exMac2/

#

# Sync back from exMac2 to exMac

#

rsync -auvEAXN --fileflags --force-change --progress --inplace /Volumes/exMac2/Backup /Volumes/exMac/

 

实际测试:在两个外置硬盘之间(一个Firewire400的 1TB的WD iBook, 一个USB2.0的Seagate 1.5TB FreeAgent), 传输420GB数据(使用备份不是更新),用时4小时12分钟 (Started from 18:50:52 MDT to 23:02:57 MDT). CPU占用没有超过50%。

 

速度还可以, 机器运行别的程序(上网,Entourage查email, 编辑小文件, 运行Console监视系统状态等)没有明显慢的感觉,明天要看看它在其它方面的表现,尤其是是否可靠。