36 lines
1.3 KiB
Bash
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
|