[toc]
gitlab的备份与同步
gitlab备份
由于版本问题,在迁移目标主机安装同样版本
| |
| |
| 链接:http://pan.baidu.com/s/1eS4H6NK 密码:e7i6 |
迁移目标主机安装与恢复
| |
| |
| |
| |
| |
| |
| unicorn['listen'] = '0.0.0.0' |
| unicorn['port'] = 8080 |
| |
| |
检查8080端口是否启动
| |
| tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 3290/config.ru |
源主机利用bash脚本+定时任务自动备份与同步备份
| #!/bin/bash |
| |
| |
| FileBack () { |
| [ -d /var/opt/gitlab/backups/.bak ] || mkdir /var/opt/gitlab/backups/.bak -p |
| mv /var/opt/gitlab/backups/*tar /var/opt/gitlab/backups/.bak/ |
| find /var/opt/gitlab/backups/.bak/ -type f -mtime +7 -exec rm -rf {} \; |
| /usr/bin/gitlab-rake gitlab:backup:create &> /dev/null |
| sleep 240 |
| ssh root@xx.xxx.xx.xxx "[ -d /var/opt/gitlab/backups/.bak ] || mkdir /var/opt/gitlab/backups/.bak -p" |
| ssh root@xx.xxx.xx.xxx "mv /var/opt/gitlab/backups/*tar /var/opt/gitlab/backups/.bak/" |
| ssh root@xx.xxx.xx.xxx "find /var/opt/gitlab/backups/.bak/ -type f -mtime +7 -exec rm -rf {} \;" |
| scp /var/opt/gitlab/backups/*tar root@xx.xxx.xx.xxx:/var/opt/gitlab/backups/ |
| } |
| |
| Message () { |
| |
| MESSAGE="gitlab 已备份成功 `ls -l /var/opt/gitlab/backups/` && `ls -ld /var/opt/gitlab/backups/` gitlab当前主服务器xx.xxx.xx.xxx" |
| MESSAGE_2=`ssh root@xx.xxx.xx.xxx "ls -l /var/opt/gitlab/backups/;ls -ld /var/opt/gitlab/backups/; ifconfig | sed -n '/inet addr/s/^[^:]*:\([0-9.]\{7,15\}\) .*/\1/p' | head -1"` |
| /bin/weixin --corpid=xxxxxxxxxxxxx --corpsecret=xxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx. --msg="$MESSAGE |
| gitlab当前从服务器$MESSAGE_2" --user=15822097176@139.com --agentid=100000x |
| } |
| |
| FileBack && Message |
| #!/bin/bash |
| |
| FILE_BAK () { |
| scp /var/opt/gitlab/backups/*tar root@xx.xxx.xx.xxx:/volume1/skill-operation/bakup/gitlab/ |
| ssh root@xx.xxx.xx.xxx "find /volume1/skill-operation/bakup/gitlab/ -type f -mtime +7 -exec rm -rf {} \;" |
| } |
| |
| GIT_ROLBAK () { |
| BAKID=`cd /var/opt/gitlab/backups/ && ls | tr -dc "[:digit:]"` |
| cd /var/opt/gitlab/backups/ && chmod 666 * |
| /usr/bin/gitlab-rake gitlab:backup:restore BACKUP=$BAKID <<EOF &> /dev/null |
| yes |
| yes |
| EOF |
| } |
| |
| MESSAGE () { |
| /bin/weixin --corpid=xxxxxxxxxxxxx --corpsecret=xxxxxxxxxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --msg="ID 为 $BAKID 的gitlab压缩包恢复完毕" --user=15822097176@139.com --agentid=100000x |
| } |
| |
| FILE_BAK |
| GIT_ROLBAK && MESSAGE |
| |
| su - root |
| crontab -e |
| 10 22 * * * /bin/bash /bin/GITLAB_BAK.sh |
| su - root |
| crontab -e |
| 30 22 * * * /bin/bash /bin/GIT_ROL.sh |