Bash code to check free disk space
December 05, 2010
I have a script on a Linux server that downloads a bunch of very large files, and I want it to stop running if the disk is low on space. The way I found to do it is very verbose. Breaking it out line by line:
FREE=`df -H # free space for all volumes
| grep -E '^/dev/xvda3' # the main disk
| awk '{ print $4 }' # the free space column
| cut -d'G' -f1 # strip the G (for gigabytes)
| awk -F '.' '{ print $1 }'` # strip decimal parts
if [[ $FREE -lt 7 ]]; then
echo "Less than 7GB free space left, stopping."
exit 1
fi
There’s gotta be a simpler way to do that… anyone know what that is?
