Shell自动备份Gitlab仓库的数据

时间:17-08-02 栏目:运维 作者:kyle 评论:0 点击: 1,646 次

 

很久没有更新了,抽时间快速整理一小段代码。

 

公司的Gitlab我在管理,一直没有时间做自动备份,生怕哪天出问题就完蛋了。

 

Gitlab自带有备份的功能,使用:

gitlab-rake gitlab:backup:create

即可在目录

/var/opt/gitlab/backups/下面生成备份的文件。

 

现在快速弄一个简单的Shell,做每天的自动备份以及历史备份的清理。

 

#!/bin/bash
#
# add to crontab :0 5 * * sh /data/scripts/backup_gitlab.sh
#

echo 'begin backup gitlab'

/opt/gitlab/bin/gitlab-rake gitlab:backup:create

echo 'Backp down! Begin copy to new folder'

# copy file created inner 60 minutes to backup folder
find "/var/opt/gitlab/backups/" -name "*.tar" -cmin -60 -type f -exec cp -R {} /data/backup/ \;

# delete old 2 day file
find "/var/opt/gitlab/backups/" -name "*.tar" -ctime +2 -type f -exec rm -rf {} \;

# delete 7 day files
find "/data/backup/" -name "*.tar" -ctime +7 -type f -exec rm -rf {} \;

echo 'backup gitlab work done'

主要用到的几个Find命令。

第一个-cmin –60 指60分钟以内创建的文件进行搜索

-ctime +2 指2天以前创建的文件

同理+7 代表7天以前创建的文件。

 

最后的逻辑是这样的:

1、备份

2、复制到/data/backup/目录统一管理

3、清理git自身目录2天以前的备份文件

4、清理backup目录7天以前的文件,因为我是每天备份,相当于保留7天数据。

 

然后chmod +x backup_git.sh 设置脚本具有执行权限。

放到目录/data/scripts下面。

 

使用crontab -e编辑定时任务

末尾加上:

0 5 * * * sh /data/scripts/backup_gitlab.sh

 

保存之后/etc/init.d/crond restart重启定时任务。

 

好了。以后每天凌晨5点会自动进行备份,并清理数据,如果有需要传到远程,再加上代码就Over了。

成都SEO小五嚎2句: 本文是(成都SEO小五)辛苦弄出来的,转载成都SEO小五原创的请保留链接: Shell自动备份Gitlab仓库的数据,3Q

Shell自动备份Gitlab仓库的数据:等您坐沙发呢!

来给哥评论评论


------====== 小五公告 ======------
成都SEO小五,专注成都搜索引擎优化。
小五善长站内外优化,C#、PHP开发,中英文SEO,Google中英文和百度优化技术。欢迎群内交流。伸手党请绕路,求资源的请绕开,求问题解答的请进群内交流。开放了一个QQ交流群:160750032。加入验证时请标注任何SEO相交字眼。友情链接直接Q我,收录正常,内容大部份原创、SEO或者程序开发、网络营销、线上推广等相关行业即可。

常用工具

赞助广告

来看过哥的人