ubuntu 22.04每日自动备份数据库

自动备份数据库

我们将设置一个每天凌晨 2:00 执行备份的 Cron 任务。

  1. 首先确保您已经安装了 MySQL 服务:

    sudo apt update
    sudo apt install mysql-server
    
  2. 创建备份目录:

    sudo mkdir /opt/mysql_backups
    sudo chown mysql:mysql /opt/mysql_backups
    

    这里我们创建了一个 /opt/mysql_backups 目录来存放备份文件,并将它的所有者设置为 mysql 用户和组。

  3. 创建备份脚本文件:

    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_USERDB_PASS 替换为您实际的 MySQL root 用户和密码。

  4. 设置脚本权限:

    sudo chmod +x /opt/mysql_backup.sh
    
  5. 创建 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等多个数据库

好的,让我来为您修改一下备份脚本,以支持同时备份多个数据库。

  1. 编辑备份脚本文件:

    sudo vi /opt/mysql_backup.sh
    
  2. 修改脚本内容如下:

    #!/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 目录下。
  3. 设置脚本权限:

    sudo chmod +x /opt/mysql_backup.sh
    
  4. 更新 Cron 任务:

    sudo crontab -e
    

    修改 Cron 任务为:

    0 2 * * * /opt/mysql_backup.sh
    

    这样就会在每天凌晨 2:00 执行备份脚本,同时备份 blog1blog2 两个数据库。

posted @ 2024-06-07 16:23  Laravel自学开发  阅读(67)  评论(0编辑  收藏  举报