“备份”是人们进入电脑时代必然遇到的问题,除了个人数据,还有生产生活中其他方面只要涉及到数据安全的皆需备份。
备份:
备份除了要求有数据以外,还要确保数据安全性,所以不是一般的复制粘贴或cp能搞定的。
windows下可以用goodsync或其他一些备份工具.
linux中使用rsync可以使备份目录和源目录完全一致:
rsync -auv --delete --progress /PATH/备份的文件或目录 /PATH/ //这样即可实现备份到目录PATH下的目的,还能即时看到备份过程,如有错误会在终端返回。如需传输时进行压缩处理使用参数 -Z ;如需传输时确保数据完全一致可以用参数 -c 。如:
rsync -auv -c --delete --progress /PATH/备份的文件或目录 /PATH/ //这样可以在备份时采取HASH校验使备份的数据和原始数据完全一致防止有被恶意篡改(如感染病毒)或磁盘损坏造成数据不一致,只是如果有大量数据校验肯定会拖慢备份速度。
扩展阅读:
1. 如上所诉,采取rsync加-c参数可校验数据完整性,但是会拖慢备份速度。其实也可以先备份再采取其他的方法来进行数据校验,如md5sum shaxsun(x=1,256,512等);rsync只是忠实的同步数据,数据不完整一般是上面提到的病毒感染或磁盘损坏(包括文件系统损坏)和一些其它硬件问题如内存损坏造成的,与rsync无关。下面会说到如何校验数据。
首先:cd到备份源目录中,递归建立一个有备份目录所有数据的hash文档;校验时这个文件要一并复制到备份目的目录的同级目录中以做校验用。
find -type f -print0 | xargs -0 md5sum >|/path/md5 //md5这个文件名可以任意指定
校验: md5sum -c md5 //如无意外,在一大片“确定”后即返回终端,如有不符的则返回错误提示。
md5sum -c md5 >/path/hash //把校验结果输出到一个名为hash的文件中,可以通过查询该文件得知具体出错的文件是那几个,避免因快速刷屏看不到究竟是哪几个文件没有同步完整。
cat /path/hash | grep 失败 //查询到出错的具体文件,如无错误则直接返回终端
2. 由于备份通常使用USB或esata等接口来进行数据传输,难免因为机器故障导致数据不完整,常见的就是写缓存和设备占用无法移除而采取了暴力移除的方法。这样直接导致数据未写完,轻则当前数据不完整,重则破坏文件系统造成更大的损失。
windows中可以用微软工具包里面有个 sync.exe 的工具来完成回写;若仍无法移除的则要保存其他工作后注销系统再拔除设备。
linux中:当然也会出现写缓存和不能安全移除设备的问题,不过解决很简单,sync(回写)、然后 umount 卸载挂载目录即可直接拔除了。
3. 要经常检查文件系统
windows:使用chkdsk或图形的方法,(以XP为例)打开磁盘管理-右击某希望检查的分区-属性-工具-开始检查-勾选(自动修复文件系统错误和扫描并试图恢复坏扇区)-然后开始查错
linux:umount 卸载挂载点(必须的,目的是让fsck独占设备避免检测时其他程序还在读写从而造成数据错误)后根据备份磁盘的文件系统类型进行fsck 例:
一般mbr的磁盘可以用 sudo fdisk -l 来查询到设备号,gpt磁盘可以用 parted /dev/sdx (x=b、c、d...)然后按p来查询,或其他工具。
sudo fsck -t ext4 /dev/sdb1 //检查一个设备识别为/dev/sdb1的,ext4文件系统的磁盘。
sudo ntfsfix /dev/sdb1 //检查一个ntfs分区的设备
结语:从插入设备开始备份到校验数据整个过程完成才能称做一次完整的备份过程。本���就因为内存损坏致使同步数据总是有问题,幸好明白数据要校验这个道理才能保证数据安全性,否则备份到头来成了做无用功。校验的时候没问题最好,若有问题则要考虑上面提到的因素。