Introducción
crad-wordpress-mgr.pyc es una herramienta de línea de comandos para la gestión centralizada de instalaciones WordPress en servidores administrados con Core-Admin. Permite listar, analizar y optimizar múltiples instalaciones WordPress desde una única interfaz.
Requisitos
- Acceso root al servidor
- Core-Admin con el módulo
wordpress_managementinstalado
Opciones disponibles
| Comando | Descripción |
|---|---|
-l, --list-wordpress |
Listar todas las instalaciones WordPress del sistema |
-u, --list-users <wordpress> |
Listar usuarios de un WordPress específico |
-U, --list-all-users |
Listar usuarios de todos los WordPress en una tabla consolidada |
-p, --list-plugins <wordpress> |
Listar plugins instalados con estado y peso de código |
-a, --show-admin-path <wordpress> |
Mostrar ruta de administración (detecta wps-hide-login) |
-c, --create-admin <wordpress> |
Crear un usuario administrador |
-r, --remove-user <wordpress> |
Eliminar un usuario |
--enable-debug <wordpress> |
Activar WP_DEBUG y WP_DEBUG_LOG |
--disable-debug <wordpress> |
Desactivar WP_DEBUG |
--check-performance <wordpress> |
Analizar rendimiento y mostrar recomendaciones |
--fix-performance <wordpress> |
Aplicar todas las correcciones de rendimiento |
--clean-revisions <wordpress> |
Eliminar revisiones de posts |
--clean-transients <wordpress> |
Eliminar transients expirados |
--clean-postmeta <wordpress> |
Eliminar postmeta huérfanos |
--upgrade-php <wordpress> |
Actualizar PHP a la versión más reciente soportada |
--fix-memory-limit <wordpress> |
Ajustar memory_limit a 256M |
--fix-opcache <wordpress> |
Habilitar opcache si está desactivado |
Opciones adicionales
| Opción | Descripción |
|---|---|
--json |
Salida en formato JSON |
-v, --verbose |
Modo verboso |
-y, --yes |
Omitir confirmaciones (usar con precaución) |
--show-credentials |
Mostrar credenciales de base de datos |
--show-inactive |
Mostrar solo plugins inactivos (con -p) |
--sort-by-weight |
Ordenar plugins por peso de código (con -p) |
--login <usuario> |
Usuario para crear/eliminar |
--email <email> |
Email para crear usuario |
--password <contraseña> |
Contraseña (se genera automáticamente si no se especifica) |
Identificación de WordPress
La mayoría de comandos aceptan un identificador de WordPress que puede ser:
-
Ruta de carpeta:
/var/webs/ejemplo.com/html -
Ruta a wp-config.php:
/var/webs/ejemplo.com/html/wp-config.php -
Nombre de dominio:
ejemplo.com
Ejemplos de uso
Listar instalaciones WordPress
crad-wordpress-mgr.pyc -l
Salida:
Id Is_active Hosting_name Url Folder
-- --------- ------------ --- ------
1 |[*] |ejemplo.com |http://ejemplo.com |/var/webs/ejemplo.com/html
2 |[*] |blog.ejemplo.com |http://blog.ejemplo.com |/var/webs/blog.ejemplo.com/html
Analizar rendimiento
crad-wordpress-mgr.pyc --check-performance ejemplo.com
Salida:
======================================================================
WordPress Performance Analysis: ejemplo.com
======================================================================
[1/8] Checking PHP version...
[2/8] Checking Opcache status...
[3/8] Checking PHP memory limit...
[4/8] Checking autoloaded options size...
[5/8] Checking post revisions...
[6/8] Checking postmeta table size...
[7/8] Checking active plugins...
[8/8] Checking expired transients...
----------------------------------------------------------------------
SUMMARY
----------------------------------------------------------------------
Configuration:
PHP Version: 8.2.28
Opcache: Enabled
PHP Memory Limit: 256M
Autoloaded Options: 0.34 MB
Post Revisions: 1250
Postmeta Rows: 45000
Active Plugins: 25
Expired Transients: 150
WARNINGS (consider fixing):
[~] Found 1250 post revisions. Consider cleaning up
[~] Found 150 expired transients. Consider cleanup
RECOMMENDATIONS:
1. Delete old revisions: DELETE FROM wp_posts WHERE post_type = 'revision'
2. Clean expired transients...
Aplicar correcciones automáticas
crad-wordpress-mgr.pyc --fix-performance ejemplo.com
Este comando aplica automáticamente:
1. Actualización de PHP (si hay versión superior disponible)
2. Ajuste de memory_limit a 256M
3. Habilitación de opcache
4. Limpieza de revisiones
5. Limpieza de transients expirados
6. Limpieza de postmeta huérfanos
Listar plugins con análisis de peso
crad-wordpress-mgr.pyc -p ejemplo.com --sort-by-weight
Salida:
Name Is_active Php_files Lines Size
---- --------- --------- ----- ----
woocommerce |[*] |3511 |678.5K |72.5 MB
elementor |[*] |1273 |198.2K |67.5 MB
wordfence |[*] |553 |145.8K |20.9 MB
advanced-custom-fields |[ ] |268 |60.3K |23.2 MB
Total: 25 plugins (20 active, 5 inactive)
Active plugins code weight: 1250.5K lines of PHP
Inactive plugins code weight: 180.2K lines (can be deleted to free space)
Ver solo plugins inactivos
crad-wordpress-mgr.pyc -p ejemplo.com --show-inactive
Crear usuario administrador
crad-wordpress-mgr.pyc -c ejemplo.com --login admin_temp --email admin@ejemplo.com
Si no se especifica --password, se genera una contraseña segura automáticamente.
Mostrar ruta de administración
crad-wordpress-mgr.pyc -a ejemplo.com
Detecta automáticamente si el plugin wps-hide-login está activo y muestra la ruta personalizada:
WordPress folder: /var/webs/ejemplo.com/html
Admin path: /mi-acceso-secreto
Login path: /mi-acceso-secreto
WPS Hide Login: Active (custom slug: mi-acceso-secreto)
Activar modo debug
crad-wordpress-mgr.pyc --enable-debug ejemplo.com
Esto activa WP_DEBUG, WP_DEBUG_LOG y desactiva WP_DEBUG_DISPLAY. Los errores se registrarán en wp-content/debug.log.
Uso en scripts
Para automatización, usar la opción -y para omitir confirmaciones:
# Limpiar todas las instalaciones WordPress
for domain in $(crad-wordpress-mgr.pyc -l --json | jq -r '.[].hosting_name'); do
crad-wordpress-mgr.pyc --fix-performance "$domain" -y
done
Buenas prácticas
1. Antes de optimizar: Ejecutar --check-performance para ver el estado actual
2. Backups: Realizar backup de la base de datos antes de limpiezas masivas
3. Plugins inactivos: Revisar regularmente con -p --show-inactive y eliminar los no necesarios
4. Monitorización: Ejecutar --check-performance periódicamente para detectar problemas
Notas técnicas
- La herramienta detecta automáticamente el prefijo de tablas de cada WordPress
- Las credenciales de base de datos se leen directamente de wp-config.php
- El análisis de plugins cuenta líneas de código PHP para estimar la carga de parseo
- La actualización de PHP respeta la configuración --only-if-newer para evitar downgrades