У меня есть машина только с доступом sftp. Нет SSH, нет оболочки, нет Rsync. Когда я получу файл с помощью /usr /bin /sftp, могу ли я возобновить прерванную передачу?
4 ответа
Я использую 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
Вы можете использовать опцию -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
- лучшая альтернатива для этой проблемы.
Текущий день sftp
поддерживает команду reget
, чтобы возобновить загрузку, прерванную на полпути.
Я только что нашел программу lftp
, и она поддерживает get -c
для возобновления загрузки. Если sftp
не может этого сделать, думаю, я буду придерживаться lftp.