2014-02-08 63 views
0

如何在命令行中通过sftp下载最新的文件?shell sftp下载远程文件

这连接到服务器并列出当前目录..但我怎么才能找到按文件名排序的最后一个文件并下载它?

sshpass -p $pass sftp [email protected]$host << EOF 
cd /var/www/bak/db 
dir 
quit 
EOF 

更新

#!/bin/sh 

pass="pwd" 
host="ftps://host:22" 

mkdir /ftp 
cd /ftp 
curlftpfs $host /ftp -o user=root:$pass 
ls 

错误

Error connecting to ftp: gnutls_handshake() failed: An unexpected TLS packet was received. 

回答

2

也许这

获取最新的文件并保存到文件batchfile

ssh [email protected] "find /path/to/dir -type f -printf 'get %p\n' | sort -n | tail -1" > batchfile 

并获得文件:

sftp -b batchfile [email protected]:/ 

我检查和它的作品!