# Check free FTP space
# Written by Philipp Noack

echo "exit" | lftp
if [ ! $? == 0 ]; then
        echo "Problem: lftp is NOT installed"
        exit 2
fi

if [[ -z $1 || -z $2 || -z $3 || -z $4 || -z $5 || -z $6 ]]; then
        echo "Usage: check_ftpspace HOSTNAME USER PASS WARN CRIT TOTAL"
        exit 2
fi

FTPHOST=$1
FTPUSER=$2
FTPPASS=$3

WARN=$4 # in MByte
CRIT=$5 # in MByte
TOTALMB=$6 # in MByte

USEDKB=$(echo du . | lftp -u $FTPUSER,$FTPPASS $FTPHOST | sed '$!d' | sed s/[.]//g)
USEDMB=$(( $USEDKB / 1024 ))

TOTALKB=$(( $TOTALMB * 1024  ))

FREEKB=$(( $TOTALKB - $USEDKB  ))
FREEMB=$(( $FREEKB / 1024 ))

if [ $FREEMB -lt $CRIT ]; then
        echo "CRITICAL: Free disk space: $FREEMB MBytes"
        exit 2
fi

if [ $FREEMB -lt $WARN ]; then
        echo "WARNING: Free disk space: $FREEMB MBytes"
        exit 1
fi

USEDWARN=$(( $TOTALMB - $WARN ))
USEDCRIT=$(( $TOTALMB - $CRIT ))

echo "FTP OK - free space: $FREEMB MB ($USEDMB MB out of $TOTALMB
MB)|ftp_disk_usage=$USEDMB;$USEDWARN;$USEDCRIT;0;$TOTALMB"

exit 0