首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何确认用mget下载了多少文件?

如何确认用mget下载了多少文件?
EN

Stack Overflow用户
提问于 2016-11-07 18:30:04
回答 1查看 147关注 0票数 0

那么,检查sftp / mget是否实际提取文件的最简单方法是什么?

我当前的脚本如下:

代码语言:javascript
复制
  sftp  ${SFTP_USER}@${SFTP_SERVER} <<EOF 
     cd ${SFTP_SOURCE_DIR}
     mget ${FILEPATTERN}* ${AL_FTP_DIR}
     bye 
  EOF

但是,在测试期间,如果没有与文件模式匹配的文件,则不会返回错误,并且脚本将在不知情的情况下继续运行。

假设我已经可以在匹配${FILEPATTERN}*的当前目录中拥有文件。我怎么才能知道那个小女孩是否真的拉了什么东西?

我最好的解决办法是使用临时目录..。检查然后移动..。耸耸肩。但我想一定要有一个更优雅的解决方案?

代码语言:javascript
复制
  TDIR="AL_TMP_$$"
  mkdir $TDIR

  sftp  ${SFTP_USER}@${SFTP_SERVER} <<EOF 
     cd ${SFTP_SOURCE_DIR}
     mget ${FILEPATTERN}* ${AL_FTP_DIR}/${TDIR}
     bye 
  EOF

  CHKCNT=`ls -ltr $TDIR | wc -l`

  if [ ${CHKCNT} -eq 1 ];
  then
     echo "ERROR: No files found on FTP server."
     rmdir $TDIR
     exit 1
  fi
  mv $TDIR/* .
  rmdir $TDIR
EN

回答 1

Stack Overflow用户

发布于 2016-11-07 19:06:51

代码语言:javascript
复制
# count files before transfer
files=( "$AL_FTP_DIR"/* )
n_before=${#files[@]}

# transfer
sftp ...

# count files after transfer
files=( "$AL_FTP_DIR"/* )
n_after=${#files[@]}

diff=$((n_after - n_before))
echo "$diff files were transferred"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40472067

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档