sftp 批处理文件帮助

sftp 批处理文件帮助

我有一个 sftp 脚本,我正在尝试连接 sftp 目录并将文件复制到本地计算机中。在远程 sftp 目录中,我有一个文件“note.lst”,该文件包含我需要从 ftp 导入到的文件名本地目录。

 sftp
 cd  /root/ftp1
 lcd /root/foleder1
 cat note.lst > ${2}
 mget ${2}
 bye

在上面的命令行中,我试图 cat 列表文件并将 cat o/p 的数据移动到变量 ${2} 中并获取它们。

以下方法不起作用。任何人都可以帮助我。

谢谢。

答案1

您可能希望将其分为两个操作:一个是获取列表,另一个是获取列出的文件。

# Fetch the list
scratch=$(mktemp -d)
trap "rm -fr $scratch" EXIT
scp user@host:/root/ftp1/note.lst $scratch/filelist.txt
# transmogrigy the list into the SFTP script:
awk 'BEGIN{ print "lcd /root/foleder1"; print "cd /root/ftp1" } { print "get \"" $0 "\"" }' > $scratch/script.sftp
# execute the SFTP script
sftp -b $scratch/script.sftp user@host

相关内容