Меню
Бесплатно
Главная  /  Установка и настройка  /  Ftp команды с текстовым файлом. Автоматизированная загрузка файлов на FTP и отправка файлов на электронную почту

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

Стандартная утилита Windows "FTP-клиент" из командной строки (CMD) - для резервного копирования или скачивания файлов без вашего участия (автоматически).

  1. open - подключение к удаленному хосту по FTP ;
  2. cd - переход в другой каталог на сервере;
  3. bin - бинарный режим передачи данных между сервером и клиентом;
  4. put - передача файлов на FTP ;
  5. bye - завершение сеанса с сервером и выход.

Дабы освоить FTP-клиент windows и начать работать с ним, попробуем осуществить подключение к любому FTP-серверу в консольном режиме, например 213.43.125.75.

Вводим open 213.43.125.75 (это IP-адрес FTP-сервера), вместо него вводим адрес или домен нужного Вам сервера FTP, от вас потребуется ввести имя пользователя и пароль. После успешной авторизации создаём папку для размещения архивов на FTP, не долго думая, именуем ее backup (папка создаётся командой mkdir). Теперь переходим в созданный нами каталог следующей командой: cd back-up. На следующем этапе копируем файл на сервер, для чего требуется устанавливить режим передачи файлов в "бинарный" командой bin без какихлибо параметров. И теперь уже вводим put D:/back-up/back-up.zip, где параметром команды put будет полный путь к копируемому файлу. При копировании можно указавать маску в каталоге например: D:/back-up/*.zip (*.zip - все файлы с расширением "zip"). После копирования, закрываем соединение с сервером командой bye.

Чтобы наш FTP клиент делал всё автоматически, не задавая вопросов, создадим для него сценарий. Ниже приведён текстовый файл (назовем его back-up.ftp и сохраним в корень диска C:/ - для простоты использования и написания в строку запуска), содержащий в себе ряд команд для FTP клиента, которые будут автоматически выполняться при запуске FTP-клиента из командной строки.

Open 213.43.125.75 (вместо цифр - адрес нужного FTP сервера)
пользователь
пароль
cd back-up (переход в существующий каталог на FTP сервере)
bin (Режим передачи - бинарный)
put D:/back-up/back-up.zip (Путь к файлу на вашем компьютере)
bye (Завершение соединения)

В итоге должен получиться файл back-up.ftp следующего содержания:

open 213.43.125.75
пользователь
пароль
cd back-up
bin
put D:/back-up/back-up.zip

FTP - важная утилита TCP/IP, предназначенная для пересылки файлов между системами. Одно из главных достоинств FTP - совместимость со множеством различных удаленных хост-систем: файлы можно пересылать между удаленными системами Win-dows 2000, Windows NT и UNIX, и даже серверами IBM, например AS/400. Для запуска утилиты FTP, имеющей текстовый интерфейс и поставляемой вместе с Windows 2000 и NT, достаточно ввести ftp в командной строке.

Перечислим 10 наиболее полезных команд FTP.

10. Help (или?). Многие команды FTP можно вводить по-разному. Например, Help и вопросительный знак (?) выполняют одну и ту же функцию. Новичкам следует начинать именно с команды Help, после ввода которой система предоставляет пользователю полный список команд FTP. Чтобы получить краткое описание команды, следует ввести? и следом - имя команды:

Ftp>? open

9. Open. Сеанс FTP обычно начинается с команды Open, устанавливающей соединение с указанным FTP-сервером (на удаленном узле должна работать служба FTP). Получив команду Open, система запрашивает ID пользователя и пароль. Многие FTP-серверы позволяют регистрироваться с анонимным ID и пустым паролем. Чтобы установить связь с компьютером с именем teca2, нужно ввести

Ftp>open teca2

8. Quit (или Bye). Команда Quit завершает любой открытый сеанс и выходит из оболочки FTP:

Ftp>quit

Чтобы закрыть открытый сеанс, не завершая работы FTP, следует использовать команду Close.

7. Pwd. Команда Pwd отображает каталог на удаленной машине, с которым в данный момент установлена связь в рамках сеанса FTP:

6. Ls. Команда Ls показывает список файлов и подкаталогов, расположенных в текущем каталоге на удаленном компьютере. Ls позволяет обращаться к удаленным файлам:

5. Cd. Если нужного файла нет в текущем каталоге удаленной системы, то с помощью команды Cd можно перейти в другой каталог. Если установлено соединение с машиной UNIX, то удаленный каталог обычно указывают через слеш с наклоном вправо (в данном случае каталог /downloads):

Ftp>cd /downloads

4. Lcd. Команда Lcd изменяет текущий каталог на локальной машине. Любые полученные с удаленной машины файлы по умолчанию будут записываться в текущий каталог. Чтобы изменить текущий локальный каталог на C: emp, следует ввести команду

Ftp>lcd C: emp

3. Bin (или Binary). По умолчанию, FTP пересылает файлы в формате ASCII, что удобно для текстовых файлов. Но для пересылки исполняемых и.zip-файлов необходимо изменить тип пересылки на двоичный с помощью команды Bin:

Чтобы вернуться в режим ASCII, следует использовать команду ASCII.

2. Put (или Send). Команда Put позволяет скопировать локальный файл в текущий каталог удаленной машины. Чтобы переслать файл с именем localfile.txt в каталог C: emp на удаленной системе, нужно ввести команду

Ftp>put C: emp localfile.txt

1. Get (или Recv). Команда Get используется для загрузки файлов из Internet (или с удаленных машин) в текущий каталог локальной машины. Чтобы получить файл с именем remotefile.txt, следует ввести команду

Ftp>get remotefile.txt

Майкл Оти - научный редактор американского журнала Windows NT Magazine, президент компании TECA, специализирующейся на разработке программного обеспечения и оказании консультационных услуг. С ним можно связаться по адресу:

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

Из этого совета вы узнаете о том, как скачивать файлы с FTP-серверов при помощи простых DOS-команд .

Для того, чтобы скачать файл с FTP из командной строки Windows , выполним несколько простых действий:

  1. Откройте командную строку Windows, нажав на Пуск - Выполнить, набрав cmd и нажав на Enter.
  2. Выполните следующую команду: при помощи этой команды, мы подключимся к ftp-серверу компании Microsoft.
  3. Вводим имя пользователя anonymous. Сервер этой известной компании позволяет подключаться анонимным пользователям:
  4. В качестве пароля вводим e-mail (можно ввести несуществующий):
  5. Поздравляю с успешным входом!
  6. Для того, чтобы посмотреть, какие файлы и каталоги доступны на ftp-сервере, вводим команду dir:
  7. В результате - получаем список файлов и каталогов, расположенных на ftp-сервере:
  8. Для того, чтобы перейти в необходимый каталог, воспользуемся командой cd:
  9. Сообщение "250 CWD command successeful" скажет о том, что мы успешно перешли в нужный нам каталог:
  10. Для того, чтобы скачать нужный нам файл, введем команду get и имя загружаемого файла:
  11. После успешного получения файла, система оповестит нас:
  12. Для того, чтобы покинуть ftp-сервер и отключиться от него, выполните команду bye:

Возможно, многие скажут, что гораздо удобнее скачивать файлы при помощи многофункциональных менеджеров загрузки или ftp-клиентов.. Но при необходимости (или в качестве альтернативы), вы можете использовать простые DOS-команды , которые позволят вам скачать файлы с ftp без дополнительных затрат.

FTP (File Transfer Protocol - протокол передачи файлов) — это популярный сетевой протокол, который используется для копирования файлов с одного компьютера на другой в локальной сети, либо в сети Интернет. FTP является одним из старейших прикладных протоколов, появившимся задолго до HTTP, и даже до TCP/IP, в 1971 году.

Протокол FTP уязвим, то есть FTP не может зашифровать свой трафик, все передачи — открытый текст, поэтому имена пользователей, пароли, команды и данные могут быть прочитаны кем угодно, способным перехватить пакет по сети. Для безопасной передачи данных, используется протокол SFTP (Secure File Transfer Protocol). В отличие от стандартного FTP он шифрует и команды, и данные, предохраняя пароли и конфиденциальную информацию от открытой передачи через сеть. По функциональности SFTP похож на FTP, но так как он использует другой протокол, клиенты стандартного FTP не могут связаться с SFTP-сервером и наоборот. Далее рассмотрим основные команды для работы с FTP программой.

FTP клиент входит в большинство дистрибутивов Linux. Начнем с запуска программы и ftp соединением и, конечно, рассмотрим основные команды для скачивания с фтп-сервера и загрузки на фтп, создание директорий, удаление файлов и т.п. В этой статье опишем лишь основные команды, а в конце статьи приведем хелп и мануал из консоли - Вы всегда можете узнать о назначении команды и ее синтаксисе, а также обо всех доступных командах на конкретном ftp-сервере.

FTP соединение

Для начала фтп соединения достаточно ввести команду ftp <сервер> например:

ftp test.hostingthutor.com

После нажатия клавиши enter вывод команды будет следующим:

Connected to test..55.5.11).
220 test..
Name (test.сайт:ftpuser):

Другой способ для соединения - это запуск ftp из консоли, а после этого соединение с ftp-сервером с помощью команды open :

ftp
ftp> test.сайт

Кроме того, возможно соединится и по ip:

ftp 114.55.5.11

Или с таким обращением ftp Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script , то есть:

ftp Этот e-mail защищен от спам-ботов. Для его просмотра в вашем браузере должна быть включена поддержка Java-script
230 User ftpuser logged in
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>

Из сообщения видно, что для передачи файлов используется двоичный (бинарный) тип передачи. Двоичный режим передачи файлов - это передача файлов в том виде, в котором они хранятся на FTP сервере. Режим Ascii (текстовый) используется для передачи только текстовых файлов. Вы можете вводить команды ascii или binary для переключения между режимами передачи. Бинарный режим (binary) необходимо использовать для всех нетекстовых типов файлов - изображения, архивы, программы и т.д.

Итак, перейдем к командам для навигации и перехода по каталогам ftp-сервера:

pwd - команда покажет текущую директорию на ftp сервер:

ftp> pwd
257 "/" is the current directory

ls - команда покажет список файлов и каталогов в текущей директории:

ftp> ls
227 Entering Passive Mode.
150 Opening ASCII mode data connection for file list
-rw-r--r-- 1 ftpuser ftpuser 3034978 Jun 31 19:02 file1.tar.gz
-rw-r--r-- 1 ftpuser ftpuser 30842294 Jul 31 20:08 file2.tar.gz
-rw-r--r-- 1 ftpuser ftpuser 67798316 Jul 31 19:46 file3.tar.gz
-rw-r--r-- 1 ftpuser ftpuser 6001252 Jan 17 12:02 file4.zip
-rw-r--r-- 1 ftpuser ftpuser 31386394 Jan 17 11:28 file5.tar.gz
drwxr-xr-x 2 ftpuser ftpuser 4 Jan 17 20:23 www
-rw-r--r-- 1 ftpuser ftpuser 48546694 Jan 17 11:33 file6.zip
226 Transfer complete

cd <имядиректории> - команда для перехода в нужную директорию:

ftp> cd www
250 CWD command successful

Проверяем командой pwd :

ftp> pwd
257 "/www" is the current directory

mkdir <имя директории> - создание новой директории (каталога):

ftp> mkdir tmp
257 "/tmp" - Directory successfully created

rmdir <имя директории> - удаление директории (каталога):

ftp> rmdir tmp
250 RMD command successful

Удаление файлов на ftp сервере

delete <имяфайла> - удаляет файл на удаленном ftp сервере:

ftp> delete test1.sql
250 DELE command successful

Скачивание файлов с ftp

get - скачать файл на локальную машину. get fileName или get fileName newFileName

ftp> get file.zip
local: file.zip remote: file.zip
227 Entering Passive Mode.

226 Transfer complete
486694 bytes received in 0.229 secs (6.5e+04 Kbytes/sec)

Скачиваем file.zip на локальную машину как file2.zip:

ftp> get file.zip file2.zip
local: file2.zip remote: file.zip
227 Entering Passive Mode .
150 Opening BINARY mode data connection for file.zip (486694 bytes)
226 Transfer complete
486694 bytes received in 0.306 secs (9.4e+04 Kbytes/sec)

С помощью команды get с удаленного ftp сервера файлы копируются в текущую локальную директорию. Чтобы изменить текущую локальную директорию нужно использовать команду lcd :

lcd <путь> - изменить текущую директорию на локальной машине:

ftp> lcd /root
Local directory now /root

Чтобы скачать несколько файлов с удаленного ftp сервера на локальную машину можно использовать команду mget .

ftp> mget *.sql
mget test2.sql? y
227 Entering Passive Mode.
(23957080 bytes)
226 Transfer complete
23957080 bytes received in 0.233 secs (1e+05 Kbytes/sec)
mget test1.sql? y
227 Entering Passive Mode.
(11873185 bytes)
226 Transfer complete
11873185 bytes received in 0.135 secs (8.6e+04 Kbytes/sec)

Скачивание каждого файла необходимо подтверждать (да / нет) y /n .

Еще один вариант скачивания mget :

ftp> mget test1.sql test2.sql
mget test1.sql? y
227 Entering Passive Mode.

226 Transfer complete
11873185 bytes received in 0.101 secs (1.1e+05 Kbytes/sec)
mget test2.sql? y
227 Entering Passive Mode.

226 Transfer complete
23957080 bytes received in 0.204 secs (1.1e+05 Kbytes/sec)

Загрузка файла на ftp сервер

put <имяфайла> - команда для загрузки одного файла на ftp сервер.

ftp> put test1.sql
local: test1.sql remote: test1.sql
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.129 secs (9e+04 Kbytes/sec)

Для загрузки нескольких файлов сразу можно использовать команду mput :

ftp> mput test1.sql test2.sql
mput test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.0964 secs (1.2e+05 Kbytes/sec)
mput test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql
226 Transfer complete
23957080 bytes sent in 0.354 secs (6.6e+04 Kbytes/sec)

Загрузку каждого файла необходимо подтверждать y / n (да / нет).

Еще один вариант команды mput :

ftp> mput *.sql
mput test1.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test1.sql
226 Transfer complete
11873185 bytes sent in 0.0985 secs (1.2e+05 Kbytes/sec)
mput test2.sql? y
227 Entering Passive Mode.
150 Opening BINARY mode data connection for test2.sql
226 Transfer complete
23957080 bytes sent in 0.2 secs (1.2e+05 Kbytes/sec)

Если на фтп загружаются файлы большого размера, то неплохо было бы наблюдать за ходом загрузки. Для этого можно использоваться команды hash и tick .

hash - команда после которой ftp будет печатать символ «#» каждые 1024 байт данных:

ftp> hash
Hash mark printing on (1024 bytes/hash mark).
put file2.tar.gaz
##########################
226 Transfer complete
785888111 bytes sent in 6.94 secs (1.1e+05 Kbytes/sec)

tick - команда будет отображать счетчик байтов:

ftp> tick
Hash mark printing off.
Tick counter printing on (10240 bytes/tick increment).
ftp> put file2.tar.gz
local: file2.tar.gz remote: file2.tar.gz
227 Entering Passive Mode.
150 Opening BINARY mode data connection for file2.tar.gz
Bytes transferred: 912706618 -> счетчик
226 Transfer complete
912706618 bytes sent in 8.08 secs (1.1e+05 Kbytes/sec)

Вот и весь базовый набор команд для работы с ftp в консоле. Для просмотра списка доступных команл на данном FTP сервере можно использовать команду help :

ftp> help
Commands may be abbreviated. Commands are:

Debug mdir sendport site
$ dir mget put size
account disconnect mkdir pwd status
append exit mls quit struct
ascii form mode quote system
bell get modtime recv sunique
binary glob mput reget tenex
bye hash newer rstatus tick
case help nmap rhelp trace
cd idle nlist rename type
cdup image ntrans reset user
chmod lcd open restart umask
close ls prompt rmdir verbose
cr macdef passive runique ?
delete mdelete proxy send

Также, можно получить короткую справку по каждой команде help <команда> :

ftp> help status
status show current status

ftp> help quit
quit terminate ftp session and exit

ftp> help bye
bye terminate ftp session and exit

И в завершение, две команды, которые выше quit или bye для закрытия ftp-сессии и выхода:

ftp> quit
221 Goodbye.

Подробную информацию с описанием команд можно получить с помощью man ftp в командной строке.

# man ftp
Formatting page, please wait...
FTP(1) BSD General Commands Manual FTP(1)

NAME
ftp - Internet file transfer program

SYNOPSIS
ftp [-Apinegvd]
pftp [-Apinegvd]
................
...............

Понадобилось мне ежечасно отправлять файлы отчетов на 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 сервер и электронную почту.