Έχεις έλεγχο στο που το πρόγραμμα γράφει τα log entries? Aν ναι, όρισε το να κάνει log σε ένα named pipe, το οποίο θα διαβάζεις από την άλλη πλευρά π.χ με ένα python script, το οποίο θα κάνει parse τα στατιστικά που σε ενδιαφέρουν και θα τα γράφει στο database file που θέλεις.<br>
<br><br><div class="gmail_quote">2012/10/24 George Notaras <span dir="ltr"><<a href="mailto:gnot@g-loaded.eu" target="_blank">gnot@g-loaded.eu</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="HOEnZb"><div class="h5">On 23/10/2012 11:08 μμ, George Notaras wrote:<br>
> Ένα background service τυπώνει στατιστικά στοιχεία στο logfile/syslog<br>
> όταν δεχτεί τα signals USR1 και USR2 (διαφορετικά στατιστικά το κάθε ένα).<br>
><br>
> Ποιος είναι ο αποτελεσματικότερος τρόπος να συλλεγούν αυτά τα στατιστικά<br>
> και να μπουν σε μια database, πχ rrd file;<br>
><br>
> Καταλήγω μόνο στη λύση των 2 βημάτων:<br>
><br>
> 1) Αποστολή signal --> τα στατιστικά αποθηκεύονται στο Logfile σε Ν γραμμές.<br>
> 2) Parsing των Ν τελευταίων γραμμών από το logfile.<br>
><br>
> Μου φαίνεται λίγο μπακαλίστικο κι έχει μερικά μειονεκτήματα όπως αυτά:<br>
><br>
> α) Κανονικά στο Βήμα 2 θα πρέπει να βεβαιωθεί ότι με το Βήμα 1 πρόλαβαν<br>
> να τυπωθούν τα νέα στατιστικά στο log.<br>
> β) Γεμίζει το log με άχρηστα data, τα οποία αποθηκεύονται ούτως η άλλως<br>
> σε db.<br>
><br>
> Υπάρχει κάποιος καλύτερος τρόπος; Για παράδειγμα, θα μπορούσε ένα script<br>
> να στείλε το SIGUSR1 και να παρέμβει με κάποιο τρόπο ώστε να πάρει αυτό<br>
> τα data αντί να γραφτούν αυτά στο log;<br>
><br>
<br>
</div></div>Δεν βλέπω να υπάρχει άλλος τρόπος. Είναι μάλλον αδύνατο να παρέμβει<br>
κανείς στο πώς θα τυπώσει το prog τα στατιστικά του. Η μόνη λύση είναι<br>
το custom patch, κάτι που όμως δεν θα κάνω.<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
--<br>
linux-greek-users mailing list -- <a href="http://lists.hellug.gr" target="_blank">http://lists.hellug.gr</a></div></div></blockquote></div><br>