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!保存退出
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!