shell sftp下载远程文件

时间:2014-02-08 18:55:26

标签: linux shell sftp

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

这会连接到服务器并列出当前目录..但是如何找到按文件名排序的最后一个文件并下载呢?

sshpass -p $pass sftp root@$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 个答案:

答案 0 :(得分:2)

也许那个

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

ssh user@server "find /path/to/dir -type f -printf 'get %p\n' | sort -n | tail -1" > batchfile

获取文件:

sftp -b batchfile user@server:/

我检查过它有效!

答案 1 :(得分:1)

使用CurlFtpFS挂载sftp文件夹可能更方便。 "using curlftpfs to mount a FTP folder"上的教程解释了详细信息。

然后使用标准命令来实现您想要的目标。

sshfs关注how to Mount a SFTP Folder (SSH + FTP)上的教程。

不确定您的意思是sftp