zoukankan      html  css  js  c++  java
  • gitlab 本地 定时备份

    ===============================================

    20171015_第1次修改                       ccb_warlock

    ===============================================

     部署:http://www.cnblogs.com/straycats/p/7637373.html

     升级:http://www.cnblogs.com/straycats/p/7707359.html

     远程备份:http://www.cnblogs.com/straycats/p/7672692.html

     迁移/恢复:http://www.cnblogs.com/straycats/p/7702271.html

    经过推动,研发部门终于更换了使用了3年的git,发现之前源码管理并没有备份机制,既然接手了it这块我就得改变这种“裸奔”的现状,为此查找了资料,整理这一块本地备份的解决方案。

     


     一、环境准备

    我们默认一台服务器已成功部署了gitlab。

    如果还没有成功部署,可以参考 http://www.cnblogs.com/straycats/p/7637373.html

     


     二、手动备份gitlab

    很方便,因为gitlab有指令直接支持手动备份。

    gitlab-rake gitlab:backup:create

    这里要特别说明,如果 /etc/gitlab/gitlab.rb 配置了参数“backup_path”(例如gitlab_rails['backup_path'] = '/backup'),则备份的目录就是该目录下(/backup/);

    如果没有配置参数“backup_path”,则gitlab把备份文件生成到默认目录/var/opt/gitlab/backups。

     

    仅仅这样不够,每天我这里的运维工作也有不少,如果每天都来手动备份,虽然只要几分钟,但是人工成本很高,所以还是要考虑使用自动定时的方式进行备份。

     


     三、定时自动备份gitlab(本地)

    定时备份的思路建立在手动的基础上,通过crontab添加定时计划就可以解决这个问题。

    一般添加定时计划可以有2种方式:

    1.使用命令crontab -e,将定时任务添加后保存。

    2.将定时任务添加到/etc/crontab文件中。

     

    我这里采取第一种,使用crontab -e。

    crontab -e

    根据我们部门的工作时间,我设计一天备份2次,分别在每天12:00、19:00,故我添加下面的内容,并保存。

    0 12 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create
    0 19 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

    重启crontab

    systemctl restart crond

    但是仅仅实现自动备份还是不够,备份如果不能及时清理硬盘的空间很快会不够用,同时也要能够自动清理不需要人工花时间在这一块。


     四、自动清理

    这一块由于gitlab已经支持,我就走简单的方案,配置gitlab来实现自动清理功能。

     

    vim /etc/gitlab/gitlab.rb

    将其中backup_keep_time的配置取消注释,根据需要设置自动清理多少天前的备份,我这里是设置备份保留7天(7*3600*24=604800),保存。

    gitlab_rails['backup_keep_time'] = 604800

    重新加载gitlab的配置文件

    gitlab-ctl reconfigure

     

    参考资料:

    1.http://www.cnblogs.com/shansongxian/p/6599144.html

    2.http://blog.csdn.net/ouyang_peng/article/details/77070977

  • 相关阅读:
    C++中迭代器失效的问题
    怎么转载别人的博客
    Linux下模拟实现shell
    Linux下的文件描述符与文件指针及其区别
    智能指针
    C++模板(下)
    C++中的模板(上)
    僵尸进程和孤儿进程
    Linux下的atexit函数
    多线程练习
  • 原文地址:https://www.cnblogs.com/straycats/p/7671204.html
Copyright © 2011-2022 走看看