PDA

Показать полную графическую версию : [решено] По ssh файл не скачивается полностью


Гарин
23-01-2009, 12:03
Добрый день.
Столкнулся с такой проблемой.
Бэкап скачивается с сервера при помощи psftp.exe (из прог серии putty).
Сделан батник вида

psftp -v -C -2 -be -pw "passw" -b 1.scr root@"host"

В 1.scr прописано открытие папки с скачивание из неё командой mget нужного файла.

Сегодня увидел что архив (вес немалый - более 1 Гб) не качается весь. То скачается 150 метров, то 600...
Но весь не скачивается.
Не могу понять в чем дело и что значит указанная ошибка на картинке ниже.

Amin
01-02-2009, 01:04
Посмотрите, что пишет в логи а) демон sshd (/var/log/ssh...) б) сама ОС (/var/log/messages)
Учитывая, что мы через ssh вытаскиваем куда более значительные объемы, предположу, что у вас либо слишком параноидально-криво настроен файерволл (бывают такие умельцы, увлекающиеся бешеными модулями iptables без понимания логики их работы), либо нестабильно работающая сеть.

Гарин
02-02-2009, 09:42
Да наверное дело в инете было...
А вот вопрос - нельзя как либо сделать так, чтобы прога проверяла целостность файла, и если он не весь, то начинала бы скачку заново....или при обрыве соединения?
Ну или что то типа того =)

Naiad
02-02-2009, 20:17
Может запустить второй раз с опцией -c (--continue)? :)

Гарин
02-02-2009, 22:19
Дело в том, что скачивается бэкап, глубокой ночью....
Все автоматом, по расписанию, и запускать вручную не совсем премлимо.
Может как то иначе можно?

mar
03-02-2009, 00:45
как насчет curl - по sftp?
а вот тут (http://linsovet.com/content/%D0%B4%D0%BE%D0%BA%D0%B0%D1%87%D0%BA%D0%B0-%D1%81-scp-%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D1%8B-%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D1%8F-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC%D1%8B) предлагаюи вариант с rsync (и с тем же curl)

или, как вариант - wget

Гарин
03-02-2009, 09:42
Спасибо за ссылки, но скачивается с Linux сервера на виндовый.
И надо что то под нее.

mar
03-02-2009, 21:31
Гарин,
под виндовый - виндовыйм wget-ом

Amin
07-02-2009, 00:14
А вот вопрос - нельзя как либо сделать так, чтобы прога проверяла целостность файла, и если он не весь, то начинала бы скачку заново....или при обрыве соединения ?

Можно. Самый хороший и действительно надежный способ - это сразу после снятия бэкапа считать для всех его файлов контрольные хэши - MD5 или SHA1, а после скачки - их проверять. Не сошлось - качаем битый файл заново. В никсах для этого служат утилиты md5sum и sha1sum. Если ваш клиент - виндовс, то вы можете либо воспользоваться пакетом UnixTools (где есть утилиты md5sum.exe и sha1sum.exe) [это архив весом около 12 Мб, портированные в виндовс юниксовые тулзы. Не путать с ServicesForUnix от М$ (300 Мб пак) !!!], либо воспользоваться сценарием на PowerShell.

Все эти ключи `-с `, докачки, ловля обрывов соединения - это все ерунда, для *бэкапов* не пригодная.




© OSzone.net 2001-2012