Não conheço um caminho mais fácil, mas este snippet bash pode ajudá-lo a analisar o que você precisa do iotop:
iotop --batch --pid 1 > log
line_num=0
while read line; do
line_num=$(($line_n+1))
if [[ $(($line_num % 3)) -eq 0 ]]; then
#print Column 3
echo $line | awk '{print $3}'
fi
done < log > processed_file
#Get total of column three:
cat processed_file | (tr '\n' +; echo 0) | bc
Na verdade, pode ser mais fácil ler / proc / $ PID / io a cada x segundos:
val=0
total=0
counter=0
pid=2323
while [[ $counter < 100 ]]; do
counter=$(($counter +1 ))
#Change the sed number for different line, 5 is read_bytes
val=$(cat /proc/$pid/io | sed -n '5p' | awk '{ print $2 }')
total=$(($total + $val))
echo $total
sleep 1
done
Na verdade, parece que o script acima está errado, porque parece que /proc/<pid>/io
é apenas o total, então, realmente, pegue-o uma vez, espere o tempo, pegue de novo, encontre a diferença e não há sua resposta . Você pode querer olhar para o código-fonte e descobrir seu tipo de dados para ver se ele eventualmente se envolve. Provavelmente não é um problema para um pequeno tablet.