[РЕШЕНО] Регламентное задание Windows для получения/отправки файлов с/на FTP

Тема в разделе "Локальные сети (ЛВС), Hardware ("Железо"), Windows", создана пользователем nbIpKuH_BaH9I, 24 апр 2014.

  1. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Всем привет. Имеется две базы. Есть FTP-сервер. На нем хранятся файлы. Из одной базы и из другой базы данные выгружаются и кидаются на FTP. Потом регл задание 1С забирает и удаляет нужный файл. С этим вопросов нет. Недавно я поставил на поддержку одну из конфигураций. И она требует обновления. Точек очень много. Что хочу сделать?! При загрузке винды на удаленной точке надо чтобы ввинда соединялась с FTP сервером и проверяла нужную папку на наличие в ней файла обновления. И копировала его в нужную папку на жестком диске. А затем чтобы запускала мой батник для обновления конфигурации. Как это сделать? Или может кто какой другой путь посоветует?
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    чего проще написать батник и засунуть в автозагрузку?
  3. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Проблема в написании батника...Я не знаю как это сделать...Пример нашел. Но под себя не получается подстроить. Знаний не хватает. Да и английское написание мой мозг плохо воспринимает.
  4. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Да там все элементарно...

    1)ftp -? параметры командной строки
    2) ftp запуск
    в режиме:
    ? справка по командам
    quit выход из режима

    стукни в личку или аську если не можешь написать... помогу
  5. inferno2015
    Offline

    inferno2015

    Регистрация:
    7 май 2014
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Есть же программы которые генерируют подобный доступ к серверам
  6. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
  7. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    rem ***** Отключаем вывод на экран *****
    echo off

    rem ***** Запишем все значения переменных *****
    set ftp_host=ftp.dars.company:21012
    set ftp_username=ftpuser
    set ftp_pass=123456789
    set file_transport=transport.txt
    set file_name=Update.cfu
    set dir_from=update
    rem set dir_to="D:\1C\Update"

    rem ***** Создаем файл с командами ftp *****
    echo open %ftp_host%>%file_transport%
    echo user %ftp_username% %ftp_pass%>>%file_transport%
    echo cd %dir_from%>>%file_transport%
    echo lcd %dir_to%>>%file_transport%
    echo get %file_name%>>%file_transport%
    echo bye>>%file_transport%

    rem ***** Запускаем на исполнение *****
    ftp -v -n -s:%file_transport%

    rem ***** Удаляем файл с командами ftp *****
    del %file_transport%
    Вот написал батник такой. Но все равно тупит. Что не так в нем?
  8. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    вопрос номер раз - конфа, которую поставил на поддержку - на базе БСП или нет?
    второй - даже если нет - внеси в нее кусок от БСП (обновление) и не мучайся.
    обновления публикуй на web-сервере и по http забирай их оттуда

    а с батником - тупит в чем проявляется
  9. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Нет, БСП нет.
    Нюансов много. Во первых, не стабильный инет. Это самое главное. Поэтому решил реализовать все через FTP. Удаленных точек много уже. А будет еще больше. Усложнять все нельзя. И средствами 1С это лучше не делать. Я тоже сначала про это думал. Решил остановиться на батнике. Чисто для обновления и создания копии я его написал. Работает превосходно. Нареканий нет вообще. Логи сохраняет, все дела. К тому же люди, которые будут обслуживать это в дальнейшем к 1С не имеют отношения.
    Тупит, в смысле просто висит и все. Ничего не копирует с FTP. ХЗ, что еще сделать...
  10. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    FTP не работает из-за того что вы не включили бинарный режим.. Файл-то не текстовый передаете. Т.е.
    ...
    echo lcd %dir_to%>>%file_transport%
    echo binary
    echo get %file_name%>>%file_transport%
    ...
    nbIpKuH_BaH9I нравится это.
  11. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Спасибо. Как раз сегодня запланировал тестирование. Проверю, опишусь.
  12. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Код:
    rem ***** Отключаем вывод на экран *****
    echo off
    
    rem ***** Запишем все значения переменных *****
    set ftp_host=ftp.dars.company
    set ftp_username=ftpuser
    set ftp_pass=123456
    set file_transport=transport.txt
    set file_name=Update.cfu
    set dir_from="/update"
    set dir_to="D:\1C\Update"
    
    rem ***** Создаем файл с командами ftp *****
    echo open %ftp_host%>%file_transport%
    echo user %ftp_username% %ftp_pass%>>%file_transport%
    echo cd %dir_from%>>%file_transport%
    echo lcd %dir_to%>>%file_transport%
    echo binary
    echo get %file_name%>>%file_transport%
    echo bye>>%file_transport%
    
    rem ***** Запускаем на исполнение *****
    ftp -v -n -s:%file_transport%
    
    rem ***** Удаляем файл с командами ftp *****
    del %file_transport%
    Не канает.
    Безымянный.JPG
    Опять просто висит.
  13. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    АААААААААААААА. Если просто из командной строки запустить с указанием вот такого файла txt с параметрами, то все нормально. Все копирует. Бесит уже. Что с ним не так? Безымянный.JPG
  14. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Если показать сообщения "echo on", то видно, что файл с параметрами создается, но в бесконечном цикле записывает в него строчки с параметрами.
  15. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Код:
    rem установиим переменные с адресом FTP, логином и паролем
    
    rem ********Адрес FTP***********
    set URLFTP=ывдлфоыжвдлыовжфвдыфовыфо
    rem ********Логин и пароль FTP***********
    set loginpassFTP=фывыфыфвыф
    rem ********Папка на FTP для текущего отделения***********
    set FTPLocation=47
    
    rem ********Логин и пароль к 1С***********
    set User="Admin"
    set Password="987123"
    
    rem ********Путь к папке с логами и бекапами***********
    set LogLocation=D:\1C\Log\
    set BackupLocation=D:\1C\Backup\
    
    rem ********На случай, если нужно будет создать папки с текущей датой. Тогда заменить предыдущие строки на эти***********
    rem set LogLocation=D:\1C\Log\%VDATE%\
    rem set BackupLocation=D:\1C\Backup\%VDATE%\
    
    rem ********Все имена необходимо указывать на английском языке***********
    rem ********Устанавливаем переменные дата для создания папок***********                                 
    @chcp 1251
    set VDATE=%date%
    
    rem ********Устанавливаем переменные дата и время. Т.е. дата и время разбираются на части. Затем собираются и составляется по кускам***********
    set VDATETIME=%DATE: =0% %TIME: =0%
    for /f "tokens=1-7 delims=/-:., " %%a in ( "%VDATETIME%" ) do (set VDATETIME=%%a.%%b.%%c_%%d_%%e)
    
    rem *****************1 ЭТАП*********************
    
    rem забираем с FTP-сервера файл обновления
    d:\1C\curl.exe ftp://%loginpassFTP%@%URLFTP%/Update/Update.cfu -o d:\1C\Update\Update.cfu
    
    rem *****************2 и 3 ЭТАП*********************
                  
    rem ********Прописываем путь к файлу. К папке COMMON писать нельзя. Почему то не работает***********                                 
    set EnginePath="C:\Program Files\1cv8\8.3.3.687\bin\1cv8.exe"
    
    rem ********Путь к файлу с обновлением***********
    set CfuLocation="D:\1C\Update\Update.cfu"
    
    rem ********Путь к папке с базой, если она файловая конечно же. Если серверная, то приписать имя кластера и поменять параметр конфига на S. CONFIG /S***********
    set Cluster="D:\1C\Base"
    
    rem ********Если требуется создать папки с датой, то просто разкомментировать***********
    rem MD "D:\1C\Backup\%VDATE%"
    rem MD "D:\1C\Log\%VDATE%"
    
    rem ********Указать имя базы как в окне выбора информационной базы. Можно по русски. По какой то причине school_46 не проканал(((((***********
    set BaseName=TD_SPP
    
    rem ********Делаем бекап базы***********
    start "" /wait %EnginePath% CONFIG /F %Cluster%/%BaseName% /N %User% /P %Password%  /DumpIB %BackupLocation%%BaseName%_%VDATETIME%.dt /Out %LogLocation%%BaseName%_%VDATETIME%_Backup.log
    
    rem ********Копируем лог бекапа и сам бекап на FTP***********
    d:\1C\curl.exe -T "%LogLocation%%BaseName%_%VDATETIME%_Backup.log" ftp://%URLFTP%/%FTPLocation%/Log/ --user %loginpassFTP%
    d:\1C\curl.exe -T "%BackupLocation%%BaseName%_%VDATETIME%.dt" ftp://%URLFTP%/%FTPLocation%/Backup/ --user %loginpassFTP%
    
    rem ********Выполняем обновление***********
    start "" /wait %EnginePath% CONFIG /F %Cluster%/%BaseName% /N %User% /P %Password%  /UpdateCfg %CfuLocation% /UpdateDBCfg /Out %LogLocation%%BaseName%_%VDATETIME%_Update.log
    
    rem ********Копируем лог обновления на FTP***********
    d:\1C\curl.exe -T "%LogLocation%%BaseName%_%VDATETIME%_Update.log" ftp://%URLFTP%/%FTPLocation%/Log/ --user %loginpassFTP%
    
    Короче все сделал с помощью курла. Вот готовый вариант.
    1) Берет файл обновления с FTP.
    2) Создает dt.
    3) Обновляет конфигурацию.
    4) Закидывает логи и dt на FTP в соответствующую папку.

    Вложения:

    • curl.zip
      Размер файла:
      237,5 КБ
      Просмотров:
      5
  16. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну дЫк конечно... Мне просто ЛЕНЬ было писать... Думал что это очевидно...
    т.е. ДОЗАПИСАТЬ команду в скрипт.
    echo binary>>%file_transport%
  17. TopicStarter Overlay
    nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.975
    Симпатии:
    397
    Баллы:
    104
    Ладно. Решил другим путем немного.

Поделиться этой страницей