通过编写 Shell 脚本实现将 WordPress 数据迁移过程自动化。以下是一个自动化迁移脚本的示例,涵盖从备份到恢复的完整流程。
自动化迁移脚本
1. 在源服务器上运行的脚本(migrate_source.sh
)
#!/bin/bash
# 配置变量
DB_NAME="wordpress_db"
DB_USER="wordpress_user"
DB_PASSWORD="your_password"
BACKUP_DIR="/path/to/backup"
WP_DIR="/var/www/html"
TARGET_USER="user"
TARGET_SERVER="target-server"
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份 WordPress 文件
echo "备份 WordPress 文件..."
tar -czvf $BACKUP_DIR/wordpress_backup.tar.gz -C $WP_DIR .
# 备份数据库
echo "备份数据库..."
mysqldump -u $DB_USER -p$DB_PASSWORD --databases $DB_NAME > $BACKUP_DIR/wordpress_db.sql
# 传输备份文件到目标服务器
echo "传输备份文件到目标服务器..."
scp $BACKUP_DIR/wordpress_backup.tar.gz $TARGET_USER@$TARGET_SERVER:/tmp/
scp $BACKUP_DIR/wordpress_db.sql $TARGET_USER@$TARGET_SERVER:/tmp/
echo "源服务器备份和传输完成!"
2. 在目标服务器上运行的脚本(migrate_target.sh
)
#!/bin/bash
# 配置变量
DB_NAME="wordpress_db"
DB_USER="wordpress_user"
DB_PASSWORD="your_password"
WP_DIR="/var/www/html"
BACKUP_DIR="/tmp"
# 安装 MySQL 8.0 和 Apache
echo "安装 MySQL 8.0 和 Apache..."
sudo apt update
sudo apt install -y mysql-server apache2 php libapache2-mod-php php-mysql
# 配置 MySQL
echo "配置 MySQL..."
sudo mysql_secure_installation <
3. 使用步骤
- 在源服务器上运行
migrate_source.sh
:- 将脚本保存为
migrate_source.sh
,并赋予执行权限:chmod +x migrate_source.sh
- 运行脚本:
./migrate_source.sh
- 将脚本保存为
- 在目标服务器上运行
migrate_target.sh
:- 将脚本保存为
migrate_target.sh
,并赋予执行权限:chmod +x migrate_target.sh
- 运行脚本:
./migrate_target.sh
- 将脚本保存为
4. 脚本功能说明
migrate_source.sh
:- 备份 WordPress 文件和数据库。
- 将备份文件传输到目标服务器。
migrate_target.sh
:- 安装 MySQL 8.0 和 Apache。
- 配置 MySQL 并创建 WordPress 数据库和用户。
- 导入数据库并解压 WordPress 文件。
- 配置 WordPress 并设置文件权限。
- 重启服务以应用更改。
5. 注意事项
- 密码安全:
- 脚本中包含数据库密码,建议在生产环境中使用更安全的方式管理密码(如环境变量或密钥管理工具)。
- 网络连接:
- 确保源服务器和目标服务器之间可以通过 SSH 和 SCP 通信。
- 测试环境:
- 在正式迁移前,建议在测试环境中运行脚本,验证其功能。
- 错误处理:
- 脚本中未包含详细的错误处理逻辑,建议根据实际需求添加。
总结
通过上述脚本,可以自动化完成 WordPress 数据从 Ubuntu 18.04 + MySQL 5.7 到 Ubuntu 22.04 + MySQL 8.0 的迁移。脚本覆盖了从备份到恢复的完整流程,确保数据完整性和兼容性。