/usr/bin/sftp 可以恢复文件传输吗?

/usr/bin/sftp 可以恢复文件传输吗?

我有一台只能通过 sftp 访问的机器。没有 ssh、没有 shell、没有 rsync。当我使用 /usr/bin/sftp 获取文件时,我可以让它恢复中止的传输吗?

答案1

我使用 lftp 将我的所有照片从 NAS 自动同步到我的廉价网络服务器。如果照片发生变化,它会自动更新。

#!/bin/ash
SOURCE=/volume2/PHOTO/2011
BACKUPDIR=/foto.whatever.com/albums/2011

lftp -u username,password ftp.whatever.com << EOF
mirror -R -n -I *.jpg -I *.JPG -X @eaDir/ -X Collage/ -X ‘whatever/’ -X .piccache/ -X .recent/ -X Originals/ -X *.Db $SOURCE $BACKUPDIR
quit

答案2

您可以使用命令-a中的选项来恢复先前中止的下载。getsftp

例子:

echo -e "lcd ~/localFolder\nget -ar *" | sftp [email protected]:/some/path

或者写为

sftp [email protected]:/some/path <<EOF
lcd ~/localFolder
get -ar *
EOF

但是,如果连接中断,这并不会自动重新连接到服务器。lftp是解决此问题的更好方法。

答案3

当前sftp支持reget恢复中途中断的下载的命令。

答案4

无密码 ssh 访问的一个命令行如下所示:

echo get -ar /file/path/file.data | sftp login@server

相关内容