Я отримую помилку "втрачене з'єднання" під час використання ssh і 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

Коли я виконую це як частину сценарію, іноді я отримую " lost connection "Помилка і виконання сценарію припиняється, але іноді це працює.

Чи можна перевірити доступність підключення та повторити спробу, доки все не буде успішно виконано?


Ви ловите код повернення, чи не можете ви просто оточити, якщо помилки?
Paul

Я певною мірою виправив розмітку і код (деякі частини не працювали б так, як ви їх написали). Оскільки ви говорите, що він працює, тільки що він дає вам помилку підключення, я припускаю, що ви тільки що мали проблеми вставки коду. Я додав білий простір для зручності читання.
Daniel Andersson

Відповіді:


1

Припускаючи, що інша частина коду працює:

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.