【问题标题】:Get multiple latest files from sftp server从 sftp 服务器获取多个最新文件
【发布时间】:2023-10-10 04:47:01
【问题描述】:
我正在尝试使用 bash shellscript 从远程服务器获取最近修改的 50 个文件。目前,我可以使用以下代码通过 sftp 获取一个文件。这个问题有什么好的解决方案?
我没有在我的服务器上存储来自远程服务器的所有文件的“副本”。所以我不相信 rsync 在这种情况下有效。
fileName=$(echo "ls -1tr" | sftp myid@removeserver | tail -1)
echo "get $fileName $local_directory" | sftp myid@removeserver
【问题讨论】:
标签:
linux
bash
shell
ssh
sftp
【解决方案1】:
使用当前的bash 和for 循环:
destdir="/tmp"
# get last 50 file names and save in array fileName
mapfile -t fileName < <(echo "ls -1tr" | sftp myid@removeserver | tail -50)
# get files from array fileName and save in $destdir
for f in "${fileName[@]}"; do echo "get \"$f\" \"$destdir\""; done | sftp myid@removeserver
我假设文件名不包含换行符。