Je ne pense pas que vous pouvez contrôler le programme externe en tant que tel. Mais je suppose que vous utilisez cette sortie pour un tuyau et que vous l'insérez ailleurs. Dans ce cas, vous pouvez éviter un événement qui se produit en continu avec une durée de quelques secondes
Nous ajoutons %T
---format
et --timefmt "%s"
pour obtenir le temps d'époque. Ci-dessous la commande mise à jour
$ inotifywait -r -e close_write,moved_to --timefmt "%s" -m "/home/vagrant" --format '%f##@@##%e##@@##%w##T%T' -q | ./process.sh
test.txt##@@##CLOSE_WRITE,CLOSE##@@##/home/vagrant/
Skipping this event as it happend within 2 seconds. TimeDiff=2
test.txt##@@##CLOSE_WRITE,CLOSE##@@##/home/vagrant/
Cela a été fait en utilisant touch test.txt
, temps multiples à chaque seconde. Et comme vous pouvez voir la deuxième a même été sauté. Le process.sh
est un simple script bash
#!/bin/bash
LAST_EVENT=
LAST_EVENT_TIME=0
while read line
do
DEL="##T"
EVENT_TIME=$(echo "$line" | awk -v delimeter="$DEL" '{split($0,a,delimeter)} END{print a[2]}')
EVENT=$(echo "$line" | awk -v delimeter="$DEL" '{split($0,a,delimeter)} END{print a[1]}')
TIME_DIFF=$(($EVENT_TIME - $LAST_EVENT_TIME))
if [[ "$EVENT" == "$LAST_EVENT" ]]; then
if [[ $TIME_DIFF -gt 2 ]]; then
echo "$EVENT"
else
echo "Skipping this event as it happend within 2 seconds. TimeDiff=$TIME_DIFF"
fi
else
echo $EVENT
LAST_EVENT_TIME=$EVENT_TIME
fi
LAST_EVENT=$EVENT
done < "${1:-/dev/stdin}"
Dans votre script réel que vous désactivez le echo
si, celui-ci était juste pour la démo fin
J'ai jeté un coup d'oeil sur le résultat de strace, à la fois 'close' de soffice.bin lui-même, le premier est de copier le fichier de résultat pdf temporaire à la destination, la seconde est de vérifier ses statistiques. mais pourquoi cela vous dérange? – georgexsh
Merci @georgexsh pour votre réponse. En fait, il existe une fonctionnalité COPY-TO-CLOUD qui se lie à ce déclencheur. Ainsi, les fichiers sont copiés deux fois par gettign et certains autres travaux de maintenance sont effectués en parallèle. –
@JatinDhoot Quel type de réponse cherchez-vous? – ffeast