Linuxt备份Gitlab和MySQL数据库

备份Gitlab

cd /etc/gitlab/

vi gitlab.rb

gitlab_rails['manage_backup_path'] = true
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups"
#gitlab_rails['backup_gitaly_backup_path'] = "/opt/gitlab/embedded/bin/gitaly-backup"

###! Docs: https://docs.gitlab.com/ee/raketasks/backup_restore.html#backup-archive-permissions
gitlab_rails['backup_archive_permissions'] = 0644

# gitlab_rails['backup_pg_schema'] = 'public'

###! The duration in seconds to keep backups before they are allowed to be deleted
gitlab_rails['backup_keep_time'] = 604800

crontab -e   添加如下代码  表示每天晚上2点执行

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

然后 wq!保存退出即可

 

自动备份MySQL数据库

在 /usr/sbin 下创建sh文件,名字自己定义。

vi    mysql_db.backup.sh

#!/bin/bash



#容器ID
container_id="1c0db64c04e9"
#登录用户名
mysql_user="root"
#登录密码(注意 如果密码包含特殊符号 前面要用'\')
mysql_password="123456"
mysql_port="3309"
#备份的数据库名
mysql_database="gr-cloud"
# 备份文件存放地址(根据实际情况填写)
backup_dir="/data/backup/db"
# 是否删除过期数据
expire_backup_delete="true"
#过期天数
expire_days=7
backup_time=`date +%Y%m%d%H%M`

# 备份指定数据库中数据
docker exec  $container_id mysqldump  -P$mysql_port -u$mysql_user -p$mysql_password  $mysql_database > $backup_dir/bak-$mysql_database-$backup_time.sql

# 删除过期数据
if [ "$expire_backup_delete" == "true" -a "$backup_dir"!="" ];then
        `find $backup_dir/ -type f -mtime +$expire_days | xargs rm -rf`
        echo "Expired backup data delete complete!"
fi

然后

crontab -e    添加如下代码

30 2 * * * /usr/sbin/mysql_db.backup.sh 

然后wq!保存退出

 

posted @ 2022-10-27 10:41  酒沉吟  阅读(106)  评论(0编辑  收藏  举报