Comando Incron en Linux con ejemplos

Incron es un sistema de «inotificación de cron». Funciona de forma muy similar al cron normal , sin embargo, los trabajos cron se activan en un momento determinado (todos los domingos, una vez al día a las 12 a. m., etc.), mientras que los trabajos incron se activan mediante eventos del sistema de archivos (como crear, eliminar o modificar archivos o directorios). Aquí hay algunos ejemplos donde se puede usar   incron :

  • Monitoreo de uso de archivos y estadísticas
  • Notificar a los programas (por ejemplo, demonios del servidor) si se realizan cambios en los archivos de configuración.
  • Protección contra cambios en los archivos críticos.
  • Copia de seguridad o control de versiones automático en caso de cambios.
  • Procesando archivos subidos.

Nota: Como incron no es recursivo, también debe agregar todos los subdirectorios que desea que observe. No realice ninguna acción desde dentro de un trabajo incron en un directorio que supervisa para evitar bucles.  

Instalación y configuración de Incron:

Use el siguiente comando para instalar incron.  

$sudo apt-get install incron

Configuración: Para configurar el acceso a incron tenemos que configurar los archivos /etc/incron.allow y /etc/incron.deny .  

  • /etc/incron.allow : si este archivo existe, solo los usuarios enumerados aquí pueden usar incron.
  • /etc/incron.deny : si este archivo existe, solo los usuarios que NO aparecen aquí pueden usar incron.

Si ninguno de estos archivos existe, todos los usuarios del sistema pueden usar incron. 
 

Sintaxis: 

<path>  <mask>  <command>

Aquí

  • <ruta> es la ruta absoluta del directorio a observar.
  • <máscara> es una máscara de evento (en forma simbólica o numérica).

Símbolos de eventos (máscaras):  
IN_ACCESS Se accedió al archivo (leer). 
IN_ATTRIB Metadatos cambiados (permisos, marcas de tiempo, atributos extendidos, etc.). 
IN_CLOSE_WRITE Se cerró el archivo abierto para escritura. 
IN_CLOSE_NOWRITE Se cerró el archivo no abierto para escritura. 
IN_CREATE Archivo/directorio creado en el directorio supervisado. 
IN_DELETE Archivo/directorio eliminado del directorio observado. 
IN_DELETE_SELF El archivo/directorio observado se eliminó. 
IN_MODIFY Se modificó el archivo. 
IN_MOVE_SELF El archivo/directorio observado se movió. 
IN_MOVED_FROM El archivo se movió fuera del directorio supervisado. 
IN_MOVED_TOEl archivo se movió al directorio supervisado. Se abrió el archivo
IN_OPEN .

  • <comando> es un archivo ejecutable (o script) con sus argumentos.

Los siguientes comodines pueden usarse dentro de la especificación del comando. 
$$ Imprime un signo de dólar 
$@ Agrega la ruta del sistema de archivos observado 
$# Agrega el nombre del archivo relacionado con el evento 
$% Agrega los indicadores de eventos (textualmente) 
$& Agrega los indicadores de eventos (numéricamente)  

Configuración de Incron

Después de la instalación y configuración, debe iniciar incron daemon usando el siguiente comando: 
 

$ /etc/init.d/incrond start
        OR
$ systemctl start incron.service

Puede verificar el estado de incron usando:  

$ systemctl status incron.service

checking-incron-status

Ahora debe agregar su usuario o root a la configuración /etc/incron.allow . archivo para que el usuario pueda acceder a crontab.  

$ sudo nano /etc/incron.allow

Con los comandos de incrontab, puede enumerar (-l), editar (-e) y eliminar (-r) las entradas de incrontab. 

$ incrontab -l
$ incrontab -e
$ incrontab -r 

Supervisión de un archivo

Supongamos que queremos monitorear un archivo (/tmp/gfg/myfile.txt) y para cada cambio, queremos registrar la fecha y la hora de la modificación en un archivo de registro (/tmp/logs/mylogs.txt). 

1. El contenido de “myfile.txt” se muestra a continuación. 

content-display

2. Cree un script con el nombre » action.sh » que registrará la fecha y la hora en el archivo de registro. Ejecutaremos este script cada vez que se realicen cambios en myfile.txt. 

script-for-logging

3. Ahora puede editar crontab usando el comando.  

$ crontab -e:

edit-crontabedit-crontab

4. Ahora hagamos cambios en myfile.txt. 

change-file

5. Si vemos registros podemos ver la fecha y hora de los cambios. 

watch-logs

Supervisión de un directorio

Ahora vamos a monitorear el directorio (/tmp/gfg/) y para cada nuevo archivo/directorio registramos la fecha y hora de la creación en un archivo de registro (/tmp/logs/mylogs.txt). 
1. Abra el archivo incrontab. Aquí estamos pasando el comodín “ $# ” en el comando que pasará el nombre del archivo relacionado con el evento al comando. 

open-file-for-logopen-file-for-log

2. Actualizaremos action.sh. Aquí estamos usando el comodín “ $# ” que se pasó como argumento. 

update-action.sh

3. Ahora probemos creando un nuevo archivo en nuestro directorio gfg y veamos el resultado en el archivo de registro: 

result-in-log-file-incron

Publicación traducida automáticamente

Artículo escrito por Blinkii y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *