Como desarrollador de WordPress, probablemente pasa mucho tiempo en un clientes FTP (FileZilla) o panel de hosting. Eso es un error. Lo que toma 15 minutos en FTP (ej. eliminar una carpeta cache con 100,000 archivos) toma 2 segundos en la terminal SSH.
En esta guía, le mostrare un conjunto de comandos que los desarrolladores senior no pueden imaginar trabajar sin ellos.
Por que todo desarrollador de WordPress necesita SSH
Antes de sumergirnos en los comandos, entendamos por que SSH es transformador para el desarrollo de WordPress:
- Velocidad: Las operaciones se ejecutan a la velocidad del disco del servidor, no de su conexión a internet
- Automatizacion: Puede crear scripts que automatizan tareas repetitivas
- Depuracion en vivo: Vea errores en tiempo real mientras se producen
- Gestión remota: Administre servidores desde cualquier lugar del mundo
- Seguridad: Conexión cifrada de extremo a extremo
Configuración inicial de SSH
Si nunca ha usado SSH, aquí esta como comenzar:
## Generar par de claves SSH (solo la primera vez)
ssh-keygen -t ed25519 -C "su-email@ejemplo.com"
## Copiar clave publica al servidor
ssh-copy-id usuario@ip-del-servidor
## Conectarse al servidor
ssh usuario@ip-del-servidor
La autenticación por claves es más segura que contrasenas y elimina la necesidad de escribir la contrasena cada vez.
1. Análisis de disco: Que esta consumiendo mi espacio?
Cuando el hosting grita “Cuota Excedida”, FileZilla no ayudara. Use esto:
du (disk usage)
## Mostrar carpetas en el directorio actual, ordenadas por tamaño
du -h --max-depth=1 | sort -hr
Ejemplo de salida:
2.1G ./wp-content
450M ./wp-content/uploads
380M ./wp-content/cache
120M ./wp-content/plugins
45M ./wp-admin
12M ./wp-includes
Inmediatamente puede ver que la carpeta de cache consume 380MB y puede ser limpiada de forma segura.
ncdu (ncurses disk usage)
Si puede, ejecute ncdu. Es un gestor interactivo que navega con las flechas. Un absoluto “cambio de juego” para la limpieza de servidores.
## Instalar ncdu (si no esta disponible)
apt-get install ncdu # Debian/Ubuntu
yum install ncdu # CentOS/RHEL
## Ejecutar en el directorio de WordPress
ncdu /var/www/html
2. Logs: Depuracion en tiempo real
En lugar de descargar debug.log, abrirlo con Bloc de Notas y buscar errores… vealos en vivo!
tail -f
## Seguir las ultimás lineas del archivo en tiempo real
tail -f wp-content/debug.log
Ahora refresque la página en su navegador, y los errores apareceran en pantalla. Salga con Ctrl+C.
Filtrar logs en tiempo real
## Solo ver errores fatales
tail -f wp-content/debug.log | grep -i "fatal"
## Ver errores de un plugin específico
tail -f wp-content/debug.log | grep "woocommerce"
## Mostrar las ultimás 100 lineas y luego seguir
tail -100f wp-content/debug.log
Logs del servidor web
Además del debug.log de WordPress, los logs del servidor web son invaluables:
## Apache - ver errores
tail -f /var/log/apache2/error.log
## Nginx - ver errores
tail -f /var/log/nginx/error.log
## Ver solicitudes 404 en tiempo real
tail -f /var/log/apache2/access.log | grep " 404 "
3. Búsqueda de archivos: Donde esta ese código?!
Buscando donde se uso add_image_size? No descargue todo el proyecto.
grep
## Buscar la frase "add_image_size" en todos los archivos PHP recursivamente
grep -r "add_image_size" .
Si solo quiere una lista de archivos (sin contenido):
grep -rl "add_image_size" .
Búsquedas avanzadas con grep
## Buscar con contexto (3 lineas antes y despues)
grep -r -C 3 "wp_enqueue_script" wp-content/themes/
## Buscar solo en archivos PHP
grep -r --include="*.php" "add_action" wp-content/plugins/
## Buscar excluyendo directorios
grep -r --exclude-dir={node_modules,vendor,.git} "API_KEY" .
## Contar ocurrencias
grep -rc "do_action" wp-content/plugins/ | sort -t: -k2 -rn | head -10
4. Permisos: Arreglar “403 Forbidden”
A menudo despues de una migración, los archivos tienen permisos incorrectos. Recuerde la regla:
- Directorios: 755
- Archivos: 644
find + chmod
No lo haga manualmente. Automaticelo:
## Establecer 755 para todos los directorios
find . -type d -exec chmod 755 {} \;
## Establecer 644 para todos los archivos
find . -type f -exec chmod 644 {} \;
Permisos especiales de seguridad
## wp-config.php debe ser más restrictivo
chmod 400 wp-config.php
## .htaccess
chmod 444 .htaccess
## Verificar propietario de los archivos
chown -R www-data:www-data /var/www/html/
5. Respaldos: Archivo rápido
Quiere un respaldo rápido antes de una actualización? No copie via FTP (tarda una eternidad). Comprimalo en el servidor.
tar
## Crear archivo backup.tar.gz del directorio actual
tar -czf backup.tar.gz .
Descomprimir:
tar -xzf backup.tar.gz
Respaldos con fecha
## Crear respaldo con marca de tiempo
tar -czf backup-$(date +%Y%m%d-%H%M).tar.gz .
## Excluir carpetas innecesarias del respaldo
tar -czf backup.tar.gz --exclude='./wp-content/cache' --exclude='./wp-content/uploads/cache' .
6. Base de datos (WP-CLI)
Si tiene WP-CLI (y deberia), no necesita phpMyAdmin.
## Exportar base de datos
wp db export backup.sql
## Importar base de datos
wp db import backup.sql
## Buscar y reemplazar (migración)
wp search-replace 'sitio-viejo.com' 'sitio-nuevo.com' --all-tables
## Listar usuarios
wp user list
## Cambiar contrasena
wp user update 1 --user_pass="NuevaContrasena2026"
## Desactivar todos los plugins (emergencia)
wp plugin deactivate --all
## Verificar integridad del core
wp core verify-checksums
Comandos WP-CLI avanzados
## Optimizar base de datos
wp db optimize
## Ver tamaño de tablas
wp db size --tables
## Buscar en la base de datos
wp db search "texto_sospechoso"
## Regenerar miniaturas de imagenes
wp media regenerate --yes
## Limpiar transients expirados
wp transient delete --expired
7. Eliminacion masiva de archivos
Eliminar una carpeta de plugin cache con un millon de archivos pequeños via FTP puede tomar una hora.
rm
## Eliminar carpeta y todo su contenido (sin deshacer!)
rm -rf wp-content/cache/
Tiempo empleado: 0.5 segundos.
Eliminacion segura
## Ver que se eliminaria primero (dry run)
find wp-content/cache/ -type f | head -20
## Contar archivos antes de eliminar
find wp-content/cache/ -type f | wc -l
## Eliminar archivos más antiguos de 30 dias
find wp-content/cache/ -type f -mtime +30 -delete
8. Transferencia de archivos entre servidores
Cuando necesita mover archivos entre servidores:
rsync
## Sincronizar archivos al servidor remoto
rsync -avz --progress /local/path/ usuario@servidor:/remoto/path/
## Sincronizar solo archivos cambiados
rsync -avz --progress --update /local/ usuario@servidor:/remoto/
## Excluir archivos innecesarios
rsync -avz --exclude='node_modules' --exclude='.git' /local/ usuario@servidor:/remoto/
scp para transferencias simples
## Copiar archivo al servidor
scp backup.sql usuario@servidor:/ruta/destino/
## Copiar archivo desde el servidor
scp usuario@servidor:/ruta/archivo.sql ./local/
9. Monitorización del servidor
Uso de recursos en tiempo real
## Ver procesos que consumen más recursos
top
## Version mejorada (si disponible)
htop
## Ver uso de memoria
free -h
## Ver uso de disco por particion
df -h
## Ver conexiónes de red activas
netstat -tuln
Identificar procesos PHP pesados
## Ver procesos PHP activos
ps aux | grep php
## Ver consultas MySQL lentas
mysqladmin -u root -p processlist
10. Aliases y scripts de productividad
Cree aliases para comandos que usa frecuentemente:
## Agregar a ~/.bashrc o ~/.zshrc
alias wplog='tail -f wp-content/debug.log'
alias wpsize='du -h --max-depth=1 | sort -hr'
alias wpcache='rm -rf wp-content/cache/*'
alias wpdb='wp db export backup-$(date +%Y%m%d).sql'
alias wpcheck='wp core verify-checksums && wp plugin list --update=available'
Script de mantenimiento automatizado
#!/bin/bash
## Script de mantenimiento diario de WordPress
echo "=== Mantenimiento WordPress $(date) ==="
## Respaldo de base de datos
wp db export /respaldos/db-$(date +%Y%m%d).sql
echo "Base de datos respaldada"
## Verificar integridad del core
wp core verify-checksums
echo "Core verificado"
## Listar actualizaciones disponibles
echo "=== Actualizaciones disponibles ==="
wp plugin list --update=available
wp theme list --update=available
wp core check-update
## Limpiar transients
wp transient delete --expired
echo "Transients limpiados"
## Optimizar base de datos
wp db optimize
echo "Base de datos optimizada"
echo "=== Mantenimiento completo ==="
Resumen
La terminal SSH no muerde. Le permite trabajar a la velocidad del disco del servidor, no a la velocidad de su conexión a internet. Comience con ncdu y tail -f — no querra volver a hacer clic con el raton.
Los comandos esenciales para empezar:
du/ncdu- Análisis de espacio en discotail -f- Depuracion en tiempo realgrep -r- Búsqueda de códigofind+chmod- Correccion de permisostar- Respaldos rápidoswp(WP-CLI) - Gestión completa de WordPressrm -rf- Eliminacion rápida (con precaucion!)rsync- Transferencia eficiente de archivostop/htop- Monitorización de recursos- Aliases - Productividad automatizada
Conozca más sobre los servicios de desarrollo WordPress en WPPoland.


