Здраствуйте!
Есть задача, необходимо закачать с нескольких машин файлы. Ниже приведенный скрипт это делает, но проблема в том, что в нем не производится проверка на доступность машин и на корректность завершенность процесса ftp-закачки. В случае отрицательного результата,должно сбрасыватся в лог в обоих случаях. Закачка требуется ГАРАНТИРОВАННАЯ.
Насчет доступности - идей вообще нет.
А насчет завершенности, по коду последней комманды не получается. Так как все комманды выполняются в FTP-клиенте.#!/bin/sh
while read IP USER PASWD FILE
do
echo "$IP $FILE"
ftp -i -n $IP<<END
user $USER $PASWD
get $FILE ./$FILE.ftp
quit
END
done <ftpdbПодскажите, как организовать????
Спасибо заранее.
Удачи Всем!!!!
А wget не поможет ?
А кто что посоветует неинтерактивное ПО lkz scp.
Авторизация по ключам не подходит!
Заранее Спасибо!
Извините! Опечатки! Исправленное:
>А кто что посоветует неинтерактивное ПО scp.
>Авторизация по ключам не подходит!
>Заранее Спасибо!
>Здраствуйте!
>Есть задача, необходимо закачать с нескольких машин файлы. Ниже приведенный скрипт это
>делает, но проблема в том, что в нем не производится проверка
>на доступность машин и на корректность завершенность процесса ftp-закачки. В
>случае отрицательного результата,должно сбрасыватся в лог в обоих случаях. Закачка требуется
>ГАРАНТИРОВАННАЯ.
>Насчет доступности - идей вообще нет.
>А насчет завершенности, по коду последней комманды не получается. Так как все
>комманды выполняются в FTP-клиенте.
>
>#!/bin/sh
>while read IP USER PASWD FILE
>do
>echo "$IP $FILE"
>ftp -i -n $IP<<END
>user $USER $PASWD
>get $FILE ./$FILE.ftp
>quit
>END
>done <ftpdb
>
>Подскажите, как организовать????
>Спасибо заранее.
>Удачи Всем!!!!wget/curl/pavuk/ncftp - ncftpget, ncftpput, ncftpls
ping - проверяешь доступность машины
nc - netcat проверяешь доступность FTP сервиса
далее по вкусу верхнее и по завершению сравниваешь размеры
Здраствуйте!
>
>wget/curl/pavuk/ncftp - ncftpget, ncftpput, ncftpls
>
>ping - проверяешь доступность машины
>nc - netcat проверяешь доступность FTP сервиса
>далее по вкусу верхнее и по завершению сравниваешь размерыЧто-то не соображу как проводить проверку по размеру!
Можно идею ввиде наброска скрипта...
Заранее спасибо!!!
Удачи всем!!
>Здраствуйте!
>>
>>wget/curl/pavuk/ncftp - ncftpget, ncftpput, ncftpls
>>
>>ping - проверяешь доступность машины
>>nc - netcat проверяешь доступность FTP сервиса
>>далее по вкусу верхнее и по завершению сравниваешь размеры
>
>Что-то не соображу как проводить проверку по размеру!
>Можно идею ввиде наброска скрипта...идея в виде ls filename получения размера и сравнения с закаченным
или скаченным, но она не избавляет от ошибки, если бы была известна
md5-checksum тогда другое дело.>Заранее спасибо!!!
>Удачи всем!!
>>Здраствуйте!
>>>
>>>wget/curl/pavuk/ncftp - ncftpget, ncftpput, ncftpls
>>>
>>>ping - проверяешь доступность машины
>>>nc - netcat проверяешь доступность FTP сервиса
>>>далее по вкусу верхнее и по завершению сравниваешь размеры
>>
>>Что-то не соображу как проводить проверку по размеру!
>>Можно идею ввиде наброска скрипта...
>
>идея в виде ls filename получения размера и сравнения с закаченным
>или скаченным, но она не избавляет от ошибки, если бы была известна
>
>md5-checksum тогда другое дело.
>
>>Заранее спасибо!!!
>>Удачи всем!!Ну вообще теоретически ясно. Но вот практически.
Файл скачался (по Вашему совету, воспользовался утилитами ncat и ncftpget).
ls получаю размер моего файла, а как получить мне размер удаленного файла ну ни как не могу понять!!!И вот еще один вопрос, уже как бы скрипт сработал файлы перекачались.
Но с одного закачка завершается следующей репликой (хотя файл скачивается вроде нормально), которую возвращает ncftpget:
Could not read reply from control connection -- timed out.
После чего выдает итог скорости скачивания с репликой
ncftpget ./arc/arc_01102002: coukd not retrieve remote file
В скрипте осуществляется проверка на корректность скачивания, по коду ncftpget. В данной ситуации он не 0, поэтому предпринимается попытка снова скачать
ncftpget сравнивает сам оба файла (удаленный и некорректно скачанный(по первой попытке) и выдает что о оба файла одинаковые (по размеру я так думаю) и мол передача файла не требуется.
Спасибо.
>>>Здраствуйте!
>>>>
>>>>wget/curl/pavuk/ncftp - ncftpget, ncftpput, ncftpls
>>>>
>>>>ping - проверяешь доступность машины
>>>>nc - netcat проверяешь доступность FTP сервиса
>>>>далее по вкусу верхнее и по завершению сравниваешь размеры
>>>
>>>Что-то не соображу как проводить проверку по размеру!
>>>Можно идею ввиде наброска скрипта...
>>
>>идея в виде ls filename получения размера и сравнения с закаченным
>>или скаченным, но она не избавляет от ошибки, если бы была известна
>>
>>md5-checksum тогда другое дело.
>>
>>>Заранее спасибо!!!
>>>Удачи всем!!
>
>Ну вообще теоретически ясно. Но вот практически.
>Файл скачался (по Вашему совету, воспользовался утилитами ncat и ncftpget).
>ls получаю размер моего файла, а как получить мне размер удаленного файла
>ну ни как не могу понять!!!
>
>И вот еще один вопрос, уже как бы скрипт сработал файлы перекачались.
>
>Но с одного закачка завершается следующей репликой (хотя файл скачивается вроде нормально),
>которую возвращает ncftpget:
>Could not read reply from control connection -- timed out.
>После чего выдает итог скорости скачивания с репликой
>ncftpget ./arc/arc_01102002: coukd not retrieve remote file
>В скрипте осуществляется проверка на корректность скачивания, по коду ncftpget. В данной
>ситуации он не 0, поэтому предпринимается попытка снова скачать
>ncftpget сравнивает сам оба файла (удаленный и некорректно скачанный(по первой попытке) и
>выдает что о оба файла одинаковые (по размеру я так думаю)
>и мол передача файла не требуется.
>Спасибо.если файл закачивается и на удаленной стороне можно посмотреть его
размер командой ls, тогда можно сравнить размер исходного и того который
upload.Если передача заканчивается не нулевым кодом, то сеанс ftp сорвался,
следующий желательно запускать с докачкой, если возможно.Если ncftpget говорит что одинаковые, следует это дело проверить в
разных ситуациях и если он прав, остановить на этом процедуру.
а lftp в данном случае не поможет?