Sleds/utils/sequencelogic-fs-usage.sh

36 lines
1.3 KiB
Bash

#!/bin/bash
# Usage: sequencelogic-fs-usage.sh [dir]
DIR=$1
if [ "$DIR" = "" ]; then
DIR=/sequencelogic
fi
if [ -d "${DIR}" ]; then
READONLY=false
CHKDIR=$DIR
if [ "${DIR}" = "/" ]; then
CHKDIR=/tmp
fi
touch "${CHKDIR}/.touchable" 2>/dev/null
if [ $? != 0 ]; then
READONLY=true
fi
CHECKED=`date +"%Y-%m-%dT%H:%M:%S"`
/bin/echo -n ${CHECKED} 2>/dev/null > "${CHKDIR}/.checked"
VERIFIED=$(<"${CHKDIR}/.checked")
if [ "${PLATFORM}" = lin64 -o `uname` = Linux ]; then
df=`df -BG -P ${DIR} | tail -1 | awk -v dir=${DIR} -v readonly=${READONLY} -v checked="${CHECKED}" -v verified="${VERIFIED}" '{pct=$5; used=$3; sub(/%/,"",pct); printf "[{\"status\":\"OK\",\"host\":\"%s\",\"used\":\"%ldGB\",\"fs_used_pct\":%d,\"device\":\"%s\",\"readonly\":%s,\"checked\":\"%s\",\"verified\":\"%s\"}]\n", dir, used, pct, $1, readonly, checked, verified}'`
else
df=`df -g ${DIR} | tail -1 | awk -v dir=${DIR} -v readonly=${READONLY} -v checked="${CHECKED}" -v verified="${VERIFIED}" '{pct=$5; used=$3; sub(/%/,"",pct); printf "[{\"status\":\"OK\", \"host\":\"%s\",\"used\":\"%ldGB\",\"fs_used_pct\":%d,\"device\":\"%s\",\"readonly\":%s,\"checked\":\"%s\",\"verified\":\"%s\"}]\n", dir, used, pct, $1, readonly, checked, verified}'`
fi
else
df="{\"status\":\"ERROR\",\"error\":\"Directory not found\",\"host\":\"${DIR}\"}"
fi
sleep 1
echo $df
exit 0