一种局域网机器定时备份方案

写这个问题,是因为我们都知道数据很重要,保证数据安全的唯一办法,就是备份。前几天发现我们使用的gitlab服务器居然没有备份,顿时感觉很惊悚,赶紧修复了这个问题。将思路写在这,供大家参考。

首先,在这个各大厂商提供了无数互联网服务的今天,我们的第一选择应该是公有云。所以,像gitlab这么重要的代码服务,可以直接布在公有云上。当然,更直接的办法是使用已有的代码管理服务,类似于github、码云这样的工具。使用这样的服务比较省心,代码版本管理、文档甚至项目管理等一应俱全,不会存在丢失文件的问题。

那么,为什么还要自己去搭建私有服务器呢?很简单,为了安全,这个安全指的是隐私方面。对于企业用户,一般不希望将核心的服务丢在公有云上。不管公有云宣称自己是如何来保护用户隐私的,只要你将东西放在人家的服务器上,就一定存在安全隐患。所以,很多公司,仍然需要搭建自己的服务器,自己的代码管理服务等。尽管,自己搭的服务未必有公有云靠谱,但这样不是心安么?

所以,我们还是回到,局域网内机器怎么保证数据安全(不丢失)的问题上。答案也很简单,备份,将重要文件备份到多台机器上

怎么在多台机器上备份文件呢?

自己写脚本,通过scp命令来做也是可以的。

一个更简单的方案,是通过rsync命令来实现。rsync即remote sync,远程同步工具,可以在同一机器或者不同机器上同步目录或文件,支持增量同步,传输效率较高。可以使用scp、ssh和socket连接,支持加密来保证传输安全。

将要同步命令添加到linux定时任务中,就可以实现定时备份了。下面是一个gitlab备份示例:

0 2 * * * rsync -avz --rsh="sshpass -p password ssh -l username -pPORT" /directory/to/backup/ 0.0.0.0:/backup/
0 1 * * * gitlab-rake gitlab:backup:create
其中,gitlab-rake gitlab:backup:create是在每天1点对gitlab代码备份,rsync在每天2点将/directory/to/backup同步到机器0.0.0.0的/backup目录下,使用ssh传输。

当然,这只是一种可行方案。这种办法也有一些问题,例如rsync备份不能做到实时,gitlab每次都将所有代码备份一遍,太浪费了。

继续关注更好的机器备份办法。




你可能感兴趣的:(系统)