如何自动重试 SFTP 连接尝试?
How do I automatically retry an SFTP connection attempt?
是否有选项让 Bash 重试 SFTP 连接 n 次或 x 秒?我找不到任何关于使 shell 脚本自动重试的信息,无论错误原因如何(服务器已关闭、密码错误等)。
您可以使用 until
循环。
STAT=1
until [ $STAT -eq 0 ]; do
sftp user@host
STAT=$?
done
上面的语法会一直持续到 sftp 成功,如果你需要一定次数那么你可以使用一个 while
循环和计数器。
counter=1
while [ $counter -gt 0 ]; do
sftp user@host
counter=$(($counter-1))
done
试三遍:
c=0; until sftp user@server; do ((c++)); [[ $c -eq 3 ]] && break; done
带有错误消息的长版本:
c=0
until sftp user@server; do
((c++))
if [[ $c -eq 3 ]]; then
echo error
break
fi
done
是否有选项让 Bash 重试 SFTP 连接 n 次或 x 秒?我找不到任何关于使 shell 脚本自动重试的信息,无论错误原因如何(服务器已关闭、密码错误等)。
您可以使用 until
循环。
STAT=1
until [ $STAT -eq 0 ]; do
sftp user@host
STAT=$?
done
上面的语法会一直持续到 sftp 成功,如果你需要一定次数那么你可以使用一个 while
循环和计数器。
counter=1
while [ $counter -gt 0 ]; do
sftp user@host
counter=$(($counter-1))
done
试三遍:
c=0; until sftp user@server; do ((c++)); [[ $c -eq 3 ]] && break; done
带有错误消息的长版本:
c=0
until sftp user@server; do
((c++))
if [[ $c -eq 3 ]]; then
echo error
break
fi
done