Повторите команду scp не более 10 раз, пока она не завершится успешно

Возможно, здесь бесстыдно скопировано решение @Jeff Schaller. Один вызов grep, так что, возможно, немного быстрее.

#!/bin/ksh93
for((i=0;i<=600;i++))
do
  d=$(printf '%s|%(%b %d %H:%M:%S)T' "${d}" "${i} seconds ago")
done
grep -E "^(${d:1}) Error" logfile
1
27.06.2021, 12:11
1 ответ

Измените нужные параметры или создайте новую переменную для файла.

#!/bin/bash

# Trap interrupts and exit instead of continuing the loop
trap "echo Exited!; exit;" SIGINT SIGTERM

MAX_RETRIES=10
i=0

# Set the initial return value to failure
false

while [ $? -ne 0 -a $i -lt $MAX_RETRIES ]
do
 i=$(($i+1))
 scp -P 3337 my_local_file.txt user@host:/remote_dir/
done

if [ $i -eq $MAX_RETRIES ]
then
  echo "Hit maximum number of retries, ending."
fi
1
28.07.2021, 11:22

Теги

Похожие вопросы