• docker环境下gitlab的自动双机备份(直接备份到window的共享目录下)


      以下操作均在root用户中操作

      首先需要知道gitlab容器中备份文件存放的位置,和与本机映射的位置。

      gitlab的备份一般是在/var/opt/gitlab/backer 路径中,但是由于我一开始配置gitlab容器的时候不小心将/var/opt/gitlab/backer 路径写成了/ar/opt/gitlab/backer  少了一个V,导致我本机目录下无法找到,所以我更改了一下我的备份路径,关于如何更改备份路径请自行百度。

      不知道映射路径的可以使用docker iptables命令查询

      1.首先使用docker ps查看容器信息 比如我的gitlab容器ID是279fe051b113 

      然后使用

    docker inspect 279 | grep Mounts -A 20  ID

      不用全部打,写前几位就可以了 也可是容器名字。

       

      source 是我们本机的

      destination 是容器内地址

      2.GitLab自动备份

      新建备份的sh文件:在/root 下新建gitlab_backup.sh ,内容如下:

    #! /bin/bash
    case "$1" in 
        "start")
            docker exec gitlab gitlab-rake gitlab:backup:create
            ;;
    esac

      测试 输入 sh gitlab_backup.sh start

      如果/srv/gitlab/data/backups 下有新生成的tar包,即可说明sh文件写对了。

      新增定时任务:使用crontab -e 进入定时任务编辑界面,新增如下内容:

      0 2 * * * /root/sh gitlab_backup.sh start
      保存 ctrl+X -> Y

      3.安装挂载window工具

      apt-get install cifs-utils

      设置开机自动挂载到Window文件服务器,首先打开这个文件

    1 sudo vim /etc/fstab

      然后在文件的最后一行输入(前面一个地址是你的window共享目录地址,后面是linux目录地址,username是window的用户名,password是window用户名 密码)

    1 //192.168.0.2/data/dataset /media/dataset cifs username= admin,password=123456 0 0

      下面这种操作是只挂载一次,重启后不会自动挂载(这个坑了我好久)

       输入下面命令

     sudo mount -t cifs -o userneme=root,password=123456,uid=1000,gid=1000 //192.168.1.112/A1 /mnt/A1


      uid=user,gid=user中输入你ubuntu的用户名,可以用命令id [你的用户名]来查看你的uid和gid;
      username是window下的设置folder共享时的用户;
      password是username对应的密码;
      //192.168.1.112/d中192.168.1.112是windows的IP地址,A1是你要共享的windows目录;
      /mnt/A1是你新建的文件夹,用来映射到window共享文件夹的;
      //192.168.1.112/A1 就是你window共享文件夹的地址

      4.创建自动复制到共享文件夹的sh脚本

    vim gitlab_upload.sh
    #!/bin/bash
    backdir='/home/user/docker/gitlab/config'
    cd "$backdir"
    name=$(ls -t|head -n 1)
    cp $name /home/user/mnt/share

      这个脚本的意思是将备份文件拷贝到共享目录/home/user/mnt/share中

      5.重复上面的crontab-e 让系统自动运行 稍微比备份推迟个几分钟

      6.删除前一天的备份文件

      创建自动删除脚本

    vim auto_delete.sh
    #!/bin/bash
    backdik='/home/user/docker/gitlab/config'
    find "$backdik" -name "*gitlab_backup.tar" -ctime +1 -type f -exec rm -rf {} ;

      crotab-e同上,时序最好就是在备份和拷贝到window共享目录之后执行

      dackdik是你的备份目录

  • 相关阅读:
    Membership角色与权限管理
    Virtual PC 2007 下载地址
    Support Web Application Projects
    CSS使用高级技巧20则
    apache和IIS共用80端口
    Dreamweaver扩展(插件)使用
    CSS横向菜单下拉显示子菜单
    openPNE创建项目
    基础AJAX
    连接数据库
  • 原文地址:https://www.cnblogs.com/isyefeng/p/11906925.html
Copyright © 2020-2023  润新知