Настройка оборудования и программного обеспечения

Автоматизированная загрузка файлов на FTP и отправка файлов на электронную почту. Доступ к FTP-серверу из командной строки Windows Ftp команды с текстовым файлом

Ранее мы использовали FileZilla Client, бесплатный FTP-клиент для Windows, который можно использовать для доступа и передачи файлов на ваш FTP-сервер. Мы также увидели, как мы можем получить доступ к FTP-серверу с помощью NotePad ++, альтернативы Notepad для Windows. В этом посте мы обсудим, как получить доступ к FTP из командной строки.

Командная строка Windows позволяет получить доступ к серверу с помощью команды FTP. Подключившись к серверу, вы можете передавать файлы и скачивать файлы с вашего ПК, просто используя команды. Я также перечислю некоторые команды FTP, которые будут полезны со временем.

Доступ к FTP-серверам из командной строки

Вот шаги, которые покажут вам, как использовать FTP из командной строки:

Обновление за март 2020 года:

Теперь мы рекомендуем использовать этот инструмент для вашей ошибки. Кроме того, этот инструмент исправляет распространенные компьютерные ошибки, защищает вас от потери файлов, вредоносных программ, сбоев оборудования и оптимизирует ваш компьютер для максимальной производительности. Вы можете быстро исправить проблемы с вашим ПК и предотвратить появление других программ с этим программным обеспечением:

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista - Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование ”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все », Чтобы исправить все проблемы.

Step1: Запустите командную строку и измените каталог, в котором находятся все ваши файлы. Потому что именно здесь вы можете переместить свои файлы на сервер и загрузить их в одну папку.

Step2: Введите команду

Доменное имя ftp

Пример: ftp azharftp.clanteam.com

Шаг 3: Введите имя пользователя и пароль.

Шаг 4: Вы видите конфигурацию соединения. Теперь вы можете выполнять действия на сервере.

Это команды FTP:

Вы можете использовать справку, чтобы получить полный список команд FTP. Эта команда не требует подключения к удаленной системе.

  • Справка: запрашивает список всех доступных команд FTP.
  • ASCII: активировать режим Ascii.
  • Статус: чтобы увидеть, как настроен текущий сеанс FTP.
  • подсказка : активировать и деактивировать интерактивный режим.
  • ls: список каталогов, эквивалентный вам.
  • ls -l: длинный список каталогов, более подробная информация.
  • pwd: Показать имя текущего каталога
  • CD: Сменить каталог.
  • жк: изменяет локальный текущий каталог.
  • получить: скачать файл с FTP-сервера.
  • положил: файл на сервер.
  • mget: загрузить несколько файлов с FTP-сервера.
  • мпут: загрузить несколько файлов на FTP-сервер.
  • бинарный: активировать бинарный режим.
  • Удалить: удалить любой файл на FTP-сервере.
  • mkdir: создать каталог на FTP-сервере.
  • ASCII : Устанавливает режим передачи файлов в ASCII (Примечание. Это режим по умолчанию для большинства программ FTP).
  • выйти / закрыть / пока / отключить: Отключиться от FTP-сервера.
  • Префикс команды восклицательного знака вызывает выполнение команды в локальной системе, а не в удаленной.

А сегодня мы рассмотрим работу с FTP сервером через командную строку cmd. Как я и говорил данный метод используется довольно редко, по крайней мере мной, так как проще работать через FTP клиент. Однако, для написания автоматизированных скриптов для обмена данными между вашей локальной машиной и FTP сервером эти знания вам очень даже пригодятся.

В данном видео писать скрипт мы не будем, этим мы займемся в следующем видео, а просто рассмотрим основные команды для работы с FTP сервером через командную строку.

Основные команды для работы с FTP сервером через командную строку CMD

И для начала нам необходимо запустить командную строку (Пуск \ Приложения \ Служебные программы \ Командная строка ) или Win+R \ cmd .

Первым делом необходимо перейти в режим работы с FTP сервером делается это через команду FTP

Вводим ИМЯ_ПОЛЬЗОВАТЕЛЯ который имеет доступ к данному серверу и ПАРОЛЬ

Если мы ведем команду DIR то нам выведется список файлов и папок которые содержатся на FTP сервере.

Я не буду рассказывать о всех командах, которые используются для работы с FTP сервером через командную строку, а только те, которые нам понадобится для написания скрипта. Главным образом это команды, позволяющие копировать файлы с FTP-сервера на наш локальный компьютер и наоборот с локального компьютера на FTP-сервер.

