从 sftp 服务器获取多个最新文件
Get multiple latest files from sftp server
我正在尝试使用 bash shellscript 从远程服务器获取最后 50 个最近修改的文件。目前,我可以使用以下代码通过 sftp 获取一个文件。这个问题有什么好的解决方案?
我没有在我的服务器上存储来自远程服务器的所有文件的“副本”。所以我不相信 rsync 在这种情况下有效。
fileName=$(echo "ls -1tr" | sftp myid@removeserver | tail -1)
echo "get $fileName $local_directory" | sftp myid@removeserver
当前 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
我假设文件名不包含换行符。
我正在尝试使用 bash shellscript 从远程服务器获取最后 50 个最近修改的文件。目前,我可以使用以下代码通过 sftp 获取一个文件。这个问题有什么好的解决方案?
我没有在我的服务器上存储来自远程服务器的所有文件的“副本”。所以我不相信 rsync 在这种情况下有效。
fileName=$(echo "ls -1tr" | sftp myid@removeserver | tail -1)
echo "get $fileName $local_directory" | sftp myid@removeserver
当前 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
我假设文件名不包含换行符。