加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

shell – 如果在sftp中不存在,如何创建目录

发布时间:2020-12-16 01:09:27 所属栏目:安全 来源:网络整理
导读:如果登录到sftp服务器后它不存在,我想创建一个目录. test.sh sftp name@example.com EOFmkdir testput test.xmlbyeEOF 现在我调用test.sh并每次上传不同的文件来测试文件夹.在运行时 mkdir test 第一次它工作,第二次它抛出无法创建目录:失败错误? 如果目录
如果登录到sftp服务器后它不存在,我想创建一个目录.

test.sh

sftp name@example.com << EOF
mkdir test
put test.xml
bye
EOF

现在我调用test.sh并每次上传不同的文件来测试文件夹.在运行时

mkdir test

第一次它工作,第二次它抛出无法创建目录:失败错误?

如果目录不存在且如果存在则不创建目录在sftp中如何创建目录.

我理解这个帖子已经过时了,已被标记为已回答,但答案在我的情况下无效.谷歌搜索关于“sftp检查目录”的第二页,所以这里有一个更新,可以节省我几个小时.

使用EOT,您无法捕获由于找不到目录而导致的错误代码.我找到的工作是创建一个包含调用指令的文件,然后捕获该自动调用的结果.

以下示例使用sshpass但我的脚本也使用与sshkeys进行身份验证的相同方法.

创建包含说明的文件:

echo "cd $RemoteDir" > check4directory
cat check4directory; echo "bye" >> check4directory

设置权限:

chmod +x check4directory

然后使用批处理功能建立连接:

export SSHPAA=$remote_pass
sshpass -e sftp -v -oBatchMode=no -b check4directory $remote_user@$remote_addy

最后检查错误代码:

if [ $? -ge "1" ] ; then
  echo -e "The remote directory was not found or the connection failed."
fi

此时,您可以退出1或启动其他操作.请注意,如果SFTP连接因密码或地址错误等其他原因而失败,则错误将使操作跳闸.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读