Page 1 sur 1
[Bash] - demande d'aide : boucle infinie à durée limité
Posté : jeu. 19 mai 2016 09:32
par Le_Marius
salut,
Est-il possible de créer une boucle while mais avec une durée limité de 5 minutes ?
En gros:
1) je récupère des données dans un fichier buffer1 (cat usb >> buffer1)
2) au bout de 5 min le buffer2 est créé, le buffer1 se stoppe et transfert ses données à d'autres fichiers
3) le buffer1 est détruit
4) au bout de 5 min le buffer2 se stoppe, transfert ses données aux autres fichiers
et rebouclage
donc je me demandais s'il y avait 2 solutions:
1) faire un bouclage à durée limité
2) utiliser une commande pour stopper le cat
Re: demande d'aide Bash : boucle infinie à durée limité
Posté : jeu. 19 mai 2016 13:11
par Le_Marius
ou est-il possible de limiter la taille du fichier buffer à 10Mb ?
Re: demande d'aide Bash : boucle infinie à durée limité
Posté : jeu. 19 mai 2016 15:58
par destroyedlolo
Un truc genre ce qui est décrit ici
http://stackoverflow.com/questions/6879 ... sary-delay pourrait t'aider.
Re: demande d'aide Bash : boucle infinie à durée limité
Posté : jeu. 19 mai 2016 18:19
par vague nerd
Bonjour.
Je vous proposerais de faire une boucle
et non
, et d'utiliser un timer pour faire passer le boolean à vrais à faux (classe sched.scheduler toujours en python).[/strike]
Pardon, vous êtes en bash.
Cdt.
Re: demande d'aide Bash : boucle infinie à durée limité
Posté : ven. 20 mai 2016 08:49
par Le_Marius
Bonjour
Tout d'abord, merci pour le lien mais afin d'optimiser en quelque sorte le script,
j'ai modifié pour travailler avec la taille du fichier mais je reste bloqué avec le If ...
Des vingtaines d'essais ont été fait et toujours sans résultat.
Code : Tout sélectionner
#! /bin/bash
# creation des fichiers tampon sur le bureau
> /home/pi/Desktop/test_taille.txt
> /home/pi/Desktop/test_taille2.txt
i=0
while :
do
#recuperation de la taille des fichier tampon (en octet) dans un fichier secondaire
stat -c %s test_taille.txt > a
stat -c %s test_taille2.txt > b
#verification
echo "val a"
cat a
echo "val b"
cat b
i=$((i+1))
# si la taille du fichier tampon1 est inferieur à 1000 octet
if [ cat a -lt 1000 ]
#alors on transfert la valeur de i dans le fichier tampon1
then
echo $i >> /home/pi/Desktop/test_taille.txt
#sinon on copie le fichier tampon1 dans le fichier reception et on supprime le fichier tampon
#et on transfert la valeur de i dans le second fichier tampon2
else
cat /home/pi/Desktop/test_taille.txt >> /home/pi/Desktop/test_taille_recep.txt
#rm test_taille.txt
echo $i >> /home/pi/Desktop/test_taille2.txt
# si la taille du fichier tampon2 est inferieur à 1000 octet
if [ cat b -lt 1000 ]
#alors on transfert la valeur de i dans le fichier tampon2
then
echo $i >> /home/pi/Desktop/test_taille2.txt
#sinon on copie le fichier tampon2 dans le fichier reception et on supprime le fichier tampon2
else
cat /home/pi/Desktop/test_taille2.txt >> /home/pi/Desktop/test_taille_recep.txt
#rm test_taille2.txt
fi
fi
done
Re: demande d'aide Bash : boucle infinie à durée limité
Posté : jeu. 26 mai 2016 13:28
par Le_Marius
pour répondre au problème, j'ai utiliser la méthode crontab, avec l'execution d'une tâche journalière à 23h59 .
un buffer sauvegarde tout au long de la jounée, à 23h 59 je transfert son contenu dans un fichier daté et je supprime le buffer .
Le buffer se recréé automatiquement grâce à une boucle while : et réitère l'opération le jour suivant à la même heure.