\documentclass{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{textcomp}
\usepackage{geometry}
\geometry{top=15mm, bottom=15mm, left=1cm, right=1cm}
\usepackage[french]{babel}
\usepackage{pslatex}
\usepackage[colorlinks=true,urlcolor=black]{hyperref}
\usepackage{graphicx}
\usepackage{fancyhdr}
\pagestyle{fancy}
\renewcommand{\footrulewidth}{0.4pt}
\fancyfoot[L]{Uubu.fr}
\fancyfoot[R]{jeu. mars 31 12:59:44 CEST 2016}
\lfoot{\Large \textit{Uubu.fr}}
\hypersetup{pdfinfo={
Title={inotifywait},
Author={Sylvain Girod},
Creator={Bash script from uubu.fr's format version 1},
Producer={Bash script and PDFLaTeX},
Subject={Attend les changements de fichiers en utilisant inotify},
CreationDate={D:20160331125944},
ModDate={D:20160331125944},
Keywords={inotify}
}}
\begin{document}
 
\begin{center}
{\Huge inotifywait }
\end{center}
\vspace{1cm}
 
\begin{flushleft}
 
{\large Attend les changements de fichiers en utilisant inotify}
 
\vspace{10mm}
 
\hspace{1mm}  Il peut soit quitter une fois l'événement produit, ou s'exécuter en continue et afficher les événements qui se produisent. inotifywait affiche des diagnostiques sur l'erreur standard et les informations d'événement sur la sortie standard. La sortie de l'événement peut être configuré, mais par défaut, il consiste de lignes sous la forme suivante:
\vspace{5mm} \\
 
 
\begin{description} \normalsize
\item[\hspace{1mm} watched\_filename EVENT\_NAMES event\_filename]{où}
\item[\hspace{1mm} watched\_filename]{est le nom du fichier dans lequel l'événement se produit, si le fichier est un répertoire, un '/' final est affiché}
\item[\hspace{1mm} EVENT\_NAMES]{sont les noms des événements inotify qui se produisent}
\item[\hspace{1mm} event\_filename]{est affiché seulement quand l'événement se produit sur un répertoire, et dans ce cas le nom du fichier dans le répertoire qui à causé l'événement est affiché}
\end{description}
 
\vspace{1cm}{\huge OPTIONS }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} @<file>]{Exclus le fichier spécifié dans le répertoire surveillé}
\item[\hspace{1mm} --fromfile <file>]{Lit les noms de fichier à surveiller ou exclure depuis un fichier, un fichier par ligne. '@' comme préfixe exclus de fichier, si le fichier spécifié est '-', les fichiers sont lus depuis l'entrée standard}
\item[\hspace{1mm} -m, --monitor]{Au lieu de quitter une fois un événement reçu, s'exécute indéfiniment}
\item[\hspace{1mm} -d, --deamon]{Idem à -m, est s'exécute en tâche de fond en loggant dans un fichier spécifié avec --outfile. Implique --syslog}
\item[\hspace{1mm} -o, --outfile <file>]{Sort les événements dans le fichier au lieu de stdout}
\item[\hspace{1mm} -s, --syslog]{Affiche les erreurs dans syslog au lieu de stderr}
\item[\hspace{1mm} -r, --recursive]{Surveille tous les sous-répertoires dans tous les répertoires passés en argument}
\item[\hspace{1mm} -q, --quiet]{Si spécifié une seule fois, le programme sera moins verbeu. 2 fois, le programme n'affiche rien, exepté en cas d'erreur fatal.}
\item[\hspace{1mm} --exclude <pattern>]{Ne traite pas les événements des fichiers dont le nom matche le regex spécifié, sensible à la casse}
\item[\hspace{1mm} --excludei <pattern>]{idem, insensible à la casse}
\item[\hspace{1mm} -t <seconds>, --timeout <seconds>]{Quitte si un événement approprié ne s'est pas produit dans les <seconds>. à 0, attend indéfiniment.}
\item[\hspace{1mm} <event>, --event <event>]{Écoute des événements spécifiques uniquement.}
\item[\hspace{1mm} -c, --csv]{Sort au format CSV}
\item[\hspace{1mm} --timefmt <fmt>]{Défini un format de date accepté par strftime(3) à utiliser avec \%T de l'option --format}
\item[\hspace{1mm} --format <fmt>]{Format personnalisé, les caractères de conversions suivants sont supportés:}
\end{description}
 
\begin{description} \normalsize
\item[\hspace{6mm} \%w]{Nom du fichier surveillé}
\item[\hspace{6mm} \%f]{Dans un répertoire, le nom du fichier ayant causé l'événement}
\item[\hspace{6mm} \%e]{Événements qui se sont produits, séparés pas des ','}
\item[\hspace{6mm} \%Xe]{Idem, séparé par le caractère <X>}
\item[\hspace{6mm} \%T]{Date courante}
\end{description}
 
\vspace{1cm}{\huge Code de sortie }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} 0]{succès}
\item[\hspace{1mm} 1]{Erreur d'exécution du programme}
\item[\hspace{1mm} 2]{Option -t utilisé et aucun événement ne s'est produit}
\end{description}
 
\vspace{1cm}{\huge Événements }
 
\
 
\begin{description} \normalsize
\item[\hspace{1mm} access]{accès au fichier}
\item[\hspace{1mm} attrib]{Modification des métadonnées, ex les permissions, horodatages, attributs étendus, compteur de liens, UID ou GID.}
\item[\hspace{1mm} close\_write]{Fichier ouvert en écriture fermé}
\item[\hspace{1mm} close\_nowrite]{Fichier non ouvert en écriture fermé}
\item[\hspace{1mm} create]{Fichier ou répertoire créé dans le répertoire surveillé}
\item[\hspace{1mm} delete]{Fichier ou répertoire supprimé dans le répertoire surveillé}
\item[\hspace{1mm} delete\_self]{Fichier ou répertoire surveillé supprimé ( ou déplacé dans un autre système de fichier)}
\item[\hspace{1mm} modify]{Fichier modifié}
\item[\hspace{1mm} move\_self]{Fichier ou répertoire surveillé déplacé}
\item[\hspace{1mm} moved\_from]{Généré pour le répertoire contenant l'ancien nom quand un fichier est renommé}
\item[\hspace{1mm} moved\_to]{Généré pour le répertoire contenant le nouveau nom quand un fichier est renommé}
\item[\hspace{1mm} open]{Fichier ouvert}
\item[\hspace{1mm} move]{Équivalent à moved\_from | moved\_to}
\item[\hspace{1mm} close]{Équivalent à close\_write | close\_nowrite}
\item[\hspace{1mm} unmount]{Le système de fichiers contenant l'objet surveillé a été démonté}
\end{description}
 
\vspace{1cm}{\huge Exemples }
 
\
 
\hspace{1mm} Attend un accès à un fichier dans le répertoire test: \\
\hspace{1mm} \textbf{inotifywait test} \\
\hspace{1mm} Script shell pour attendre efficacement pour des log https et agir en consequence: \\
\hspace{1mm} \textbf{\#!/bin/sh} \\
\hspace{1mm} \textbf{while inotifywait -e modify /var/log/messages; do} \\
\hspace{1mm} \textbf{if tail -n1 /var/log/messages | grep httpd; then} \\
\hspace{1mm} \textbf{kdialog --msgbox "Apache needs love!"} \\
\hspace{1mm} \textbf{fi} \\
\hspace{1mm} \textbf{done} \\
\hspace{1mm} Personnaliser le format de sortie: \\
\hspace{1mm} \textbf{inotifywait -m -r --format '\%:e \%f' \textasciitilde/test} \\
\end{flushleft}
\end{document}
