use df no servidor distante com SSH e obtenha o tamanho disponível

1

Estou tentando usar este código (trabalhando em um servidor local) em um servidor distante no SSH

df |tail -n +2 | awk '{if ($6 == "/var") print $2; }'

meu código parece com isso

function dst_request {
# Effectue une requete sur la destination
local RESULT
if [ ${hostssh} ]
then # Destination SHH
  RESULT=$( ssh ${userssh}@${hostssh} "eval ${1}" )
else # Destination locale
echo "APPEL LOCAL"
  RESULT=$( eval ${1} )
fi
echo ${RESULT}
}

#place utilisée sur le disque distant
dddistantsize=$(dst_request "df")
echo ${dddistantsize}
dddistantsize_n='echo ${dddistantsize} |tail -n +2 | awk '{if ($6 == "/var") print $2; }''
echo "dddistantsize_n="${dddistantsize_n}
dddistantsize_mb=$(($dddistantsize_n/1024))

dddistantused=$(dst_request "df")
echo ${dddistantused}
dddistantused_n='echo ${dddistantused} |tail -n +2 | awk '{if ($6 == "/var") print $3; }''
echo "dddistantused_n="${dddistantused_n}
dddistantused_mb=$(($dddistantused_n/1024))

dddistantdispo=$(dst_request "df")
echo ${dddistantdispo}
dddistantdispo_n='echo ${dddistantdispo} |tail -n +2 | awk '{if ($6 == "/var") print $4; }''
echo "dddistantdispo_n="${dddistantdispo_n}
dddistantdispo_mb=$(($dddistantdispo_n/1024))

dddistantprcused=$(dst_request "df")
dddistantdispo_n='echo ${dddistantprcused} |tail -n +2 | awk '{if ($6 == "/var") print $5; }''

echo "Disque distant : "${dddistantused_mb}"Mb"/${dddistantsize_mb}"Mb plein à "${dddistantdispo_n}" (Libre ${dddistantdispo_mb}Mb)"

o problema é que a chamada distante me manda de volta uma única linha como resultado (ao invés de um resultado de múltiplas linhas como em local) ... e o awk não pode analisá-lo.

Preciso que o df distante não suporte a opção --output ...

    
por J.D 18.10.2018 / 16:03

1 resposta

0

eu encontrei uma solução

dddistantdf=$(dst_request "df /var")
#echo $dddistantdf | grep -o '[0-9]* [0-9]* [0-9]* *[0-9]*%'
dddistantsize_n='echo $dddistantdf | grep -o '[0-9]* [0-9]* [0-9]* *[0-9]*%' | awk '{print $1;}''
dddistantused_n='echo $dddistantdf | grep -o '[0-9]* [0-9]* [0-9]* *[0-9]*%' | awk '{print $2;}''
dddistantdispo_n='echo $dddistantdf | grep -o '[0-9]* [0-9]* [0-9]* *[0-9]*%' | awk '{print $3;}''
dddistantdispo_prc='echo $dddistantdf | grep -o '[0-9]* [0-9]* [0-9]* *[0-9]*%' | awk '{print $4;}''

trabalhando em servidor em inglês ou francês;)

    
por 19.10.2018 / 15:22