zoukankan      html  css  js  c++  java
  • GitLab定时备份及恢复

    背景

    公司使用windows上的centos虚拟机作为Gitlab存储服务器,需要每天自动定时备份(数据备份到windows上),防止虚拟机文件损坏造成代码数据丢失。

    操作步骤

    配置linux访问windows免密登录

    1. 安装OpenSSH服务 下载地址
    2. 解压至C:Program FilesOpenSSH,打开cmd(管理员),进入此安装目录),执行命令:powershell.exe -ExecutionPolicy Bypass -File install-sshd.ps1
    3. 设置服务自动启动:sc config sshd start= auto
    4. 启动服务:net start sshd
    5. 在客户端(git服务器)上创建密钥对:ssh-keygen -t rsa直接按三次回车,不要设置密码
    6. 拷贝公钥文件到需要备份文件的服务器,将git服务器中~/.ssh/id_rsa.pub公钥文件拷贝到windows的C:user/{{ username }}/.ssh文件夹下并重命名为authorized_keys,注意如果没有.ssh文件夹,最好使用上一步的命令创建密钥对让其自动生成,否则会识别不到此公钥
    7. 在git服务器上验证下是否免密:ssh user@192.168.124.12

    创建备份脚本

    vim /opt/gitlabBackAndScp.sh

    #!/bin/sh
    
    scp_linux_path='/var/opt/gitlab/backups/'
    # 如果需要备份多台,这里可以多配置一行scp_windows_uri2,并把最后一行也复制修改下
    scp_windows_uri='user@192.168.124.12:D:GIT_BACKUP'
    scp_log_path='/opt/gitlabBackAndScp.log'
    
    time=$(date +%Y-%m-%d %H:%M:%S)
    gitlab-rake gitlab:backup:create
    filename=`ls $scp_linux_path -t |head -n1|awk '{print $0}'`
    echo [$time] $scp_linux_path$filename >> $scp_log_path
    scp $scp_linux_path$filename $scp_windows_uri
    

    创建计划

    配置每天凌晨一点备份,执行之后会默认在/var/opt/gitlab/backups文件夹下产生备份文件,并推送到上面配置的免密登录的服务器上
    crontab -e输入0 1 * * * /opt/gitlabBackAndScp.sh

    .gitlab恢复

    1. 停止相关服务
    gitlab-ctl stop unicorn
    gitlab-ctl stop sidekiq
    
    1. 修改备份文件权限
      chmod 777 /var/opt/gitlab/backups/1629016668_2021_08_15_12.1.3_gitlab_backup.tar

    2. 执行恢复
      gitlab-rake gitlab:backup:restore BACKUP=1629016668_2021_08_15_12.1.3

    3. gitlab启动
      gitlab-ctl start

  • 相关阅读:
    day04作业
    一个简单的gridlayout栗子
    用户名、密码等15个常用的js正则表达式
    html 颜色
    心态好的人,一辈子都好
    怎么样好好的聊天呢
    一篇引用文章
    再见,发微信不回的人
    第一个不怎么正经的网页
    关于学科目标
  • 原文地址:https://www.cnblogs.com/MrZhou5/p/15141294.html
Copyright © 2011-2022 走看看