将文件从多个节点收集到一个节点,然后在另一个节点上将其删除

时间:2018-11-30 19:35:48

标签: linux bash

我正在尝试弄清楚我的语法出了什么问题。当我在一个for循环中/ usr / bin / scp多个文件(名称不同)时,我只会在预期目录中得到一个文件,而不是多个文件。请告知。

for HOST in $HOST_LIST
do
   ssh $HOST "ls /hello/world/temp/glout/filename_ofmultiplefiles*.txt"
   RESULT=`echo $?`
   if [[ $RESULT = "0" ]]
      then
      for FILE in `ssh $HOST "ls /hello/world/temp/glout/filename_ofmultiplefiles*.txt"`
         do
         ssh $HOST "/usr/bin/scp $FILE app4:/home/sftp/jo/horizon/"
         echo "Moved file $FILE from $HOST to /home/sftp/jo/horizon/ on app4" >> /home/sftp/jo/glout.log
         ssh $HOST "/bin/rm /hello/world/temp/glout/filename_ofmultiplefiles*.txt"
      done
      else
         echo "No files to be moved from $HOST" >> /home/sftp/jo/glout.log
   fi
done

我需要移动四个文件(名称不同),但是即使日志显示它移动了所有四个文件,我也只能移动第一个文件。我猜它正在覆盖一个文件四次。但是如何获取多个文件?

0 个答案:

没有答案