ubuntu 22.04每日自动备份数据库
自动备份数据库
我们将设置一个每天凌晨 2:00 执行备份的 Cron 任务。
-
首先确保您已经安装了 MySQL 服务:
sudo apt update sudo apt install mysql-server -
创建备份目录:
sudo mkdir /opt/mysql_backups sudo chown mysql:mysql /opt/mysql_backups 这里我们创建了一个
/opt/mysql_backups
目录来存放备份文件,并将它的所有者设置为mysql
用户和组。 -
创建备份脚本文件:
sudo vi /opt/mysql_backup.sh 在文件中添加以下内容:
#!/bin/bash # 数据库连接信息 DB_HOST="localhost" DB_USER="root" DB_PASS="your_root_password" DB_NAME="blog" BACKUP_DIR="/opt/mysql_backups" # 备份文件名 BACKUP_FILE="${DB_NAME}_$(date +%Y%m%d_%H%M%S).sql.gz" # 执行备份 mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$BACKUP_FILE echo "MySQL backup completed: $BACKUP_DIR/$BACKUP_FILE" 请记得将
DB_USER
和DB_PASS
替换为您实际的 MySQL root 用户和密码。 -
设置脚本权限:
sudo chmod +x /opt/mysql_backup.sh -
创建 Cron 任务:
sudo crontab -e 在文件末尾添加以下行:
0 2 * * * /opt/mysql_backup.sh 这个 Cron 任务会在每天凌晨 2:00 执行
/opt/mysql_backup.sh
脚本。
现在已经成功设置了自动备份 blog
数据库的 Cron 任务。备份文件会被压缩为 .sql.gz
格式,存储在 /opt/mysql_backups
目录下。
如果需要手动执行备份,可以直接运行 /opt/mysql_backup.sh
脚本。
修改支持备份blog1 blog2等多个数据库
好的,让我来为您修改一下备份脚本,以支持同时备份多个数据库。
-
编辑备份脚本文件:
sudo vi /opt/mysql_backup.sh -
修改脚本内容如下:
#!/bin/bash # 数据库连接信息 DB_HOST="localhost" DB_USER="root" DB_PASS="your_root_password" DB_NAMES=("blog1" "blog2") BACKUP_DIR="/opt/mysql_backups" # 遍历需要备份的数据库 for DB_NAME in "${DB_NAMES[@]}" do # 备份文件名 BACKUP_FILE="${DB_NAME}_$(date +%Y%m%d_%H%M%S).sql.gz" # 执行备份 mysqldump -h $DB_HOST -u $DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/$BACKUP_FILE echo "MySQL backup completed: $BACKUP_DIR/$BACKUP_FILE" done 在这个修改后的脚本中:
DB_NAMES
数组包含了需要备份的数据库名称。您可以根据实际情况添加或删除数据库名称。- 脚本会遍历
DB_NAMES
数组中的每个数据库,并为每个数据库执行备份操作。 - 备份文件会以
数据库名_时间戳.sql.gz
的格式命名,存储在/opt/mysql_backups
目录下。
-
设置脚本权限:
sudo chmod +x /opt/mysql_backup.sh -
更新 Cron 任务:
sudo crontab -e 修改 Cron 任务为:
0 2 * * * /opt/mysql_backup.sh 这样就会在每天凌晨 2:00 执行备份脚本,同时备份
blog1
和blog2
两个数据库。
分类:
Linux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现