Вы всегда можете набрать команду HELP и вам выведется список поддерживаемых команд, чтобы узнать назначение команды достаточно ввести HELP НАЗВАНИЕ_КОМАНДЫ.

Но, тут описание очень скромное, поэтому, если вы хотите узнать более подробное описание различных команд, заходите ко мне на сайт в тематическую статью. Ссылку я размещу в описании к данному видео.

У меня нет доступа для непосредственно записи файлов в корень данного FTP-сервера, но есть доступ к папке htdocs, поэтому для начала перейдём в данную папку. Делается это команды CD ИМЯ_ПАПКИ .

Мы видим, что в данной папке у нас ничего нет. Давайте попробуем скопирую сюда какой-нибудь файл с нашего локального компьютера. Для этого на локальном компьютере создадим папочку, допустим у меня это будет nod32_update так как в одном из следующих видео, я буду рассказывать о том, как написать скрипт для автоматического обновления антивируса NOD32. И давайте создадим какой-нибудь текстовый документ допустимым 123.txt .

Чтобы скопировать файл 123.txt на FTP-сервер вводим команду PUT c:\nod32_update\123.txt . Файл скопирован, можем проверить это командой DIR . Как вы видите, файл скопировался именно в ту папку, в которую мы перешли через команду CD .

Если нам необходимо скопировать все файлы с определенной папки на локальном компьютере в папку на FTP сервере, то нам необходимо указать текущий локальный каталог и каталог на сервере.

Каталог на сервере мы научились указывать, через команду CD

Локальный каталог указывается через команду LCD , если мы её наберем, то увидим, что текущий каталог - это папка с профилем текущего пользователя. А так как я собираюсь копировать файлы из другой папки то ввожу команду LCD ПУТЬ_К_НУЖНОЙ_ПАПКЕ

В чем суть, есть команда MPUT которая копирует файлы из локальной папки на удаленную и она не запрашивает какие именно это папки, поэтому нам эту информацию нужно сообщить.

Для того, чтобы скопировать все файлы из локальной папки в удаленную я указываю команду MPUT *.* , где *.* означает все файлы находящиеся в локальной папке.

Здесь у нас задаётся вопрос подтверждение для каждого файла хотим его скопировать или нет для этого живём Enter. Чтобы подобные подтверждение не выводились есть команда PROMT отключает интерактивный режим выключен.

Теперь попробуем сделать обратное действие, а именно скопировать все файлы с удаленной папки на FTP сервере в локальную. Делается это через команду MGET *.* .

Как видите всё отлично, в нашей папке появились все необходимые файлы и теперь мы можем закончить работу с FTP сервером через командуQUIT .

Понадобилось мне ежечасно отправлять файлы отчетов на FTP сервер и также дублировать отправку этих файлов в почту нескольким адресатам. После недолгих изысканий остановился на встроенной утилите ftp.exe (C:\Windows\System32\ftp.exe) и старом добром blat. Итак начнем. Нам надо ежечасно загружать все XML файлы с директории %dir%\file_export (где %dir% путь к нашей папке) на сервер ftp.server.com.
Новая версия на Python

Настраиваем выгрузку файлов на FTP

Создаем файл команд для ftp.exe
Создаем текстовый документ (например ftpcomm.txt) в нем прописываем:
login
password
cd IN
binary

bye
где:
login - логин ftp сервера
pasword - пароль на ftp сервер
cd IN - переходим в нужную папку
binary - устанавливаем двоичный способ пересылки файлов. При этом файл при передаче не перекодируется и записывается в неизмененном виде. Это наиболее надежный способ передачи файлов.
mput C:\%dir%\file_export\*.xml - копируем один или несколько локальных файлов на удаленный компьютер с указанием директории
bye - конец FTP сессии и выход с FTP сервера
Создаем файл export.bat
В нем прописываем:

где:
C:\WINDOWS\system32\ftp.exe - Путь к утилите ftp.exe
-s:c:\%dir%\ftpcomm.tx t - задаем путь к текстовому файлу содержащим команды FTP, команды будет автоматически запускаться после старта FTP.
-i - отключение интерактивного режима при передаче нескольких файлов.
ftp.server.com - прописываем адрес нашего FTP cервера.
Проверяем работу запустив export.bat. Видим что файлы выгрузились на FTP сервер. Но тут возникает проблема, если нам надо выгружать файлы раз в час то как исключить повторное отправление файлов? Решение банальное:
В файл export.bat дописываем:
cd /d C:\%dir%\file_export\
del *.xml
где:
cd /d C:\%dir%\file_export\ - переходим в директорию в которой хранятся файлы XML.
del *.xml - удаляем все файлы XML.

