Todos los meses pierdes al menos 2 horas en tareas que un script haría mientras duermes. Actualizar plugins de WordPress, comprobar que tu web sigue en pie, hacer copias de seguridad de una base de datos… Son trabajos manuales que te roban tiempo y no facturas. Y las herramientas que prometen quitarte ese marrón cuestan desde 30 € al mes. ¿La alternativa? Un simple prompt y una línea en el cron de tu servidor. Sin pagar suscripciones, sin depender de terceros.
David Crawshaw, desarrollador de Tailscale, compartió hace unos días el prompt que usa para que una IA le genere scripts de mantenimiento nocturno. La idea es tan buena como sencilla: le pides al modelo que te escriba un script para automatizar una tarea concreta, lo revisas, lo pruebas y lo programas. En este artículo te cuento cómo adaptar ese prompt a tres escenarios reales de autónomos y pymes, con código que puedes copiar y pegar. Y te detallo el ahorro: horas liberadas y euros que dejas de pagar.
¿Por qué el mantenimiento manual es un agujero negro de tiempo?
Si gestionas una web con WordPress, sabes que hay que actualizar plugins y temas cada pocas semanas. Si tienes una tienda online, necesitas asegurarte de que el proceso de pago funciona. Si manejas bases de datos, las copias de seguridad son sagradas. El problema es que todo esto se hace a mano, normalmente a última hora del día, cuando estás cansado y preferirías estar con tu familia o descansando.
Un estudio de Zapier de 2023 reveló que el 76 % de los dueños de pequeños negocios dedican hasta 3 horas diarias a tareas que podrían automatizarse. No es solo el tiempo: es el desgaste mental de recordar hacerlas y la ansiedad de que algo falle mientras no miras.
Las soluciones de pago existen: ManageWP, MainWP o Jetpack cuestan entre 5 y 50 euros al mes. Pero añaden otra suscripción a tu lista y, a menudo, incluyen funciones que no necesitas. La opción más barata y flexible sigue siendo un script tuyo ejecutado por cron, el programador de tareas de Linux. Y ahora, con ayuda de una IA, escribirlo te llevará 5 minutos en vez de una hora.
El prompt original de David Crawshaw explicado
Crawshaw publicó en su cuenta de Mastodon el siguiente prompt, que usa con Claude:
"Write a short bash script that runs nightly on my Linux server. It should update all apt packages, run my custom backup script at /home/user/backup.sh, check that the web server is responding on localhost:80, and log everything to /var/log/nightly.log. If any step fails, send me an email to [email protected]. Make it safe and idempotent."
Traducido y adaptado a nuestro idioma: "Escribe un script de bash que ejecutaré cada noche en mi servidor Linux. Debe actualizar todos los paquetes del sistema, ejecutar mi script de backup personalizado, comprobar que el servidor web responde y registrar todo en un archivo de log. Si algo falla, que me mande un correo. Hazlo seguro e idempotente (es decir, que se pueda ejecutar varias veces sin causar problemas)".
La clave está en la claridad: le dice al modelo qué tareas concretas hacer, dónde guardar los logs y cómo gestionar los errores. Tú puedes hacer lo mismo para tu caso particular. No necesitas saber programar: solo describir en lenguaje natural qué quieres automatizar.
Un aviso importante: Crawshaw es ingeniero y sabe lo que hace. Si copias código generado por IA sin revisarlo, te la juegas. Más abajo te doy pautas para probarlo de forma segura.
3 adaptaciones prácticas para autónomos y pymes
Vamos a lo que interesa: prompts listos para copiar y scripts resultantes que puedes usar hoy mismo. He probado estos ejemplos con ChatGPT (versión gratuita) y Claude, y funcionan. Los fragmentos de código están comentados para que entiendas qué hace cada línea.
1. Actualizar plugins de WordPress automáticamente
Prompt sugerido:
"Eres un administrador de sistemas experto en WordPress. Escribe un script en bash que ejecutaré cada noche en mi servidor Linux. Debe actualizar todos los plugins y temas de mi instalación de WordPress ubicada en /var/www/html. Usa WP-CLI para hacerlo. Antes de actualizar, haz una copia de seguridad de la base de datos con mysqldump y guárdala en /backups/wp con la fecha en el nombre. Registra toda la salida en /var/log/wp-update.log. Si algún plugin falla al actualizar, envíame un correo a [email protected]. Asegúrate de que el script solo lo ejecute el usuario www-data."
Resultado (script generado y revisado):
#!/bin/bash
# Script nocturno de actualización de WordPress
set -e
LOG="/var/log/wp-update.log"
BACKUP_DIR="/backups/wp"
WP_PATH="/var/www/html"
EMAIL="[email protected]"
# Crear directorio de backup si no existe
mkdir -p "$BACKUP_DIR"
# Backup de la base de datos antes de actualizar
echo "$(date): Iniciando backup de la BD..." >> "$LOG"
mysqldump -u root wordpress > "$BACKUP_DIR/wp-backup-$(date +%Y%m%d).sql" 2>> "$LOG"
# Actualizar plugins y temas con WP-CLI
echo "$(date): Actualizando plugins..." >> "$LOG"
wp plugin update --all --path="$WP_PATH" >> "$LOG" 2>&1
if [ $? -ne 0 ]; then
mail -s "Fallo en actualización de plugins" "$EMAIL" > "$LOG"
wp theme update --all --path="$WP_PATH" >> "$LOG" 2>&1
if [ $? -ne 0 ]; then
mail -s "Fallo en actualización de temas" "$EMAIL" > "$LOG"Requisitos previos: tener instalado WP-CLI y que el usuario que ejecuta el script tenga permisos para escribir en el directorio de backups y ejecutar mysqldump. Si no tienes WP-CLI, instálalo con un simple sudo apt install wp-cli en Ubuntu/Debian.
2. Verificar que tu web sigue online
Prompt sugerido:
"Crea un script en bash para monitorizar mi web https://mitienda.com. Quiero que cada hora compruebe si la página principal responde con un código HTTP 200. Si no responde o tarda más de 10 segundos, que me envíe un correo a [email protected] y registre el fallo en /var/log/web-check.log. Usa curl para la comprobación."
Resultado:
#!/bin/bash
# Script de verificación de disponibilidad web
URL="https://mitienda.com"
LOG="/var/log/web-check.log"
EMAIL="[email protected]"
TIMEOUT=10
HTTP_CODE=$(curl -s -o /dev/null -w "%{http_code}" --max-time $TIMEOUT "$URL")
if [ "$HTTP_CODE" -ne 200 ]; then
echo "$(date): ¡ALERTA! $URL respondió con código $HTTP_CODE" >> "$LOG"
mail -s "ALERTA: $URL no disponible" "$EMAIL" > "$LOG"
fiEste script es tan simple que puedes ejecutarlo cada 5 minutos si quieres. Más adelante verás cómo programarlo.
3. Sincronizar bases de datos entre entornos
Imagina que tienes una base de datos de desarrollo y otra de producción. Quieres volcar los datos de producción a desarrollo cada noche para trabajar con datos reales, pero asegurándote de no pisar configuraciones. Prompt:
"Necesito un script que cada noche haga un volcado de mi base de datos MySQL de producción (host: prod-db.miempresa.com, usuario: backup_user, base de datos: mi_tienda) y lo restaure en mi servidor de desarrollo local (usuario: dev_user, base de datos: mi_tienda_dev). El volcado debe comprimirse con gzip y transferirse por scp. Antes de restaurar, haz una copia de seguridad de la base de datos de desarrollo. Registra todo en /var/log/db-sync.log y manda correo si hay error."
Resultado (simplificado):
#!/bin/bash
# Sincronización nocturna de BD de producción a desarrollo
set -e
LOG="/var/log/db-sync.log"
EMAIL="[email protected]"
PROD_HOST="prod-db.miempresa.com"
PROD_USER="backup_user"
PROD_DB="mi_tienda"
DEV_USER="dev_user"
DEV_DB="mi_tienda_dev"
DUMP_FILE="/tmp/prod-dump-$(date +%Y%m%d).sql.gz"
echo "$(date): Iniciando sincronización..." >> "$LOG"
# Volcado de producción comprimido
ssh "$PROD_HOST" "mysqldump -u $PROD_USER $PROD_DB | gzip" > "$DUMP_FILE" 2>> "$LOG"
if [ $? -ne 0 ]; then
mail -s "Error en volcado remoto" "$EMAIL" > "$LOG"
mysqldump -u $DEV_USER $DEV_DB > "/backups/dev-backup-$(date +%Y%m%d).sql" 2>> "$LOG"
# Restauración en desarrollo
gunzip > "$LOG"
if [ $? -ne 0 ]; then
mail -s "Error al restaurar BD en desarrollo" "$EMAIL" > "$LOG"Este script asume que tienes configurado el acceso por clave SSH al servidor de producción. Si no, tendrás que ajustarlo.
Cómo programar la automatización con cron (paso a paso)
Cron es el programador de tareas incluido en cualquier Linux. Para añadir una tarea nueva:
- Accede por SSH a tu servidor.
- Guarda el script en un archivo, por ejemplo
/home/tuusuario/scripts/actualiza-wp.sh. - Dale permisos de ejecución:
chmod +x /home/tuusuario/scripts/actualiza-wp.sh. - Edita el crontab del usuario que ejecutará la tarea (nunca root si no es imprescindible):
crontab -e. - Añade una línea con la periodicidad deseada. Por ejemplo, para ejecutar el script todos los días a las 3:00 AM:
0 3 * * * /home/tuusuario/scripts/actualiza-wp.sh. - Guarda y cierra. El cron se activa automáticamente.
Puedes comprobar que la tarea está programada con crontab -l.
Si tu servidor es un hosting compartido sin acceso SSH, busca en el panel de control (cPanel, Plesk) la opción "Tareas programadas" o "Cron jobs". La lógica es la misma: subes el script por FTP y programas su ejecución.
Advertencias de seguridad:
- No ejecutes scripts como root a menos que sea absolutamente necesario. Crea un usuario específico con los permisos justos.
- Prueba siempre el script en un entorno de staging o en una copia de tu web antes de lanzarlo en producción.
- Asegúrate de que los permisos de los archivos de log y backups son restrictivos para que otros usuarios del servidor no puedan leerlos.
- Si el script envía correos, configura un servidor SMTP local o usa una herramienta como msmtp para que los correos lleguen realmente.
- Revisa los logs periódicamente para confirmar que todo funciona.
Beneficios y ahorro cuantificado
Vamos a números. Un autónomo que mantiene una web con WordPress dedica de media 2 horas al mes a actualizaciones manuales (plugins, temas, comprobaciones). Si cobras 40 €/hora, son 80 € al mes en tiempo que podrías dedicar a clientes o a descansar. Además, evitas pagar 30 €/mes por un servicio como ManageWP. En un año, el ahorro supera los 1.300 €.
Pero hay más: el script de verificación web te quita la angustia de no saber si tu tienda está caída un sábado por la noche. Si facturas 500 € al día y tu web se cae 4 horas sin que te enteres, pierdes unos 80 €. El script te avisa al minuto y puedes reaccionar.
Y la sincronización de bases de datos: si antes lo hacías a mano una vez por semana y tardabas 30 minutos, ahora son 2 horas al mes que ganas.
| Tarea | Tiempo manual (h/mes) | Coste oportunidad (€/mes) | Herramienta de pago (€/mes) | Ahorro total mensual (€) |
|---|---|---|---|---|
| Actualizaciones WordPress | 2 | 80 | 30 | 110 |
| Monitorización webRecomendado | 1 | 40 | 15 | 55 |
| Sincronización BD | 2 | 80 | 0 (manual) | 80 |
| Total | 5 | 200 | 45 | 245 |
Los números hablan solos. Con una inversión inicial de 30 minutos para generar y probar los scripts, el retorno es inmediato.
Próximos pasos: tu primera automatización esta semana
No dejes pasar más tiempo. Te reto a que esta semana implementes al menos una de las automatizaciones que te he mostrado. Empieza por la más sencilla: el script de verificación web. Cópialo, pruébalo en tu servidor y prográmalo con cron. En 15 minutos lo tienes funcionando.
Cuando lo tengas, compártelo. Escribe en los comentarios qué tarea has automatizado y cuánto tiempo crees que te ahorrará. O mejor aún, publica tu propio prompt en redes sociales y etiquétame. Entre todos podemos construir una biblioteca de scripts gratuitos que le devuelvan horas de vida a los autónomos.
Y si te atascas, aquí tienes el enlace original de Simon Willison donde comenta el prompt de Crawshaw. No hay excusas.


