温馨提示×

ubuntu定时备份数据库方法

小樊
43
2026-02-21 18:46:28
栏目: 智能运维

在Ubuntu上定时备份数据库,通常可以使用cron任务结合数据库自带的备份工具来实现。以下是针对MySQL和PostgreSQL数据库的定时备份方法:

MySQL数据库备份

  1. 创建备份脚本

首先,创建一个备份脚本文件,例如backup_mysql.sh

#!/bin/bash

# 数据库配置
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database_name"
BACKUP_DIR="/path/to/backup/directory"

# 日期格式
DATE=$(date +"%Y%m%d%H%M%S")

# 备份文件名
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"

# 执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

# 压缩备份文件(可选)
gzip $BACKUP_FILE

# 删除7天前的备份文件(可选)
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm {} \;

确保脚本具有执行权限:

chmod +x backup_mysql.sh
  1. 设置定时任务

使用crontab来设置定时任务。编辑当前用户的crontab文件:

crontab -e

添加一行来设置备份频率,例如每天凌晨2点执行备份:

0 2 * * * /path/to/backup_mysql.sh

保存并退出编辑器。

PostgreSQL数据库备份

  1. 创建备份脚本

创建一个备份脚本文件,例如backup_postgres.sh

#!/bin/bash

# 数据库配置
DB_USER="your_username"
DB_PASSWORD="your_password"
DB_NAME="your_database_name"
BACKUP_DIR="/path/to/backup/directory"

# 日期格式
DATE=$(date +"%Y%m%d%H%M%S")

# 备份文件名
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"

# 执行备份
pg_dump -U $DB_USER -W $DB_NAME > $BACKUP_FILE

# 压缩备份文件(可选)
gzip $BACKUP_FILE

# 删除7天前的备份文件(可选)
find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm {} \;

确保脚本具有执行权限:

chmod +x backup_postgres.sh
  1. 设置定时任务

同样使用crontab来设置定时任务。编辑当前用户的crontab文件:

crontab -e

添加一行来设置备份频率,例如每天凌晨2点执行备份:

0 2 * * * /path/to/backup_postgres.sh

保存并退出编辑器。

注意事项

  • 确保备份目录存在并且有适当的权限。
  • 定期检查备份文件的完整性和可恢复性。
  • 根据实际需求调整备份频率和保留策略。

通过以上步骤,你可以在Ubuntu上实现MySQL和PostgreSQL数据库的定时备份。

0