inotifywait
En este post te explico paso a paso cómo vigilar en tiempo real la creación de carpetas en uno o varios directorios usando inotifywait
, y cómo automatizarlo con un servicio systemd para que funcione incluso después de reiniciar el servidor.
Este método es ideal para administradores que necesitan aplicar permisos automáticamente, mover archivos o registrar eventos cuando se crean carpetas en rutas sensibles, como /var/www
.
🧰 Requisitos
- Distribución Linux (Debian, Ubuntu, etc.)
- Acceso como
root
o privilegios consudo
inotify-tools
instalado
Instálalo con:
sudo apt update
sudo apt install inotify-tools -y
🎯 Objetivo del script
Queremos que, cada vez que se cree una carpeta dentro de un directorio específico (por ejemplo /var/www/...
), se aplique automáticamente un chown
para asignar los permisos correctos.
📜 Script de vigilancia: vigilar_revista.sh
Ubica el script en /usr/local/bin/vigilar_revista.sh
. Dale permisos de ejecución:
sudo chmod +x /usr/local/bin/vigilar_directorio.sh
Ejemplo de script:
#!/bin/bash
# Directorios a vigilar
DIRECTORIOS=(
"/var/www/iespai/public_html/directorio"
"/var/www/iespai2/public_html/directorio"
)
# Usuario y grupo destino
OWNER="directorio:directorio"
# Función que vigila un directorio
vigilar_directorio() {
local DIR="$1"
echo "Vigilando: $DIR"
inotifywait -m -e create --format '%f' "$DIR" | while read -r NOMBRE
do
RUTA="$DIR/$NOMBRE"
if [ -d "$RUTA" ]; then
echo "Se ha creado una carpeta: $RUTA"
chown -R $OWNER "$RUTA"
fi
done
}
# Ejecutar vigilancia para todos los directorios
for DIR in "${DIRECTORIOS[@]}"; do
vigilar_directorio "$DIR" &
done
wait
Este script vigila múltiples rutas y, cada vez que se crea una carpeta, le aplica los permisos correspondientes.
⚙️ Crear el servicio systemd
Creamos el archivo:
sudo nano /etc/systemd/system/vigilar_directorio.service
Contenido:
[Unit]
Description=Vigilancia automática de carpetas para revistas
After=network.target
[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/vigilar_directorio.sh
Restart=always
RestartSec=5
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=vigilar_revista
[Install]
WantedBy=multi-user.target
🚀 Activar y lanzar el servicio
sudo systemctl daemon-reload
sudo systemctl enable vigilar_directorio.service
sudo systemctl start vigilar_directorio.service
Verifica que esté activo:
sudo systemctl status vigilar_directorio.service
📒 Ver logs en tiempo real
sudo journalctl -u vigilar_directorio.service -f
🧼 Detener o reiniciar el servicio
sudo systemctl stop vigilar_directorio.service
sudo systemctl restart vigilar_directorio.service
✅ Beneficios
- 🛡️ Automatización total de permisos en carpetas nuevas
- 🖥️ Monitorización en tiempo real
- 🔄 Persistente tras reinicios
- 🧩 Ampliable a múltiples directorios
🧠 Conclusión
inotifywait
es una herramienta ligera pero poderosa para tareas de vigilancia en Linux. Combinado con systemd
, nos permite construir soluciones automáticas, limpias y robustas para administrar archivos y permisos en entornos como servidores web o compartidos.
¿Te ha sido útil? ¡Compártelo con otros administradores y deja tu comentario!