Le 23/07/15 à 11:39, (•‿•)  Dhénin Jean-Jacques <dhe...@gmail.com> a écrit :

(DJJ> $ more Vazy
(DJJ> find . -newer Fantome -type d  | egrep -v '^\.$'
(DJJ> touch Fantome
(DJJ> 
(DJJ> --------
(DJJ> 
(DJJ> Le fichier Fantome sert de sentinelle.
(DJJ> Si un répertoire a été créé find le signale
(DJJ> et de toute façon la sentinelle se repositionne à une date plus recente.

Ça me parait une meilleure solution que de faire des diff sur des listes de 
dossiers à des
dates différentes

Ce que Jean-Jacques propose, c'est de lancer un script +/- régulièrement, qui 
sort tous les
dossiers créés depuis le dernier lancement.

Il utilise le fichier "Fantome" comme mémoire du dernier lancement (sa date de 
modification)

Dans un script plus complet, ça donnerait qqchose comme

# le nom du fichier dont la date de modif correspond au dernier lancement
# qui pourrait être aussi /tmp/$(basename $0).last (si ce fichier s'appelle 
toto.sh ça
# vaudra /tmp/toto.sh.last, mais ça peut être n'importe quel fichier, pourvu 
que personne
# d'autre n'y touche
fichierTest=Fantome

# différentes manières de virer le dossier .
#find . -newer $fichierTest -type d  | grep -v '^.$'i
#find . -newer $fichierTest -type d  | egrep -v '^\.$'
#find . -type d -name '??*' # seulement les dossiers de plus de 1 caractère

# mais si on veut virer le ./ de chaque fichier autant demander à sed
# /^\.$/ pour désigner "."
# d pour l'effacer
# s@^\./@@ pour remplacer ./ par rien 
# (@ est un caractère arbitraire, pas / pour éviter de l'échapper avec /^\.\///)
find . -newer $fichierTest -type d | sed -e '/^\.$/d; s@^\./@@' | while read 
dossier
do
  # ici le script qui traite les dossier 1 par 1 avec $dossier
done

# Et si c'est juste pour envoyer la liste par mail
sujet="nouveaux dossier créés depuis $(date -r Fantome '+%F %T')"
dest=t...@domaine.tld
find . -newer $fichierTest -type d | sed -e '/^\.$/d; s/^\.\///' | mail -s 
"$sujet" $dest

# Pour éviter les mails vides on stocke dans une chaine
liste=$(find . -newer $fichierTest -type d | sed -e '/^\.$/d; s/^\.\///')

# on envoie si elle n'est pas vide
[ -n "$liste" ] && echo "$liste"|mail -s "$sujet" $dest

# à la fin on reset la date de modif du fichier Fantome
touch $fichierTest

# pour éviter d'oublier un dossier qui serait créé pendant le traitement de 
résultat du find
# il faudrait mémoriser la date du fichier au début (man touch pour le format 
dont on aura
# besoin)
lancement=$(date '+%Y%m%d%H%M.%S')
# lancer find et traitement

# mettre la date du début du lancement de ce script
touch -t $lancement $fichierTest

Et ensuite lancer de script au rythme où on veut être prévenu

-- 
Daniel

Il faut toute une vie pour apprendre à vivre.
Sénèque.

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet "unsubscribe"
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: https://lists.debian.org/20150724141021.7df33...@quad.lairdutemps.org

Répondre à