使用rsync来做同步备份以达到使用git的效果
Tofloor
poster avatar
攻城狮
deepin
2017-09-18 04:46
Author
本帖最后由 bingeneral 于 2017-9-18 12:53 编辑

         不想听我废话的同学可以直接看我橙色字体部分,\(^o^)/~。                  
         这段时间接触了git,让我深切感受到了它的强大之处。其实git的强大之处在我觉得就是它可以记录你的操作过程,让你的项目文件永远保持最新状态,你的所有改动都可以在git中同步,不管是修改、增加还是删除。这使我觉得如果用git来做文件备份,效果可能比用tar来做更有效率。
         tar本身也可以做文件备份,但是它有一个致命缺点,就是做增量备份的时候如果原目录下的某个文件删除了,他并不能同步到已备份的文件中去,这样就使得我们的tar包里有了垃圾文件。所以每次备份的时候都得做完整备份,十分消耗时间和资源。那么用git就是最好的选择吗?
         我们知道git多用来做团队开发,多人协作的项目,并且都要上传到代码托管平台里面,虽然同步到本地也可以实现,但git的操作步骤不免还是有些繁琐。试想我们只是要做一个私人的备份,再用git未免有点出力不讨好了。
         rsync的大名其实我早就听说过,但是相信有很多人和我一样,在刚开始接触rsync时觉得难以下手,到底该怎么备份我们的文件,于是便放弃了这款神器。相信通过这篇文章,大家可以快速掌握rsync,实现我们的高效备份。
         rsync支持云端和本地两种备份方式,和git一样。但是这里不讲云端备份,因为云端再好也会受到空间、网速和安全性的限制,所以我们备份最好还是采用移动硬盘的方式进行。这里我给出一条可以达到和git一样功能的模板命令:rsync -avu --delete SRC [SRC]... DEST
         注意源目录可以有多个,最后一个目录为目标目录。源目录的写法有讲究:SRC/表示只备份SRC目录下的文件;SRC表示在DEST中会创建SRC目录,大家自己试几次便会明白。-u和--delete是实现同步备份的关键选项,其中-u表示只替换更新目标目录下的旧版文件,如果目标目录下的文件比源目录下的新则保持不变,保证备份的文件始终是最新版本,它是以文件的修改时间来确定的,而不是像git以文件内容来确定版本,这点不如git强大。--delete可以将你源目录下已经删除的文件,在你的目标目录同步删除,保证不会有垃圾文件。         
         深度应用商店还提供了一款rsync的图形界面版本Grsync,若是讨厌命令行可以试着用用,不过我本人觉得Grsync反而让人看着过于复杂,不如命令来的方便快捷。
         如此看来,rsync非常适合做私人备份。但是假如你需要将你的历史版本全部保存,那rsync做不到,还是老老实实用git吧。
         如果大家有什么更好的方法进行同步备份,或者我有什么地方说错了,欢迎在下方留言交流~





Reply Favorite View the author
All Replies
avatar
jingle
deepin
2017-09-18 19:50
#1
谢谢分享
Reply View the author