docker 版本 gitlab 备份脚本(保留最近N天备份)

Posted catoop

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker 版本 gitlab 备份脚本(保留最近N天备份)相关的知识,希望对你有一定的参考价值。

本例脚本做以下几点说明:

1、gitlab 是基于 docker 运行的
2、备份的脚本先对 gitlab 进行备份,然后清理备份目录中4天以前的备份(这个天数根据自己需要修改)
3、将该备份脚本 backup.sh 加入到 Linux 的 crontab 中,每天夜里执行

#!/bin/bash
echo "开始执行gitlab备份命令..."
timer_start=`date "+%Y-%m-%d %H:%M:%S"`

# 注意这里不能加 -it 交互模式参数,否则 crontab 不能正常执行
docker exec gitlab gitlab-backup create

timer_end=`date "+%Y-%m-%d %H:%M:%S"`
duration=`echo $(($(date +%s -d "$timer_end") - $(date +%s -d "$timer_start"))) | awk 't=split("60 s 60 m 24 h 999 d",a);for(n=1;n<t;n+=2)if($1==0)s="0s";break;s=$1%a[n]a[n+1]s;$1=int($1/a[n])print s'`

echo "gitlab备份命令执行结束,耗时 $duration "

echo "开始清理多余的备份文件(清理N天以前)"

bashpath=$(cd `dirname $0`; pwd)
echo `find $bashpath/data/backups/ -maxdepth 1 -type f -mtime +4 | xargs rm -rf`

# 扩展将文件同步到备份服务器(例如使用rsnyc同步)
rsync -avz --delete --password-file=/etc/rsync.passwd $bashpath/data/backups/ rsync_backup@192.168.100.111::backup_gitlab

echo "脚本执行结束"

(END)

以上是关于docker 版本 gitlab 备份脚本(保留最近N天备份)的主要内容,如果未能解决你的问题,请参考以下文章

docker gitlab迁移 备份 部署 搭建以及各种问题

gitlab远古版本备份&还原&升级

gitlab 自动备份与清理

Gitlab---代码库备份的迁移与数据恢复

docker 部署的gitlab备份与恢复

Gitlab的备份与恢复