2

У меня есть машина только с доступом sftp. Нет SSH, нет оболочки, нет Rsync. Когда я получу файл с помощью /usr /bin /sftp, могу ли я возобновить прерванную передачу?

4 ответа4

2

Я использую 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 в команде get в sftp чтобы возобновить ранее прерванную загрузку.

Пример:

echo -e "lcd ~/localFolder\nget -ar *" | sftp username@host.com:/some/path

Альтернативно написано как

sftp username@host.com:/some/path <<EOF
lcd ~/localFolder
get -ar *
EOF

Однако это не приводит к автоматическому переподключению к серверу, если соединение прерывается. lftp - лучшая альтернатива для этой проблемы.

1

Текущий день sftp поддерживает команду reget , чтобы возобновить загрузку, прерванную на полпути.

1

Я только что нашел программу lftp , и она поддерживает get -c для возобновления загрузки. Если sftp не может этого сделать, думаю, я буду придерживаться lftp.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .