Sto cercando di convertire l'output di vmstat in un file CSV utilizzando Python, così ho usare qualcosa di simile per convertire in formato CSV e aggiungere la data e l'ora come coloumns:tubi in streaming in Python
vmstat 5 | python myscript.py >> vmstat.log
Il problema che sto riscontrando è che blocca durante il tentativo di iterare sys.stdin. Sembra che il buffer di input non venga scaricato. Non voglio passare all'infinito e masterizzare il tempo del processore mentre sto provando a misurarlo. Ecco una semplice dimostrazione che blocca sulla linea 3:
import sys
for line in sys.stdin:
sys.stdout.write(line)
sys.stdout.flush()
C'è un modo semplice per accedere al flusso immediatamente come grep fa, senza pause mentre il buffer di input si riempie?
grep può farlo, ad esempio 'vmstat 5 | grep 0' stamperà felicemente le righe che contengono uno 0 allo stdout –
Sì, è necessario solo cambiare il modo in cui legge dallo stdin vedere edit – fabrizioM
Questa soluzione funziona, grazie! –