在Linux服务器上的Shell脚本中的FTP期间获取远程位置的文件数

问题描述 投票:0回答:1

Requirement:需要基于远程位置(Linux服务器)上存在的通配符条目获取文件计数,并将其存储在变量中以进行验证]

尝试以下代码

export ExpectedFileCount=$(ftp  -inv $FTPSERVER >> $FTPLOGFILE <<END_SCRIPT
user $FTP_USER $FTP_PASSWORD
passive
cd $PATH
ls -ltr ${WILDCARD}*xml| wc -l | sed 's/ *//g'
quit
END_SCRIPT)

但是代码是将代码段存储在变量中,并在每次调用变量时执行命令。

请在脚本中建议更改,以执行一次脚本并将其值存储在变量中

linux shell unix ftp remote-server
1个回答
0
投票
这似乎可行(在Ubuntu上,没有关于可移植性的承诺):

export ExpectedFileCount=`ftp -in $FTPSERVER << END_SCRIPT | tee -a $FTPLOGFILE | egrep -c '\.xml$' user $FTP_USER $FTP_PASSWORD passive cd $REMOTE_PATH ls -l quit END_SCRIPT`

问题:

  • [$REMOTE_PATH代替远程目录的$PATH(因为$PATH具有特殊含义)
  • 仅在ftp会话中执行简单的ls -l,并且在本地解析输出,因为它不支持任意的shell命令
  • <<
© www.soinside.com 2019 - 2024. All rights reserved.