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!保存退出

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章