Автоматизация работы по FTP

Тема в разделе "Софт", создана пользователем RubiN, 24.05.05.

  1. RubiN

    RubiN Активный участник

    6.620
    422
    автоматизация работы по Ftp

    кто-нибудь делал сценарий? нужно копировать файл с FTP сервера в заданное время.
     
  2. Tiamat

    Tiamat Читатель

    1.198
    3
    Доводилось решать подобное.
    Сначала хотел найти FTP клиента, с возможностью задания расписания работы, макси для заказчки (надо было делать по сути зеркало с сервера, то есть закачать, все то, что еще не закачивалось). Но ни одна программа в полной мере не соответствовала моим запросам.
    Посему пришлось написать на JavaScript небольшую приблуду. А в качестве FTP клиента использовал ReGet 1.7 бОльшего по функционалу и не требовалось, а эта версия зато бесплатная.
    Формируешь эталонный файл конфигурации для закачки.
    Скрипт запускаешь по шидулеру. Скрипт сначала копирует файл конфигурации в папку ReGet (ReGet потом его портит), и запускает прогу с этим файлом. ReGet закрывается сам по неактивности закачек. Скрипт завершает работу после закрытия ReGet.
     
  3. RubiN

    RubiN Активный участник

    6.620
    422
    я пробовал DAPом. вся проблема в списке закачек, нужно каждый день качать один и тот же файл. Его туда (в список) надо будет опять вносить, т.к. он помечается как уже скаченный. Стандартными средствами наверное тоже можно как-то сделать?
     
  4. azazello

    azazello Активный участник

    529
    0
    есть компонент ChilkatFtp для VBasic... скрипт простейший ставишь в scheduler и все...
     
  5. Tiamat

    Tiamat Читатель

    1.198
    3
    Zombie
    ежели есть возможность формировать список закачки в виде файла конфигурации, то можно сделать его один раз, сохранить в укромном месте. А для запуска каждый раз копировать скриптом в папку проги.
     
  6. paraNoId

    paraNoId Участник

    236
    0
    автоматизация работы по Ftp


    Вариант №1
    getfile.py:
    Код:
    #!/usr/bin/env python
    from ftplib import FTP
    ftp = FTP('ftp.server.dom');
    ftp.login();
    ftp.retrbinary('RETR /dir/file.ext', open('file.ext', 'wb').write)
    ftp.quit()
    Правда, нужен установленный питон. :)

    Вариант №2
    getfile.cmd:
    Код:
    x:\windows\system32\ftp.exe -s:y:\dir\script.ftp ftp.server.dom
    script.ftp:
    Код:
    anonymous
    my@email
    get /dir/file.ext
    quit
    Украсить обработкой ошибок и обеспечить запуск в заданное время шедулером.
     
  7. RubiN

    RubiN Активный участник

    6.620
    422
    paraNoId, выручил :beer:
    вариант 2 подошел, возникли проблемы с переводом строки в файле сценария.. теперь все работает.
     
    Последнее редактирование: 26.05.05
  8. paraNoId

    paraNoId Участник

    236
    0
    В смысле? Весь сценарий в одну строку?
    Как ни странно, но у меня такой вариант (хотя именно так написано в МСДН) не работает. Только с переводами сторки.
     
  9. RubiN

    RubiN Активный участник

    6.620
    422
    я просто взял шаблон с форума, ну там похоже что-то затесалось. сделал как положено - работает.
     
  10. Vadim

    Vadim Участник

    455
    0
    Ya takie vsehi cherez DTS v SQL Server delal. A potom prosto schedule ego kak JOB
     
  11. Spawn

    Spawn Активный участник

    904
    0
    как я понял это под форточкой стоит проблема. В никсах все проще :) создаешь кронтаб и в нем wget -i /путь_к_файлу_в_котором_записан_линк_на-файл_который_надо_скачать/*.txt и все прописать чтобы каждый день в одно и тоже время качалось.....
     
  12. RubiN

    RubiN Активный участник

    6.620
    422
    unix в кронтабе архивирует, а потом вин по FTP забирает. все, топик можно закрывать.
     
ноутбук acer extensa 15 ex215 54 510n 15.6 | Интегрируй приложения вместе с Альбато: Яндекс.Метрика и Яндекс.Директ - синхронизация за 5 минут! | Интегрируй приложения вместе с Альбато: заказы интеграции мой склад - синхронизация за 5 минут! | письменный стол с ящиками и полками | круизы из москвы на теплоходе на 2025 год расписание