#!/bin/bash # usage: share_size # Creates an "ini" output file suitable for php parse_ini_function which describes # the size takes up on the cache disk and each data disk. Since this # uses the 'du' command, could take awhile. share="$1" output="/var/local/emhttp/$share.$2" pools=${3//,/ } total=0; echo "Computing disk usage for $share..." rm -f "$output" function check { if [[ -e "$1/$2" ]] ; then echo "calculating $1 usage..." size=$(du -sb "$1/$2"|cut -f1) echo "$(basename "$1")=$size" >>"$output" total=$(($total + $size)) fi } for pool in $pools; do check "/mnt/$pool" "$share" done; while IFS=$'\n' read -r disk; do check "$disk" "$share" done <<< $(ls -vd /mnt/disk[0-9]*) echo "disk.total=$total" >>"$output" echo "total disk usage: $total"