【Git】GitLab备份与恢复

    xiaoxiao2021-04-16  26

    /etc/gitlab/gitlab.rb中描述备份位置,默认备份到/var/opt/gitlab/backups/ 如果想要备份到/mnt/backups,修改以下配置,去掉注释 gitlab_rails['manage_backup_path'] = true gitlab_rails['backup_path'] = “/mnt/backups" #备份目录 gitlab_rails['backup_archive_permissions'] = 0644 #生成的文件权限 gitlab_rails['backup_keep_time'] = 864000   #保留10天 修改完成后重新配置: gitlab-ctl reconfigure 备份命令: gitlab-rake gitlab:backup:create 自动备份: 也可以通过crontab使用备份命令实现自动备份: sudo su - crontab -e 加入以下, 实现每天凌晨2点进行一次自动备份: 0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create 恢复: # 停止相关数据连接服务 gitlab-ctl stop unicorn gitlab-ctl stop sidekiq # 从1393513186编号备份中恢复 gitlab-rake gitlab:backup:restore BACKUP=1393513186 # 启动Gitlab sudo gitlab-ctl start 迁移: 与恢复一样,但是要求两个GitLab版本号一致 GitLab备份脚本示例: #!/bin/bash #root user #crontab -e #add #56 00 * * * /home/delta/gitautobackup.sh #every data 00:56 backup gitBaseBackup="GitLab_Backup" gitnewBackup=$gitBaseBackup/Backup_new gitoldBackup=$gitBaseBackup/Backup_old ftpUrl="192.168.10.209" ftpUser="administrator" ftpPasswd="Delta123" localDir="/home/delta/GitLab_Backup" localnewBackup=$localDir/Backup_new localoldBackup=$localDir/Backup_old if [ ! -d $localnewBackup ]; then mkdir -p $localnewBackup fi if [ ! -d $localoldBackup ]; then mkdir -p $localoldBackup fi if [ -f $localnewBackup/*.tar ]; then #delete old echo "delete old backup" rm -rf $localoldBackup/* #move new to old echo "move new to old" mv $localnewBackup/* $localoldBackup else echo "no new backup to old" fi #git own backup directory echo "change backup directory owner to git" chown -R git $localDir #create new git backup echo "GitLab Backup ..." gitlab-rake gitlab:backup:create #check backup is whether successful if [ ! -f $localnewBackup/*.tar ]; then cd $localDir currentTime=`date " %Y-%m-%d %H:%M:%S"`  #currentTimeStamp=`date -d "$currentTime" ` echo ${currentTime}" Backup GitLab error! exit!" echo ${currentTime}" Backup GitLab error! " >>GitLabBackupError.log exit fi cd $localDir #change owner back to delta chown -R delta $localDir #delete ftp backup echo "push to ftp"  ftp -n<<! open $ftpUrl user $ftpUser $ftpPasswd binary cd $gitBaseBackup prompt off lcd $localnewBackup/ put *.tar bye ! echo "backup successful" exit
    转载请注明原文地址: https://ju.6miu.com/read-673085.html

    最新回复(0)