我尝试做的是使用 shell 脚本通过 sftp 发送文件。我尝试连接到第一个 IP,如果此连接失败,我会尝试另一个 IP。
问题是,我似乎无法捕获 sftp 状态。
这是我尝试过的:
#!/bin/bash
sftp -oIdentityFile=path_to_private_key USER@IP1:PATH <<EOF
if [[ $? -eq 0 ]]; then
put myfile
ls
quit
else
echo "ERROR"
fi
EOF
你知道如何做这样的事情吗:
sftp IP1
if(success){
put file
quit
}
else{
sftp IP2
if(success2){
put file
quit
}
else{
echo "Error"
}
}
谢谢
最佳答案
找到了一种方法来做我想做的事。问题正如我怀疑的“EOF/if”
这是我发现的:
#!/bin/bash
sftp -oIdentityFile=path_to_private_key USER@$IP1:PATH <<-EOF1
put myfile
quit
EOF1
if [[ $? -ne 0 ]]; then
sftp -oIdentityFile=path_to_private_key USER@$IP2:PATH <<-EOF2
put myfile
quit
-EOF2
if [[ $? -ne 0 ]]; then
echo "ERROR"
fi
fi
希望对遇到此问题的人有所帮助
关于linux - 检查 sftp 连接状态,如果失败则尝试另一个 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22715930/