手动阀

Good Luck To You!

mysql的本地备份和双机相互备份脚本

在MySQL中进行本地备份和双机相互备份,可以使用mysqldump工具来导出数据库,并使用scp命令将备份文件传输到另一台服务器,以下是一个简单的脚本示例,用于实现这些功能:

本地备份脚本

#!/bin/bash
配置参数
DB_USER="your_db_user"
DB_PASSWORD="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/dir"
DATE=$(date +%Y%m%d%H%M)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_backup_$DATE.sql"
创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup successful: $BACKUP_FILE"
else
    echo "Backup failed!"
fi

双机相互备份脚本

假设有两台服务器:Server A 和 Server B,我们将从 Server A 备份数据库,并将备份文件传输到 Server B。

Server A 的备份脚本

#!/bin/bash
配置参数
DB_USER="your_db_user"
DB_PASSWORD="your_db_password"
DB_NAME="your_db_name"
BACKUP_DIR="/path/to/backup/dir"
DATE=$(date +%Y%m%d%H%M)
BACKUP_FILE="$BACKUP_DIR/${DB_NAME}_backup_$DATE.sql"
REMOTE_USER="remote_user"
REMOTE_HOST="server_b_ip_or_hostname"
REMOTE_DIR="/path/to/remote/backup/dir"
创建备份目录(如果不存在)
mkdir -p $BACKUP_DIR
执行备份
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
检查备份是否成功
if [ $? -eq 0 ]; then
    echo "Backup successful: $BACKUP_FILE"
    # 传输备份文件到远程服务器
    scp $BACKUP_FILE $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR
    if [ $? -eq 0 ]; then
        echo "Backup file transferred to Server B successfully."
    else
        echo "Failed to transfer backup file to Server B."
    fi
else
    echo "Backup failed!"
fi

Server B 的接收脚本(可选)

如果你希望 Server B 也自动处理接收到的备份文件,可以设置一个 cron job 定期检查新文件并进行相应处理,将接收到的备份文件移动到特定目录或进行其他操作。

#!/bin/bash
配置参数
REMOTE_DIR="/path/to/remote/backup/dir"
LOCAL_DIR="/path/to/local/backup/dir"
LOG_FILE="/path/to/log/file.log"
创建本地目录(如果不存在)
mkdir -p $LOCAL_DIR
查找新的备份文件并移动到本地目录
find $REMOTE_DIR -type f -name "*.sql" -newermt '1 minute ago' -exec mv {} $LOCAL_DIR \;
记录日志
echo "$(date): Moved new backup files from $REMOTE_DIR to $LOCAL_DIR" >> $LOG_FILE

注意事项

1、安全性:确保你的数据库密码和其他敏感信息不会暴露在脚本中,可以考虑使用配置文件或环境变量来存储这些信息。

2、权限:确保运行脚本的用户对相关目录和文件具有适当的读写权限。

3、网络连接:确保两台服务器之间的网络连接正常,SSH 服务可用。

4、定时任务:可以使用cron 来定时执行这些脚本,以实现自动化备份,编辑crontab 文件:

   crontab -e

添加以下行以每天凌晨2点执行备份脚本:

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

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

Copyright Your WebSite.Some Rights Reserved.