仅当文件名由我的file.txt文件中的任何名称组成时,才从远程复制所有文件。
file.txt包含
之类的名称rahul
jon
babra
目前我这样做:
while read p; do
scp -i somefile.pem myuser@myip:myfolder/\*$p\* .
done<file.txt
但是这会为我的file.txt中的每个名字打开与remote的连接。
我正在寻找优化来在一个连接中提供所有文件?
答案 0 :(得分:3)
打开每个后续scp
可以重复使用的主连接。有关使用更安全的控制路径的建议,请参阅Control*
中的各种man ssh_config
选项。
# Don't run a command (-N), but open a reusable connection (-M and -S)
# then go to the background (-f)
ssh -fNM myuser@myip -S "%C"
while read p; do
# Reuse the open connection (-S)
scp -i somefile.pem -S "%C" myuser@myip:myfolder/\*$p\* .
done < file.txt
# Close the background connection
ssh -S "%C" -O exit