Netcat et sauvegarde

Bonjour,
j’utilise netcat pour voir ce qui rentre sur un port bien précis de mon serveur et j’enregistre la réponse dans un fichier pour réutiliser les données par un script PHP:

C’est des trames GPRMC que j’arrive pas à décoder, mais que le site arrive: rl.se/gprmc si quelqu’un à une solution je suis preneur!!!

J’ai mis tout ça dans un screen, car je reçois des données toute les minutes et je dois rien raté.

Mon problème est que j’aimerais vider le fichier au moins une fois par jour, car il devient vite gros et parfois quand je le vide j’ai des caractères bizarre et ça taille ne baisse pas… J’aimerais donc dans mon script bash pouvoir arrêter la commande puis supprimer le fichier ou le vider et remettre la commande mais je ne sais pas comment faire ça en bash

A moins qu’on puisse dire à netcat de faire une redirection en POST de ce qu’il reçoit vers une page de mon site ? comme ça pas besoin de fichier, car ajouter directement dans ma BDD.

EDIT: je sais pas si il y une limite max de texte dans le fichier, mais j’ai l’impression qu’il ne se remplit plus au bout d’un moment. J’ai recommencer avec un fichier vide et ça remarche…

PS: on m’a volé ma voiture et avec ça, j’aurais pu aidé la police pour l’enquête pour voir le trajet qu’a fait ma voiture… Dommage que ne n’y soit pas arrivé avant^^.

Alors, je ne suis pas du tout un expert dans ce domaine là, mais en parcourant le man de [mono]nc[/mono] j’ai trouvé ceci :

-q seconds after EOF on stdin, wait the specified number of seconds and then quit. If seconds is negative, wait forever. ... -w secs timeout for connects and final net reads
Donc, si tu as un flux qui n’est pas totalement continue, tu pourrais peut être utiliser l’option -q pour quitter quand il y a un arrêt dans le flux et changer/vider ton fichier.
Sinon, je ne sais pas exactement ce que veux dire le “final net reads”, mais il est possible que l’option -w te permette de recevoir un flux pendant une durée limitée.
Au pire, tu peux toujours utiliser la commande [mono]timeout[/mono].

Donc en gros il faut que tu fasse une boucle perpétuelle (ou avec une condition d’arrêt si tu en as une) exécutant à chaque itération ce genre de commandes :

  • vider/déplacer le fichier (peut être vérifier que le fichier n’est pas vide si tu le déplace)
  • exécuter ta commande pour la réception de flux avec un timeout
  • traitement du fichier si besoin

Voila, voila, j’espère que ça pourra t’aider…

Depuis ce matin je cherche!!!

Le problème c’est qu’au départ je voulais faire une sorte de cron qui traiterait les données du fichier et un autre script afficherait les données traités, mais je trouve que ça limite trop, alors que si on peut transférer les données directement dans la BDD ou au script PHP ça serait mieux et je trouve rien.

EDIT:
Avec cette commande j’ajoute en bash une ligne dans ma table ou il y a écrit test:

Il faut que je remplace ce test par ce que reçois netcat toute les minutes!!!

C’est pas la solution ?

[quote]NetCat permet aussi de rediriger les entrées et sorties d’un programme vers notre socket. Vous pouvez faire en sorte que la connexion à travers un socket aboutisse au lancement d’un programme :

nc -vv -l -p 1337 -e ‘/bin/sh’ -t[/quote]
Faut transmettre à mysql les données à ajouter!