| Server IP : 146.190.157.162 / Your IP : 216.73.217.6 Web Server : Apache System : Linux ubuntu-s-2vcpu-4gb-amd-sfo3-01-KIT-DIGITAL 6.5.0-44-generic #44-Ubuntu SMP PREEMPT_DYNAMIC Fri Jun 7 15:10:09 UTC 2024 x86_64 User : businessweek ( 639) PHP Version : 8.2.10-2ubuntu2.2 Disable Function : exec,passthru,shell_exec,system,proc_open,popen,pcntl_exec,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_signal,pcntl_signal_dispatch,pcntl_getpriority,pcntl_setpriority,dl,putenv,parse_ini_file,show_source MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /var/www/html/wordpress-manager-v2/scripts/ |
Upload File : |
#!/bin/bash # Directorio base de los sitios web #DIRECTORIO_BASE="/var/www/html" DIRECTORIO_BASE="/var/www/htmlVolume1" # Host MySQL Allow MYSQL_ALLOW_HOST="10.124.0.2" # Contraseña aleatoria para el nuevo servidor MySQL MYSQL_NEW_PASS=$(openssl rand -base64 16 | tr -d '/+=' | head -c 12)$(date +%s | sha256sum | head -c 4 | tr '0-9' 'A-Z')$(echo $RANDOM | tr -dc '0-9' | head -c 4)\! # Nuevo servidor MySQL MYSQL_ROOT_HOST="10.124.0.3" MYSQL_ROOT_USER="uosolutions" MYSQL_ROOT_PASS="NPFUKQy8ZJ93JEfE" # Recorremos los directorios dentro del directorio base for dir in "$DIRECTORIO_BASE"/*; do # Verificar que sea un directorio if [[ -d "$dir" ]]; then # Verificar si wp-config.php existe if [[ -f "$dir/wp-config.php" ]]; then # Mostrar el directorio actual echo "Escaneando directorio $dir" # Obtener los datos de conexión de wp-config.php db_name=$(grep "DB_NAME" "$dir/wp-config.php" | cut -d "'" -f 4) db_user=$(grep "DB_USER" "$dir/wp-config.php" | cut -d "'" -f 4) db_password=$(grep "DB_PASSWORD" "$dir/wp-config.php" | cut -d "'" -f 4) db_host=$(grep "DB_HOST" "$dir/wp-config.php" | cut -d "'" -f 4) # Mostrar los datos de conexión echo "Host: $db_host"; # Verificar si el host es localhost y el usuario es diferente a user if [[ "$db_host" == "localhost" ]]; then echo "Procesando base de datos para el sitio en $dir" # Hacer un dump de la base de datos dump_file="$dir/$db_name.sql" echo "Haciendo dump de la base de datos $db_name..." mysqldump -h "$db_host" -u "$db_user" -p"$db_password" "$db_name" > "$dump_file" if [ $? -ne 0 ]; then echo "Error haciendo dump de la base de datos $db_name." continue fi # Crear la base de datos en el nuevo servidor echo "Creando la base de datos $db_name en el nuevo servidor..." mysql -h "$MYSQL_ROOT_HOST" -u "$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASS" -e "CREATE DATABASE $db_name;" if [ $? -ne 0 ]; then echo "Error creando la base de datos $db_name en el nuevo servidor." continue fi # Crear el usuario en el nuevo servidor echo "Creando el usuario $db_name en el nuevo servidor..." mysql -h "$MYSQL_ROOT_HOST" -u "$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASS" -e "CREATE USER '$db_name'@'$MYSQL_ALLOW_HOST' IDENTIFIED BY '$MYSQL_NEW_PASS';" if [ $? -ne 0 ]; then echo "Error creando el usuario $db_name en el nuevo servidor." continue fi # Asignar privilegios al usuario en el nuevo servidor echo "Asignando privilegios al usuario $db_name en el nuevo servidor..." mysql -h "$MYSQL_ROOT_HOST" -u "$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASS" -e "GRANT ALL PRIVILEGES ON $db_name.* TO '$db_name'@'$MYSQL_ALLOW_HOST';" if [ $? -ne 0 ]; then echo "Error asignando privilegios al usuario $db_name en el nuevo servidor." continue fi # Flush Privilegios echo "Flushing privilegios..." mysql -h "$MYSQL_ROOT_HOST" -u "$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASS" -e "FLUSH PRIVILEGES;" if [ $? -ne 0 ]; then echo "Error en Flush Privilegios." continue fi # Restaurar el dump en el nuevo servidor echo "Restaurando el dump en el nuevo servidor..." mysql -h "$MYSQL_ROOT_HOST" -u "$MYSQL_ROOT_USER" -p"$MYSQL_ROOT_PASS" "$db_name" < "$dump_file" if [ $? -ne 0 ]; then echo "Error restaurando el dump en el nuevo servidor." continue fi # Actualizar wp-config.php con los nuevos datos de conexión echo "Actualizando wp-config.php con los nuevos datos de conexión..." sudo sed -i "s/define( 'DB_HOST', '.*' );/define( 'DB_HOST', '$MYSQL_ROOT_HOST' );/" "$dir/wp-config.php" if [ $? -ne 0 ]; then echo "Error actualizando wp-config.php con los nuevos datos de host." continue fi # Actualizar wp-config.php con los nuevos datos de conexión echo "Actualizando wp-config.php con los nuevos datos de conexión..." sudo sed -i "s/define( 'DB_USER', '.*' );/define( 'DB_USER', '$db_name' );/" "$dir/wp-config.php" if [ $? -ne 0 ]; then echo "Error actualizando wp-config.php con los nuevos datos de usuario." continue fi # Actualizar wp-config.php con los nuevos datos de conexión echo "Actualizando wp-config.php con los nuevos datos de conexión..." sudo sed -i "s/define( 'DB_PASSWORD', '.*' );/define( 'DB_PASSWORD', '$MYSQL_NEW_PASS' );/" "$dir/wp-config.php" if [ $? -ne 0 ]; then echo "Error actualizando wp-config.php con los nuevos datos de password." continue fi # Eliminar el archivo dump echo "Eliminando el archivo de dump..." rm "$dump_file" if [ $? -ne 0 ]; then echo "Error eliminando el archivo de dump." continue fi echo "Proceso completado para el sitio en $dir." fi fi fi done echo "Proceso completado."