Eu recebo erro de "perda de conexão" ao usar ssh e scp

1
mySCP="scp -q -o StrictHostKeyChecking=no -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o HostbasedAuthentication=no"

rm -Rf /tmp/logdata
mkdir /tmp/logdata

$mySCP -r xyz2384:/d/d1/run_logs/results/trail/log.txt /tmp/logdata/
myResult=$?

if (( $myResult == 0 )); then
    echo "SUCCESS – Log data copying, at $(date +'%m/%d/%Y %H:%M:%S')."
else
    echo "**FAILED – Log data copying, at $(date +'%m/%d/%Y %H:%M:%S')."
    echo "$myResult"
    exit
fi

Quando executo isso como parte de um script, às vezes recebo um erro " lost connection " e a execução do script termina, mas às vezes funciona.

Existe alguma maneira de verificar a disponibilidade da conexão e tentar novamente até que tudo seja executado com sucesso?

    
por Pradeep Singh 20.04.2012 / 08:30

1 resposta

1

Supondo que o resto do seu código funcione:

mySCP="scp -q -o StrictHostKeyChecking=no -o BatchMode=yes -o UserKnownHostsFile=/dev/null -o HostbasedAuthentication=no"

rm -Rf /tmp/logdata
mkdir /tmp/logdata

myCmd="$mySCP -r xyz2384:/d/d1/run_logs/results/trail/log.txt /tmp/logdata/"

while true; do
    $myCmd
    myResult=$?
    date=$(date +'%m/%d/%Y %H:%M:%S')
    if [ $myResult -eq 0 ]; then
        echo "SUCCESS – Log data copying, at $date."
        break
    else
        echo "**FAILED – Log data copying, at $date."
        echo "mySCP return code: $myResult"
        echo "Retrying..."
        # You can probably increase this delay
        sleep 10
    fi
done
    
por 20.04.2012 / 09:06