检查sftp连接状态,如果失败则尝试其他IP

时间:2014-03-28 14:41:33

标签: linux shell sftp


我尝试做的是使用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"
   }
}

由于

1 个答案:

答案 0 :(得分:0)

找到了一种方法来做我想做的事。问题是因为我怀疑“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

希望它可以帮助任何有这个问题的人