Come posso stampare l'output di vnstat -lsu un file? quello che ho provato:
vnstat -l &> file
ma si blocca e basta
Come posso stampare l'output di vnstat -lsu un file? quello che ho provato:
vnstat -l &> file
ma si blocca e basta
Risposte:
Rimuovi l' lopzione. Dalla vnstatpagina man:
-l, --live mode
Display current transfer rate for the selected interface in real time until interrupted. Statis‐
tics will be shown after interruption if the runtime was more than 10 seconds. An optional mode
parameter can be used to select between the displaying of packets per second (mode 0) and trans‐
fer counters (mode 1) during execution. --style can also be used to affect the layout of the
output.
Quindi, -lrende l' vnstatoutput di visualizzazione in "modalità live", in costante aggiornamento, ecco perché non è possibile acquisire l'output. Se si desidera un formato facilmente analizzabile, utilizzare
vnstat --dumpdb
Per salvare l'output standard basta
vnstat > log.txt
Se quello che vuoi è l'attuale velocità di upload e download, vnstatnon è lo strumento giusto per il lavoro. Prova sardal sysstatpacchetto (vedi man sarper maggiori informazioni):
sudo apt-get install sysstat
sudo sar -n DEV 1 1
Per estrarre l'attuale * download e upload rate per l'interfaccia wlan0di saruscita 's fare:
sudo sar -n DEV 1 1 | grep wlan0 | tail -n 1 | gawk '{print "Down: "$5,"Up: "$6}'
* Cosa significa "attuale"? sar(e qualsiasi altro metodo) richiederà alcuni millisecondi per generare output.
Non so se vuoi stampare solo il riepilogo finale su file da un certo periodo in cui stai per monitorare l'attività di rete, ma puoi imbrogliare in questo modo:
vnstat -l -i <device> >> dump.txt
L'unico problema è che vnstat scriverà l'output su file ogni secondo, quindi non è il modo più conveniente. Per un monitoraggio continuo con registro per circa un secondo, terdon ha risposto alla tua domanda.
vnstatfai attenzione al problema che sovrascrive ripetutamente la riga di stato usando backspaces, quindi nell'output vedrai solo l'ultimo stato. Puoi sostituire le sequenze di backspaces ed espandere gli stati su singole righe usando ad esempio:sed -re $'s/\b[\b ]+\b/\\n/g' dump.txt