2014-02-08 3 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]:/ 

Я проверил и это работает!

1

Это может быть более удобно использовать CurlFtpFS для монтирования sftp папку. Учебное пособие по "using curlftpfs to mount a FTP folder" объясняет детали.

И затем используйте стандартные команды для достижения того, что вы хотите сделать.

или для sshfs следуйте руководству по how to Mount a SFTP Folder (SSH + FTP).

Не уверен, что sftp вы имеете в виду.

+0

обновленный вопрос – clarkk

Смежные вопросы