Disktransfer

From Ye Ole Stash
Jump to: navigation, search
#!/bin/bash
 
#Set your Drives. I would automate this but sometimes you want a little sometimes you want a lot. Sometimes you want df shows sometimes you want to include your RAM disks as well. You get the idea....
#Version 0.3
 
drives="dm-0 dm-1 dm-2 drbd2 md2"
 
bytesinsector=`blockdev --getss /dev/sda` #this is found by fdisk -l /dev/$device (look for Units = cylinders of 8 * 512 = 4096 bytes) or via "blockdev --getss /dev/sda" the 512 is bytes in sector in this case.
 
for i in $drives; do
    echo $i | grep -o dm-[0-9] > /dev/null
    if [ $? -ne "0" ];then
        df -P | grep $i | awk '{print $1,$6}'
    else
        dmsetup ls | grep -w [`echo $i | cut -d- -f2`] | awk '{print $1}'
    fi
    echo "Read Bytes (sectors * $bytesinsector)"
    expr `cat /proc/diskstats | grep $i | awk '{print $6}'` \* $bytesinsector
    echo "Write Bytes (sectors * $bytesinsector)"
    expr `cat /proc/diskstats | grep $i | awk '{print $10}'`  \* $bytesinsector
done

  • This one works ok for systems without Devicemapper devices.
#!/bin/bash
 
 
drives="md0 md1 md2 md3 md4"
bytesinsector=512 #this is found by fdisk -l /dev/$device (look for Units = cylinders of 8 * 512 = 4096 bytes) the 512 is bytes in sector in this case.
 
for i in $drives; do
    df -P | grep $i | awk '{print $1,$6}'
    echo "Read Bytes (sectors * $bytesinsector)"
    expr `cat /proc/diskstats | grep $i | awk '{print $6}'` \* $bytesinsector
    echo "Write Bytes (sectors * $bytesinsector)"
    expr `cat /proc/diskstats | grep $i | awk '{print $10}'`  \* $bytesinsector
done
Personal tools