29 ноября, воскресенье 14:13
Bankir.Ru

Объявление

Свернуть
Пока нет объявлений.

Обновление с FTP сервера.

Свернуть
X
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения

  • Обновление с FTP сервера.

    Добрый день, уважаемые коллеги.
    Хотел поинтересоваться, как у Вас происходит скачивание с FTP сервера паки для форм клико, справочники, и тд тп.?
    На текущий момент мы в ручную всё это качаем, каждую форму в отдельную папку, достаточно муторное занятие.

    Если ли какой ни будь способ настроить какого ни будь бота или планировщик который будет автоматом подключаться к ftp и сканировать каталоги на наличие новых файлов и если такие имеют скачивать в определённые папки ?

    Заранее спасибо.

  • #2
    нам по почте приходит уведомление.
    после этого качаем вручную.

    уведомление такое:
    !info_FTP
    Информационное сообщение о размещении информации на FTP-сервере ГУ Банка России по Центральному федеральному округу
    Тип информации Сведения
    Дата размещения 03.07.2015
    Имя папки Verba\CUKSINFO
    Содержание
    Примечание Обновление папки "CUKSINFO" для СКЗИ "Верба-OW"

    Комментарий


    • #3
      Debiar,
      Вы сами видите, что оповещения приходят в текстовом виде. Неформализованные, т.е. сочинить какой-то алгоритм для автоматизации процесса затруднительно.
      Но самое противное, что приходит сообщение, а на сервере ничего нет, и когда появится неизвестно.
      Оповещение пишет один человек, рассылку делает другой, на Ftp выкладывает третий. В ЦБ народу больше, чем в маленьком банке, хе хе.

      Комментарий


      • #4
        Сообщение от ValeryM Посмотреть сообщение
        Debiar,
        В ЦБ народу больше, чем в маленьком банке, хе хе.
        Я так понял, что в Вашем маленьком банке бухи сами закачивают в клико новые паки. Вам крупно повезло
        Не гневите судьбу, скачивайте ручками
        VP

        Комментарий


        • #5
          И что? У Вас по -другому? Вы устанавливаете обновления сами, не бухи?
          Я рад за Вас!

          Комментарий


          • #6
            Сообщение от Debiar Посмотреть сообщение
            Добрый день, уважаемые коллеги.
            Хотел поинтересоваться, как у Вас происходит скачивание с FTP сервера паки для форм клико, справочники, и тд тп.?
            На текущий момент мы в ручную всё это качаем, каждую форму в отдельную папку, достаточно муторное занятие.

            Если ли какой ни будь способ настроить какого ни будь бота или планировщик который будет автоматом подключаться к ftp и сканировать каталоги на наличие новых файлов и если такие имеют скачивать в определённые папки ?

            Заранее спасибо.
            Сделано через батник. В нем прописан запуск wget.exe. Скачивает только то, что в файле <дата>.txt, расположенного в корне ftp.
            Куда и как дальше раскидывать полученные файлы, уже на усмотрение.

            Комментарий


            • #7
              Сообщение от R_o_m_a_n Посмотреть сообщение
              Сделано через батник. В нем прописан запуск wget.exe.
              напиши плиз содержимое этого батника.

              Комментарий


              • #8
                Сообщение от R_o_m_a_n Посмотреть сообщение
                Сделано через батник. В нем прописан запуск wget.exe. Скачивает только то, что в файле <дата>.txt, расположенного в корне ftp.
                Куда и как дальше раскидывать полученные файлы, уже на усмотрение.
                Хотелось бы тоже посмотреть, как работает такая схема, не могли бы продемонстрировать бат файл ?

                Комментарий


                • #9
                  @echo on

                  for /f "tokens=1-4 delims=. " %%i, in ("%DATE%") do set DD=%%i&set MM=%%j&set YYYY=%%k
                  SET YY=%YYYY:~-2%
                  SET mail_folder=C:\FTP\NewFile
                  if not exist c:\FTP\WgetLogs\ md c:\FTP\WgetLogs\

                  rem Скачиваем с ftp файл <дата>.txt
                  call wget -c http://192.168.21.25/ftp/%DD%-%MM%-%YY%.txt

                  rem Утилитой sed.exe переворачиваем слеши в скаченном txt и сохраняем с именем wget.txt
                  type %DD%-%MM%-%YY%.txt | Sed "s:\\:/:g" >wget.txt

                  rem Скачиваем с ftp файлы из файла wget.txt
                  for /f "skip=2" %%A in (wget.txt) do call wget -x -c -aWgetLogs\%YY%-%MM%-%DD%.txt -N ftp://192.168.21.25/%%A

                  rem Лог уже скопированных файлов
                  echo === %DD%-%MM%-%YYYY% ====================== >> c:\FTP\alreadyCopied.log

                  rem Папка для копирования скаченных файлов
                  if not exist %mail_folder%\%YYYY%-%MM%-%DD% md %mail_folder%\%YYYY%-%MM%-%DD%

                  rem Перебираем построчно txt файл и при необходимости копируем файлы
                  for /f "skip=2 tokens=*" %%A in (%DD%-%MM%-%YY%.txt) do @call :work %%A
                  goto eof

                  :work
                  set full_stroka=%1 %2
                  find /i "%full_stroka%" c:\FTP\alreadyCopied.log
                  if errorlevel 0 if not errorlevel 1 goto :eof

                  if not exist %mail_folder%\%YYYY%-%MM%-%DD% echo "Нет папки для копирования" >> c:\FTP\copy.log
                  echo Копируем c:\FTP\192.168.21.25\%1 в %mail_folder%\%YYYY%-%MM%-%DD%\*.* >> c:\FTP\copy.log
                  copy c:\FTP\192.168.21.25\%1 %mail_folder%\%YYYY%-%MM%-%DD%\*.* /Y >> c:\FTP\copy.log

                  echo %full_stroka% >> c:\FTP\alreadyCopied.log

                  :eof
                  del %DD%-%MM%-%YY%.txt /Q

                  exit /b

                  Комментарий


                  • #10
                    Сообщение от ValeryM Посмотреть сообщение
                    И что? У Вас по -другому? Вы устанавливаете обновления сами, не бухи?
                    Я рад за Вас!
                    Прикиньте. Не получилось заставить. Так что насчет повезло без сарказма, но с завистью.
                    VP

                    Комментарий


                    • #11
                      а как часто запускается этот батник?
                      сколько раз в день?

                      Комментарий


                      • #12
                        Сообщение от SHP Посмотреть сообщение
                        а как часто запускается этот батник?
                        сколько раз в день?
                        У меня запускается раз в день, утром.

                        Комментарий


                        • #13
                          Мы с помошью самописной утилиты делаем копию всего ftp на сетевой диск.
                          а то что приходит в !!!_NEWS той же утилитой рассылается всем заинтересованным лицам на почту
                          Таким образом и бухгалтерия и ИТ знает что пришло обновление в онлайн режиме
                          как то так...

                          Комментарий


                          • #14
                            почему-то ругается:
                            Копируем c:\FTP\10.0.8.1\!!!_NEWS\rassilka.xls в C:\FTP\NewFile\2015-07-08\*.*
                            The system cannot find the path specified.

                            т.е. не отрабатывается это:
                            copy c:\FTP\10.0.8.1\%1 %mail_folder%\%YYYY%-%MM%-%DD%\*.* /Y >> c:\FTP\copy.log

                            а это что такое и зачем?
                            c:\FTP\10.0.8.1\

                            Комментарий


                            • #15
                              Сообщение от SHP Посмотреть сообщение
                              почему-то ругается:
                              Копируем c:\FTP\10.0.8.1\!!!_NEWS\rassilka.xls в C:\FTP\NewFile\2015-07-08\*.*
                              The system cannot find the path specified.

                              т.е. не отрабатывается это:
                              copy c:\FTP\10.0.8.1\%1 %mail_folder%\%YYYY%-%MM%-%DD%\*.* /Y >> c:\FTP\copy.log

                              а это что такое и зачем?
                              c:\FTP\10.0.8.1\
                              1. Где то ошибка в пути. Может буква не русская. Попробуйте путь не набирать, а скопировать и вставить.
                              2. c:\FTP\10.0.8.1\ - это wget создает и сохраняет туда все скаченное.

                              Комментарий


                              • #16
                                он ничего не скачивает.
                                то, что скачать надо - видит.
                                т.е. на фтп заходит.
                                но не качает.
                                и на каждый путь потом ругается, что нет такого пути
                                The system cannot find the path specified.

                                и почемук-то не создаёт эту папку:
                                c:\FTP\10.0.8.1\

                                Комментарий


                                • #17
                                  он сохраняет каталог - файл txt
                                  потом пытается скачать call wget ...
                                  и ругается:
                                  SYSTEM_WGETRC = c:\progra~1/wget/etc/wgetrc
                                  wget: WgetLogs/15-07-08.txt: No such file or directory.

                                  я устанавливал WGET из файла wget-1.11.4-1-setup.exe
                                  т.е. в папке FTP есть и запускаемый батник и сам wget.exe и dll-ки.

                                  Комментарий


                                  • #18
                                    Сообщение от SHP Посмотреть сообщение
                                    он ничего не скачивает.
                                    то, что скачать надо - видит.
                                    т.е. на фтп заходит.
                                    но не качает.
                                    и на каждый путь потом ругается, что нет такого пути
                                    The system cannot find the path specified.

                                    и почемук-то не создаёт эту папку:
                                    c:\FTP\10.0.8.1\
                                    А с правами на создание/запись в директории все нормально?
                                    Плюс wget логи пишет. Попробуйте выполнить только одну команду: wget -x -c -awget.log -N ftp://192.168.21.25/08-07-15.txt

                                    Комментарий


                                    • #19
                                      Сообщение от SHP Посмотреть сообщение
                                      он сохраняет каталог - файл txt
                                      потом пытается скачать call wget ...
                                      и ругается:
                                      SYSTEM_WGETRC = c:\progra~1/wget/etc/wgetrc
                                      wget: WgetLogs/15-07-08.txt: No such file or directory.

                                      я устанавливал WGET из файла wget-1.11.4-1-setup.exe
                                      т.е. в папке FTP есть и запускаемый батник и сам wget.exe и dll-ки.
                                      У меня Wget 1.10.2 и в папке кроме wget.exe и утилиты sed.exe никаких dll нет

                                      Комментарий


                                      • #20
                                        Сообщение от R_o_m_a_n Посмотреть сообщение
                                        Попробуйте выполнить только одну команду: wget -x -c -awget.log -N ftp://10.0.8.1/08-07-15.txt
                                        да.
                                        он создал папку 10.0.8.1
                                        внутри положил 08-07-15.txt

                                        Комментарий


                                        • #21
                                          Сообщение от SHP Посмотреть сообщение
                                          да.
                                          он создал папку 10.0.8.1
                                          внутри положил 08-07-15.txt
                                          wget_sed.rar

                                          Комментарий


                                          • #22
                                            воот.
                                            с этими exe-шниками начал скачивать.
                                            СПАСИБО!!!!

                                            Комментарий


                                            • #23
                                              Спасибо. Полезный батничек.

                                              Может заодно, кто подскажет, как в XP из батника запустить модемную связь. А по окончании сессии ее разорвать.

                                              Комментарий


                                              • #24
                                                Сообщение от D.L. Посмотреть сообщение
                                                Спасибо. Полезный батничек.

                                                Может заодно, кто подскажет, как в XP из батника запустить модемную связь. А по окончании сессии ее разорвать.
                                                Если применительно к данной теме, то раньше, через модем, работало так (имя соединения, логин и пароль только пропишите свои ):
                                                --------------------------------------
                                                @echo on

                                                rem Данные для модема
                                                SET nameConnect = GUCB
                                                SET login =
                                                SET password =

                                                for /f "tokens=1-4 delims=. " %%i, in ("%DATE%") do set DD=%%i&set MM=%%j&set YYYY=%%k
                                                SET YY=%YYYY:~-2%
                                                SET mail_folder=C:\FTP\NewFile
                                                if not exist c:\FTP\WgetLogs\ md c:\FTP\WgetLogs\

                                                rem Дозваниваемся
                                                :reconnect
                                                rasdial %nameConnect% %login% %password%
                                                if %errorlevel% neq 0 goto reconnect


                                                rem Скачиваем с ftp файл <дата>.txt
                                                call wget -c http://192.168.21.25/ftp/%DD%-%MM%-%YY%.txt

                                                rem Утилитой sed.exe переворачиваем слеши в скаченном txt и сохраняем с именем wget.txt
                                                type %DD%-%MM%-%YY%.txt | Sed "s:\\:/:g" >wget.txt

                                                rem Скачиваем с ftp файлы из файла wget.txt
                                                for /f "skip=2" %%A in (wget.txt) do call wget -x -c -aWgetLogs\%YY%-%MM%-%DD%.txt -N ftp://192.168.21.25/%%A

                                                rem Отключаемся
                                                rasdial %nameConnect% /D
                                                sleep 60


                                                rem Лог уже скопированных файлов
                                                echo === %DD%-%MM%-%YYYY% ====================== >> c:\FTP\alreadyCopied.log

                                                rem Папка для копирования скаченных файлов
                                                if not exist %mail_folder%\%YYYY%-%MM%-%DD% md %mail_folder%\%YYYY%-%MM%-%DD%

                                                rem Перебираем построчно txt файл и при необходимости копируем файлы
                                                for /f "skip=2 tokens=*" %%A in (%DD%-%MM%-%YY%.txt) do @call :work %%A
                                                goto eof

                                                :work
                                                set full_stroka=%1 %2
                                                find /i "%full_stroka%" c:\FTP\alreadyCopied.log
                                                if errorlevel 0 if not errorlevel 1 goto :eof

                                                if not exist %mail_folder%\%YYYY%-%MM%-%DD% echo "Нет папки для копирования" >> c:\FTP\copy.log
                                                echo Копируем c:\FTP\192.168.21.25\%1 в %mail_folder%\%YYYY%-%MM%-%DD%\*.* >> c:\FTP\copy.log
                                                copy c:\FTP\192.168.21.25\%1 %mail_folder%\%YYYY%-%MM%-%DD%\*.* /Y >> c:\FTP\copy.log

                                                echo %full_stroka% >> c:\FTP\alreadyCopied.log

                                                :eof
                                                del %DD%-%MM%-%YY%.txt /Q

                                                exit /b
                                                Последний раз редактировалось R_o_m_a_n; 09.07.2015, 09:16.

                                                Комментарий


                                                • #25
                                                  Отличная штукенция, а главное работает.
                                                  Спасибо за отлично решение.

                                                  Комментарий


                                                  • #26
                                                    pvn59, Просто в нашем маленьком банке есть Управление бухгалтерской отчетности. Справочники и PAKи они грузят сами, т.к. обучены.
                                                    Врать не буду, есть несколько персонажей типа ф. 711, которым это делаю я, ну в общем не в напряг.

                                                    Комментарий


                                                    • #27
                                                      R_o_m_a_n,

                                                      Спасибо! Все работает!

                                                      Комментарий


                                                      • #28
                                                        эх госпада... учите PowerShell и будет вам счастье

                                                        Комментарий


                                                        • #29
                                                          Тогда уж лучше Python или Perl

                                                          Комментарий


                                                          • #30
                                                            добавлю свои 5 копеек - у меня аналогичный батник запускается каждые два часа, и чтоб не спамить - rassilka.xls копируется и анализируется размер файла - с предыдущим скаченным.
                                                            если различаются - тогда отправлять на почту.

                                                            Комментарий

                                                            Обработка...
                                                            X