Настраиваем отправку файлов на электронную почту

Для отправки файлов на почту используем утилиту blat (http://www.blat.net/). Скачиваем и Распаковываем в любой каталог, в нашем случае это c:\%dir\blat/
Установка blat. Вызываем командную строку. В командной строке переходим к нашей папке:
cd c:\%dir%\blat/
Запускаем установку blat (прописываем профиль blat в реестр, данные прописываются в реестр системы Windows в ветку: .
blat.exe -install smtp.yandex.ru Имя_ящика@yandex.ru 3 25 profile Имя_ящика@yandex.ru Ваш_Пароль
Где:
smtp.yandex.ru - имя почтового сервера, через который будет выполняться отправка электронных писем.
Имя_ящика@yandex.ru - имя отправителя, которое будет отображаться в поле.
3 - число попыток повторный отправки письма при сбое соединения с сервером.
25 - номер порта SMTP-сервера.
profile - имя профиля.
Имя_ящика@yandex.ru - имя пользователя, которое будет использоваться при подключении к SMTP-серверу.
Ваш_Пароль - пароль, используемый при подключении к SMTP-серверу, т.е. пароль к почтовому ящику.

Добавление отправки писем в export.bat

В файл export.bat после строчки
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
Прописываем:

где:
-p profile – имя профиля blat (Указывали во время установки)
-charset windows-1251 (Выбираем кодировку Windows)
-to [email protected] – адрес получателя письма
-subject "File export " - Тема письма
-body "Auto export" – Тело письма
-attach c:\%dir%\file_export\*.xml – файлы или файл которые необходимо отправить
Если необходимо отправлять письма на несколько ящиков то прописываем данную строку несколько раз с указанием ящиков получателя:
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml

Конечный файл export.bat

В итоге мы получаем файл export.bat в котором имеем строки:
C:\WINDOWS\system32\ftp.exe -s:c:\%dir%\ftpcomm.txt -i ftp.server.com
blat.exe -p profile -charset windows-1251 -to [email protected] -subject "File export " -body "Auto export" -attach c:\%dir%\file_export\*.xml
cd /d C:\%dir%\file_export\
del *.xml
В первой строке отправляем файлы на FTP сервер, во второй отправляем файлы электронной почтой, далее переходим в директорию где хранятся файлы и удаляем их.

Отправление файлов по расписанию

Напомню что нам необходимо отправлять файлы ежечасно, для этого создаем задачу в планировщике Windows. Где указываем что нам необходимо раз в час запускать export.bat.

Итог

В итоге мы имеем автоматизированную систему ежечасной отправки файлов на FTP сервер и электронную почту.

И задумался: а все ли знают, что для работы с FTP-хранилищами вполне достаточно штатных инструментов Windows? В этой статье я опишу три простых метода передачи файлов по FTP на примере . Те же приемы действуют и в . Вам понадобятся всего лишь , Проводник и командная строка.

Способ первый: Internet Explorer 8

Любому пользователю Интернета знакомы HTTP-адреса для доступа к веб-сайтам, которые вводятся в адресной строке браузера - например, . Адреса для доступа к FTP-серверам строятся по такому же принципу: .

Введите в адресной строке адрес общедоступного FTP-хранилища, например, Microsoft (рис. A) и нажмите . В случае успешного подключения вы увидите корневой каталог. Для доступа к подкаталогам и файлам нажмите на основном каталоге. Чтобы загрузить файл, нажмите на нем правой кнопкой мыши и выберите опцию «Сохранить объект как» (Save Target As).

Как видите, на сервере хранятся все статьи базы данных, исправления, обновления, утилиты и документация Microsoft, только представлены они в виде списка с датами. Подробные сведения о FTP-хранилище содержатся в файлах «readme.txt».

Рисунок A. FTP-сервер Microsoft - вид из Internet Explorer 8.

Обратите внимание: для успешного подключения к FTP-серверу с помощью IE должны быть включены опции «Разрешить просмотр FTP-папок (за пределами Internet Explorer)» (Enable FTP folder view (outside of Internet Explorer)) и «Использовать пассивный FTP-протокол (для совместимости с брандмауэрами и DLS-модемами)» (Use Passive FTP (for firewall and DSL modem compatibility)) в разделе «Обзор» (Browsing) на вкладке «Дополнительно» (Advanced) диалогового окна «Свойства обозревателя» (Internet Options). Вызвать его можно из меню «Сервис» (Tools).

Для доступа к частным FTP-серверам необходимо ввести имя пользователя и пароль (рис. B). Однако таким способом в IE 7 или IE 8 можно посмотреть лишь список файлов. Для загрузки придется воспользоваться Проводником (Windows Explorer). Подробнее см. на рис. C, D, E и F.


Рисунок B. Для доступа к частным FTP-серверам требуется имя пользователя и пароль.


Рисунок C. Выберите опцию «Страница | Открыть FTP-узел в Проводнике Windows» (Page | Open FTP Site in Windows Explorer) или «Вид | Открыть FTP-узел в Проводнике Windows» (View | Open FTP Site in Windows Explorer), чтобы запустить Проводник.



Рисунок D. В диалоговом окне с предупреждением безопасности Internet Explorer нажмите кнопку «Разрешить» (Allow).

Часто требуется автоматизировать процессы скачивания, загрузки и удаления файлов c FTP-сервера. Например, при работе с распределенными базами данных 1С или для сохранения резервных копий. Но не все знают, что эти процедуры можно выполнять из командной строки, не прибегая к дополнительному программному обеспечению, то есть средствам Windows. Ниже я приведу синтаксис команд для работы с FTP, а также примеры bat-файлов для этих операций.

1. Команда ftp

Для обмена файлами с FTP-сервером используется команда ftp, вот ее синтаксис:

FTP [-v] [-d] [-i] [-n] [-g] [-s:имя_файла] [-a] [-A] [-x:sendbuffer]
[-r:recvbuffer] [-b:asyncbuffers] [-w:windowsize] [узел]

-v Отключение вывода на экран ответов с удаленного сервера.
-n Отключение автоматического входа при начальном подключении.
-i Отключение интерактивных запросов при передаче нескольких
файлов.
-d Включение отладочного режима.
-g Отключение глобализации имен файлов (см. команду GLOB).
-s:имя_файла Задание текстового файла, содержащего команды FTP, которые
будут выполняться автоматически при запуске FTP.
-a Использование локального интерфейса для привязки соединения.
-A Анонимный вход в службу.
-x:send sockbuf Переопределение стандартного размера буфера SO_SNDBUF (8192).
-r:recv sockbuf Переопределение стандартного размера буфера SO_RCVBUF (8192).
-b:async count Переопределение стандартного размера счетчика async (3)
-w:windowsize Переопределение стандартного размера буфера передачи (65535).
узел Задание имени или адреса IP удаленного узла,
к которому необходимо выполнить подключение.

Как видно, здесь нет операторов для подключения к серверу и работы с файлами. Дело в том, что эта команда только запускает сеанс ftp:

!
Временный переход в оболочку.

append
Добавление в файл.

ascii
Установка режима передачи файлов в формате ascii.

bell
Выдача звукового сигнала по завершении команды

binary
Установка режима передачи файлов в двоичном формате.

bye
Завершение сеанса ftp и выход.

cd <удаленный_каталог>
Изменение рабочего каталога на удаленном компьютере, где:
<удаленный_каталог> — имя каталога, который станет рабочим.

close
Завершение сеанса ftp.

debug
Переключение режима отладки.

delete <удаленный_файл>
Удаление файла на удаленном компьютере, где:
<удаленный_файл> — имя файла для удаления.

dir [<удаленный_каталог> ] [<локальный_файл> ]
Вывод содержимого каталога удаленного компьютера, где:
<удаленный_каталог>
<локальный_файл>

disconnect
Завершение сеанса ftp.

get <удаленный_файл> [<локальный_файл> ]
Получение файла, где:
<удаленный_файл>
<локальный_файл> — имя файла на локальном компьютере.

glob
Переключение метасимвольного расширения имен локальных файлов.

hash
Переключение вывода «#» для каждого переданного блока данных.

help [<команда> ]
Вывод справочных сведений для команды ftp, где:
<команда> — Команда, описание которой будет выведено, если не задана, произойдет вывод всех команд.

lcd [<локальный_каталог> ]
Изменение локального каталога рабочего компьютера, где:
<локальный_каталог> — Имя нового локального каталога, если не задан то будет использоваться имя текущего каталога.

literal <команда_1> … <команда_n>

<команда_n> — команды для отправки;

ls [<удаленный_каталог> ] [<локальный_файл> ]
Вывод сокращенного содержимого каталога удаленного компьютера, где:
<удаленный_каталог> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.

mdelete <удаленный_файл_1 > … <удаленный_файл_n >
Удаление нескольких файлов на удаленном компьютере, где:
<удаленный_файл_n> — имена файлов для удаления.

mdir <удаленный_каталог_1 > … <удаленный_каталог_n > <локальный_файл >
Вывод содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено;
<локальный_файл> — задает локальный файл, для сохранения в список, если не задан, список выводится на экран.

mget <удаленный_файл_1> <удаленный_файл_n>
Получение нескольких файлов, где:
<удаленный_файл_n> — удаленный файл для копирования.

mkdir <удаленный_каталог>
Создание каталога на удаленном компьютере, где:
<удаленный_каталог> — имя удаленного каталога для создания.

mls <удаленный_каталог_1> … <удаленный_каталог_n> <локальный_файл>
Вывод сокращенного содержимого нескольких каталогов удаленного компьютера, где:
<удаленный_каталог_n> — каталог, содержимое которого будет выведено, если не задан, используется текущий каталог;
<локальный_файл> — задает локальный файл, для сохранения в список.

mput <локальный_файл_1> … <локальный_файл_n>
Отправка нескольких файлов, где:
<локальный_файл_n> — имя локальных файлов, которые будут скопированы.

prompt
Переключение интерактивной подсказки для составных команд.

put <локальный_файл> [<удаленный_файл> ]
Отправка одного файла, где:
<локальный_файл >
<удаленный_файл>

pwd
Вывод рабочего каталога удаленного компьютера.

quit
Завершение сеанса ftp и выход в командную строку.

quote <команда>
Отправка произвольной команды ftp, где:
<команда> — команда для отправки.

recv <удаленный_файл> [<локальный_файл> ]
Получение файла с использованием текущих настроек типов файлов, где:
<удаленный_файл> — удаленный файл для копирования;
<локальный_файл > — имя файла на локальном компьютере.

remotehelp [<команда> ]
Получение справочных сведений о командах удаленной системы, где:
<команда > — команда удаленной системы, если не задан, то выводится список всех команд.

rename <имя_файла> <новое_имя_файла>
Переименование удаленного файла, где:
<имя_файла > — имя файла для переименования;
<новое_имя_файла > — новое имя файла.

rmdir <имя_каталога>
Удаление каталога на удаленном компьютере, где:
<имя_каталога > — имя каталога для удаления.

send <локальный_файл> [<удаленный_файл> ]
Копирование одного файла с использованием текущих настроек типов файлов, где:
<локальный_файл > — имя локального файл для копирования;
<удаленный_файл> — имя файла на удаленном компьютере.

status
Отражение текущего состояния подключения ftp.

trace
Переключение трассировки пакетов.

type [<имя_типа> ]
Установка типа передачи файлов, где:
<имя_типа > — тип передачи файлов, если не указан будет выведен текущий тип передачи файлов.

user <имя_пользователя> [<пароль> ] [<учетная_запись> ]
Отправка сведений для подключения к удаленному компьютеру, где:
<имя_пользователя > — имя пользователя для подключения к удаленному компьютеру;
<пароль > — пароль, для указанного имени пользователя, если не указан, но требуется для подключения, команда ftp запросит его у пользователя;
<учетная_запись > учетная запись для подключения к удаленному компьютеру, если не указана, но требуется для подключения, команда ftp запросит ее у пользователя;

verbose
Переключение режима вывода сообщений.


Рассмотрим небольшой пример.

Для начала напишем «батник», который будет загружать на сервер сайт файл file_data.dat из «С:\example » . Алгоритм работы bat-файла будет такой:

  • Создаем файл transport.txt с последовательностью операторов ftp;
  • Выполняем команду ftp, указав в качестве параметров созданный файл;
  • Удаляем transport.txt.

В данном примере имя файла и директорий жестко прописаны в файле. Это не всегда удобно. Доработаем bat-файл таким образом, чтобы данные для загрузки он получал в качестве параметров, а также вынесем все изменяемые значения в переменные файла. Получим следующий код ():

Соответственно, чтобы скопировать файл file_data.dat из «C:\example » на FTP-сервер в «Temp\Backup » , потребуется запустить этот «батник» указав в качестве параметров имя файла, локальный и удаленный каталоги.

Аналогичным образом можно написать bat-файлы для и на FTP-сервере, а также исполняющий файл с произвольным набором инструкций.

Помогла ли Вам данная статья?

Понравилась статья? Поделитесь с друзьями!
Была ли эта статья полезной?
Да
Нет
Спасибо, за Ваш отзыв!
Что-то пошло не так и Ваш голос не был учтен.
Спасибо. Ваше сообщение отправлено
Нашли в тексте ошибку?
Выделите её, нажмите Ctrl + Enter и мы всё исправим!