aboutsummaryrefslogtreecommitdiffstats
path: root/elchos/commands/io
blob: eb04ae9b8362fd65361b2235bc4998452de5b59c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/zsh
printf '%-10s %-7s %-7s %-7s %-7s\n'  IFACE rxkB/s txkB/s rxTotal txTotal
sar -n DEV 1 3 | grep Average: | grep -v IFACE | grep -v ' lo ' | while read line;do
  dev=$(echo $line | awk  '{print $2}')
  rxkb=$(echo $line | awk '{print $5}')
  txkb=$(echo $line | awk '{print $6}')
  total_bytes_r=$(cat /proc/net/dev | grep ${dev}: | awk '{print $2}')
  total_bytes_t=$(cat /proc/net/dev | grep ${dev}: | awk '{print $10}')
 
  printf '%-10s %-7s %-7s %-7s %-7s\n'  $dev $rxkb $txkb $((total_bytes_r / (1024*1024))) $((total_bytes_t / (1024*1024)))
done
printf "%-10s %-7s %-7s\n" "DSK" "rxkB/s" "txkB/s"
sar -p -d 1 3 | grep Average: | grep -v ' DEV ' |while read line;
do
  dsk=$(echo $line | awk '{print $2}')
  rd_sec=$(echo $line | awk '{print $4}')
  wr_sec=$(echo $line | awk '{print $5}')
  if echo $dsk | egrep -q '(sd|hd|vd)';then
    # TODO for some reason 0.00 can only be interpreted correctly as arithmetic
    # expession by zsh
    #
    # rd is counted in blocks (which is 512 bytes)
    printf "%-10s %-7.2f %-7.2f\n" "/dev/$dsk" "$((rd_sec*2))" "$((wr_sec*2))"
  fi
done