Macros: comandos reutilizables
¿Qué es un macro?
Un macro es un comando o secuencia de comandos SSH que el usuario guarda con un nombre amigable para ejecutarlos repetidamente sin necesidad de teclearlos. Casos típicos: reiniciar el servicio web (sudo systemctl restart nginx), limpiar logs antiguos (find /var/log -name "*.gz" -mtime +30 -delete), o capturar el listado de procesos top (ps aux --sort=-%cpu | head).
Lista de macros
La sección Macros de la barra lateral lleva a una tabla con todos los macros del usuario. Cada fila muestra el nombre, el comando completo, una descripción opcional y la fecha de creación.

Crear un macro
El formulario en /dashboard/macros/new solicita:
- Nombre: cadena corta y descriptiva.
- Comando: instrucción exacta que se enviará al servidor. Acepta múltiples líneas y operadores de shell (
&&,|,;). - Descripción: opcional, ayuda a recordar qué hace el macro y cuándo usarlo.
El macro es global a la cuenta: puede ejecutarse contra cualquier servidor registrado del mismo usuario. No se vincula explícitamente a un servidor en el momento de la creación.
Ejecución desde el detalle del servidor
Dentro del panel Macros en el detalle del servidor, cada macro aparece como una tarjeta con un botón ejecutar. Al presionarlo, la aplicación envía la petición al backend, que abre una sesión SSH, ejecuta el comando, captura stdout y stderr, y devuelve el resultado a la pantalla.

Nota. El timeout por defecto de la ejecución es de treinta segundos; comandos más largos deben dividirse o ejecutarse desde el terminal interactivo.
Buenas prácticas
- Evitar comandos destructivos sin confirmación: AuditX no añade prompts interactivos. Comandos como
rm -rfse ejecutan tal cual. - Prefijar con
sudosolo cuando sea necesario: el usuario configurado en el servidor debe tenersudoerssin contraseña, o el comando colgará. - Probar primero en un servidor de desarrollo.
- Usar comentarios bash (
#) al inicio del macro para documentar pasos largos.
Edición y borrado
La edición carga el formulario con los datos actuales del macro y, al guardar, propaga los cambios. El borrado solicita confirmación. Ninguna de las dos operaciones afecta el histórico de ejecuciones anteriores.