Bonjour,
J'ai créé un script me permettant de copier un fichier de log syslog dont la taille s'incrémente vers un disque dur lorsque la taille du fichier atteint par exemple 50Mo.
la particularité est lorsque le fichier est copié, je fais une remise à zéro du fichier initial.
La taille va donc s'incrémenter à nouveau et lorsqu'elle atteindra une nouvelle fois 50Mo, je copie le fichier à nouveau. Etc.... etc.... je répète la boucle indéfiniment.
Le script ci-dessous fonctionne partiellement, je n'arrive pas à inclure dans la CONDITION de la boucle while la vérification de la taille du fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 #!/bin/bash while true do find . -type f -name syslog_message -size +50000c -print cp -f /mnt/sda1/syslog_message "/mnt/sda1/save_log/log-$(date +"%Y%m%d-%H:%M:%S")" truncate messages -s 0 echo log-$(date +"%Y%m%d-%H:%M:%S") done
Par contre, en exécutant les commandes les unes après les autres, cela fonctionne parfaitement.
J'essaie juste d'intégrer cela dans un script automatique.
Comportement actuel:
a chaque loop, le fichier est copié et est remise a zero.
Cependant comme la boucle dur moins d'une seconde, en gros le script copie le fichier log qui fait tout le temps 0 octets.
Auriez-vous une petite idée svp?![]()
Partager