403Webshell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/html/wordpress-manager-v2/scripts/migrations-database.sh
#!/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."

Youez - 2016 - github.com/yon3zu
LinuXploit