首先查看你的AMH数据库版本,当前(AMH7.2)默认自带是mysql5.7,mysql-generic-5.7.sock文件位于/tmp/mysql-generic-5.7.sock

如果你是其它版本的数据库,请登录你的AMH面板查看 数据-->参数配置-->配置编辑方式 这里可以看到.sock文件的具体路径。

测试备份

/usr/local/mysql-generic-5.7/bin/mysqldump -u your_db_user -p'your_db_password' -S /tmp/mysql-generic-5.7.sock your_database_name > /path/to/backup/test_backup.sql

没问题的话可以使用以下脚本

#!/bin/bash

# 配置部分
MYSQLDUMP_PATH="/usr/local/mysql-generic-5.7/bin/mysqldump"  # mysqldump 的路径
DB_USER="your_db_user"  # 数据库用户名
DB_PASS="your_db_password"  # 数据库密码
DB_NAME="your_database_name"  # 要备份的数据库名称
SOCKET_PATH="/tmp/mysql-generic-5.7.sock"  # MySQL 的 socket 文件路径
BACKUP_DIR="/path/to/backup"  # 备份文件存储目录
DATE=$(date +"%Y-%m-%d_%H-%M-%S")  # 获取当前日期时间
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"  # 备份文件路径

# 创建备份目录(如果不存在)
mkdir -p "$BACKUP_DIR"

# 导出数据库
$MYSQLDUMP_PATH -u $DB_USER -p$DB_PASS -S $SOCKET_PATH $DB_NAME > "$BACKUP_FILE"

# 检查导出结果
if [ $? -eq 0 ]; then
    echo "[$(date +"%Y-%m-%d %H:%M:%S")] Database $DB_NAME backup successful. Saved to $BACKUP_FILE" >> "$BACKUP_DIR/backup.log"
else
    echo "[$(date +"%Y-%m-%d %H:%M:%S")] Database $DB_NAME backup failed." >> "$BACKUP_DIR/backup.log"
fi

如果需要定时备份,请自行设定crontab任务

crontab -e

标签: none

添加新评论