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

avatar
作者
筋斗云
阅读量:0

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

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!