Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Копирование файлов с FTP


Vlad_Psycho

Рекомендуемые сообщения

Здравствуйте!

Буду признателен, если поможете решить одну задачку, связанную с пересылкой файлов.

Что имеется-

FTP- сервер с паролями и юзернэймами.

Что требуется-

Найти способ (написать скриптик), как можно автоматически копировать файлы с фтп на компьютер и с компьютера на фтп.

Например-

Приходит на работу оператор, включает компьютер и запускает программу по учету платежей (к примеру). А программа эта запускает скрипт, который заходит на ФТП под определенным паролем (оператор его не должен знать) и копирует оттуда файлы в свою директорию.

Помогите пожалуйста с решением этой задачи :unsure:

Спасибо!

Ссылка на комментарий
Поделиться на другие сайты

Создаём BAT-файл примерно следующего содержания:

ftp -s:ftp_script_file.txt >logfile.txtcd c:\Destination_directoryrar e -y new_files.rardel new_files.rar rar a -y -df work_files.rar *.txt

В каталоге батника должен присутствовать текстовый файл ftp_script_file.txtследующего содержания:

open 195.110.206.12      (вместо айпишника можно указать DNS-имя хоста)login                             (логин)password                     (пароль)get new_files.rar c:\Destination_directory\new_files.rar     (получаем архив с новыми файлами)delete new_files.rar         (удаляем файл с сервера, если это нужно)disconnect                       (отключение от сервера)quit                                  (выход из консольного ftp.exe)
Ссылка на комментарий
Поделиться на другие сайты

Я знаю, что вопрос глупый, но я к сожалению не знаю ДОСовских команд.

Как указать на файл, который лежит в определенной директории на ФТП?

Например, файл лежит на ФТП сервере в директории BALANS/Tek_God?

В остальном все работает- спасибо за помощь :blink:

Ссылка на комментарий
Поделиться на другие сайты

Vlad_Psycho

файл лежит на ФТП сервере в директории BALANS/Tek_God?
после копирования архивы оказываются битыми

удаленная директория указывается командой cd ,а чтобы файлы не бились, есть команда binary То есть чуть измени скрипт Dartman-а под свои нужды:

open 195.110.206.12 login              passwordcd /BALANS/Tek_God/binaryget new_files.rar c:\Destination_directory\new_files.rardelete new_files.rardisconnect quit
я к сожалению не знаю ДОСовских команд

Это все есть во встроенной справке Windows. Или запусти Пуск-Выполнить-ftp и там набери слово help

Ссылка на комментарий
Поделиться на другие сайты

С бинарными файлами я разобрался, спасибо, у меня последний вопрос (я надеюсь ;) )-

Что надо изменить, чтобы копировать с компьютера на ФТП?

Ссылка на комментарий
Поделиться на другие сайты

И если это не сложно, Вы не могли бы объяснить, что значит каждая из команд в файле-

ftp -s:ftp_script_file.txt >logfile.txt

cd c:\Destination_directory

rar e -y new_files.rar

del new_files.rar

rar a -y -df work_files.rar *.txt

Ссылка на комментарий
Поделиться на другие сайты

Я тут наверное запарил всех :)

Почитал Хелп и записал вот так-

open 195.110.206.12

login

password

bin

cd /BALANS/Tek_God/

put new_files.rar

disconnect

quit

Единственная проблемка- файл не копируется, а переносится. Команды send и recv делают тоже самое. А как все-таки скопировать файл, не перенося его?

Посижу еще, может еще чего додумкаю :)

P.S.

Хотел бы услышать комментарии по первому файлу ;)

Ссылка на комментарий
Поделиться на другие сайты

ftp -s:ftp_script_file.txt >logfile.txt - Запустить ftp.exe, параметры взять из файла ftp_script_file.txt, результаты работы вместо экрана выводить в файл logfile.txt

cd c:\Destination_directory - На локальном диске перейти в каталог, куда был скачан новый файл, согласно скрипта, взятого из файла ftp_script.txt.

rar e -y new_files.rar Извлечь из полученного архива все файлы.

del new_files.rar - удалить полученный архив на локальном диске.

rar a -y -df work_files.rar *.txt - добавить полученные файлы в архив work_files.rar; согласно маски *.txt добавляются только текстовые файлы.

Ссылка на комментарий
Поделиться на другие сайты

Единственная проблемка- файл не копируется, а переносится. Команды send и recv делают тоже самое.

Ничего подобного. send и put копируют локальный файл на фтп, а get и recv копируют файл с фтп-шника на комп. Для групп файлов mput и mget, перед ними лучше вставлять команду prompt, чтобы ftp.exe у тебя ничего не спрашивало.

Это скорей всего del new_files.rar в батнике удаляет файл, а ты и думаешь, что он перенесся :(

P.S. Может тебе удобней будет какой-нибудь программой с графическим фейсом воспользоваться, сделать задание по синхронизации локального файла с файлом на FTP (расставить галочки :)) и вбить в планировщик?

SitePublisher http://www.sitepublisher.net/ или SyncBack http://www.2brightsparks.com/ например.

Изменено пользователем Premium
Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...