实际生活中类似的事情或多或少都会有那么一些。比如电脑蓝屏,虚拟机突然坏掉,导致一天都在重新折腾配置工作环境,比如误删了自己电脑里面相册数据或者开发文档,导致重新整理或书写,甚至直接电脑摔坏或者被偷了。
这一系列问题多多少少与我们备份有关,今天我主要分享几个我日常用的比较多的备份工具给大家。
Git版本控制系统
小编也是一名从事了6年java开发的全栈工程师,花了近一个月整理了一份较适合18年学习的java干货,送给每一位java小伙伴,加QQ群:818464711领取
提到备份,毫无疑问必须是版本控制系统--Git。
首先我们简单解释一下什么是版本控制,它主要是记录一个或多个文件内容变化,以便将来进行查阅版本修订的系统。
有了Git,你能很容易追溯到历史的各个版本,你能随意更改变更,最后很容易回到之前的样子,几乎不会增加额外的工作就能实现。
说到这里,就要解释下为什么我不喜欢用word进行写文档,而是用Markdown,不仅仅Markdown简单好用易于排版,还有一个md文件是普通文本文件,而word生成的docx是二进制文件,只能监听到改动却无法对改动进行恢复对比。
还记得我们大学写毕业论文的时候,产生7,8个版本的word文档场景么?
每次论文的每个版本或多个版本之间,对比非常困难,不能很好差异化,管理还原出来。(即使word有对比功能)
实际情况我们论文可以尝试Git+Markdown进行管理书写,再通过Pandoc 生成docx,即可以进行版本控制又可以以标准格式交差。
Rsync文件备份
说完文件监听控制,我们谈一下Rsync,它是一个Linux系统管理员常用的命令行工具,常用于数据拷贝备份,主要用于开发过程中操作。
比如我们开发过程传输代码到线上服务器的时候,或者备份数据库或者日志文件等等。
主要特点:
简单用法如下:
rsync -avz source_dir dest_dir(username@host:PATH) --exclude "*.pyc*" --delete 其中 -v verbose 详细输出 -a 归档模式,递归方式传输文件 -z 压缩文件传输 -h human-readable, 输出友好 --exclude 不包括 pyc的文件, --delete删除在源端不存在的文件(不加不会默认删除) # source_dir 带 `/ ` 会把所有内容复制到目的端,不带就会创建复制同名目录,源端同理。
日常工作中我们备份数据常常用crontab进行定期执行rsync命令,但是为了更方便管理我们对服务的操作,可以把命令的shell文件加入版本控制里面,通过Celery Beat来进行统一执行定时任务。
Dropbox云存储
说完数据文件的命令行备份,我们简单说一下图形用户界面的Dropbox。
Dropbox是一个线上云存储服务,最初由Python书写,通过云计算实现和互联网文件同步,用于存储和共享文件及文件夹。
主要特点:
如果因为Qiang的问题而放弃优秀的工具,是得不偿失的,建议大家都去尝试一下。
Time Machine时光机器
最后来说说对整个操作系统备份--Time Machine(时光机器),它是 Mac OS X 内置的备份工具,它可以自动按照每小时,每天或者每周来对你的苹果电脑进行备份。
可以在本地或者外接键盘进行备份。比如我家里面就是使用LaCie外接硬盘进行系统备份的。
如果你要进行系统升级或者数据迁移,Time Machine将是你最好的安全防线,强烈建议Mac的同学开启进行备份。
恢复任意时刻系统图
上面的四个工具,我们从文件细微变更(Git),到命令行文件增量同步(Rsync)备份,到Dropbox图形用户界面的云存储服务的文件管理,到最后整个操作系统备份,做了一个简短的介绍,希望大家可以去尝试一下,使用好了这几个工具,我们的文件数据将变得更加安全。
如果你有问题或者更好的推荐,欢迎留言来分享你的效率工具。