Bonjour,
J'ai mis en place un gestionnaire d'évènement sous Oracle Linux, il est basé sur Inotify.
L'objectif est de détecter l'arrivée d'un fichier spécifique dans un répertoire puis de le déplacer vers un stockage externe ex. object/blob storage.
Problème : le fichier semble être copié alors qu'il n'est pas complet (le fichier est issu d'un export réalisé à partir d'une BDD présente sur le serveur).
Comment contourner le problème, est-ce qu'il y a plus élégant qu'un wait ?
Merci pour votre aide
Batch de copie déclenché par le gestionnaire d'évènement
Contenu fichier /etc/systemd/system/monitor_MONFICHIER.service :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 # Monitor directory for new files and call the OCI API inotifywait -m -e create --format '%w%f' /.../répertoire_cible | while read NEWFILE do echo "New file detected: $NEWFILE" DIR="$(dirname "${NEWFILE}")" ; FILE="$(basename "${NEWFILE}")" if [[ "$FILE" == "NC_"*"_Y.txt" ]]; then #Filename matches copy to object storage echo $NEWFILE #sleep 5m commande de copie vers un autre répertoire ou blob/object storage rm $NEWFILE else echo Filename does not match ${FILE} fi done
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 [Unit] Description=File monitor for XXX application [Service] ExecStart=/home/oracle/monitor_XXX.sh Type=simple Restart=always [Install] WantedBy=multi-user.target







Répondre avec citation
Partager