温馨提示×

shell如何判断sftp上传是否成功

小亿
449
2023-11-13 17:33:08
栏目: 编程语言

在Shell中,可以使用变量$?来判断上一个命令的执行结果。如果命令执行成功,则$?的值为0;如果命令执行失败,则$?的值为非零值。

根据这个特性,可以使用以下方法判断sftp上传是否成功:

  1. 使用sftp命令上传文件,并将上传结果保存到一个临时文件中:

    sftp user@host:/path/to/destination localfile > upload.log 2>&1
    

    这里将sftp命令的输出重定向到upload.log文件中。

  2. 检查upload.log文件的内容,如果文件中包含类似"Successfully uploaded"的关键字,则表示上传成功;否则表示上传失败。

    if grep -q "Successfully uploaded" upload.log; then
        echo "Upload successful"
    else
        echo "Upload failed"
    fi
    

    这里使用grep命令来搜索upload.log文件中是否包含"Successfully uploaded"关键字,并通过if语句判断上传结果。

注意:这种方法只是判断sftp命令的执行结果,而不一定表示文件上传成功。可能存在网络中断、权限问题等导致上传失败但命令仍然执行成功的情况。如果需要更可靠的判断文件是否上传成功,可以考虑使用其他方法,如检查目标服务器上文件的存在与大小。

0