Publicité

Par défaut la commande find permet d'avoir la liste des fichiers non modifiés depuis n minutes. On ne peut descendre sous la minute.

On peut faire sauter cette limite en utilisant les commandes touch et date en complément. Voici comment... avec en prime exécution d'une commande sur les fichiers trouvés (optionnel).

NB : penser à renseigner les variables en majuscule. Par exemple :
TOKEN_DELTA=5   (pour 5 secondes)
TOKEN_FILE="/tmp/mon_fichier_timestamp"
MONITORING_ROOT="/home/moi/mon_repertoire_a_surveiller"
COMMAND="/usr/bin/ma_commande_a_executer_pour_les_fichiers_trouves"

 # Creation d'un jeton $TOKEN_DELTA secondes dans le passé
touch -t `date --date "1970-01-01 00:00:00 +0000 + \`echo \\\`date +%s\\\` - $TOKEN_DELTA \
| bc -l\` seconds"
+%g%m%d%H%M.%S` $TOKEN_FILE

# Coeur du programme : recherche dans $MONITORING_ROOT de l'ensemble des fichiers n'ayant pas ete modifies depuis
# $TOKEN_DELTA et execution d'un script $COMMAND pour chaque occurrence
find "$MONITORING_ROOT" -type f ! -newer "$TOKEN_FILE" -exec "$COMMAND" {} \;
Publicité
Tag(s) : #bash
Partager cet article
Repost0
Pour être informé des derniers articles, inscrivez vous :