博客在用的 MySQL 定时备份 Shell 脚本

magic
2024-09-13 / 0 评论 / 14 阅读 / 正在检测是否收录...

博客数据单节点,防止数据丢失,这里写一个shell脚本,几小时执行一次,保留7天数据

简单的 MySQL 备份 Shell 脚本,它会备份指定的数据库,并将备份文件保留最近 7 天的数据。脚本会每天运行一次,删除超过 7 天的备份文件。

脚本内容

#!/bin/bash

# 配置数据库信息
DB_USER="your_db_user"
DB_PASSWORD="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/directory"
DATE=$(date +%Y%m%d)

# 创建备份目录
mkdir -p $BACKUP_DIR

# 备份数据库
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql

# 压缩备份文件
gzip $BACKUP_DIR/$DB_NAME-$DATE.sql

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

echo "Database backup completed: $BACKUP_DIR/$DB_NAME-$DATE.sql.gz"

解释

  1. 配置数据库信息

    • DB_USER:数据库用户名。
    • DB_PASSWORD:数据库密码。
    • DB_NAME:要备份的数据库名称。
    • BACKUP_DIR:备份文件存储的目录。
    • DATE:当前日期,格式为 YYYYMMDD
  2. 创建备份目录

    • mkdir -p $BACKUP_DIR:如果备份目录不存在,则创建它。
  3. 备份数据库

    • mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$DB_NAME-$DATE.sql:使用 mysqldump 命令备份数据库,并将备份文件保存到指定目录。
  4. 压缩备份文件

    • gzip $BACKUP_DIR/$DB_NAME-$DATE.sql:使用 gzip 命令压缩备份文件。
  5. 删除超过 7 天的备份文件

    • find $BACKUP_DIR -type f -name "*.sql.gz" -mtime +7 -exec rm -f {} \;:使用 find 命令查找并删除超过 7 天的备份文件。
  6. 输出备份完成信息

    • echo "Database backup completed: $BACKUP_DIR/$DB_NAME-$DATE.sql.gz":输出备份完成信息。

设置定时任务

你可以使用 cron 来设置每天自动运行这个脚本。

  1. 打开 cron 编辑器:

    bash

    复制

    crontab -e
  2. 添加以下行来设置每天凌晨 2 点运行备份脚本:

    bash

    复制

    0 2 * * * /path/to/your/backup_script.sh

总结

通过这个脚本,你可以每天自动备份 MySQL 数据库,并保留最近 7 天的备份文件。超过 7 天的备份文件会被自动删除,以节省存储空间。

0

评论

博主关闭了当前页面的评论