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