我有一个 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