FTP-соединение используется для загрузки файлов на сервер. Оно может понадобиться, например, для того чтобы разместить в интернете веб-страницу или файлы PHP-скриптов.
Для загрузки файлов с помощью FTP-соединения необходимо воспользоваться специальной программой - FTP-клиентом (например, FileZilla). Перед загрузкой файлов установите FTP-подключение к серверу. Для этого введите в свойствах подключения FTP-клиента следующие параметры:
- адрес FTP-сервера;
- имя пользователя;
- пароль.
Параметры FTP-подключения можно получить у хостинг-провайдера либо самостоятельно настроить в контрольной панели хостинга.
После подключения к серверу вы увидите в окне FTP-клиента список директорий и файлов, расположенных на сервере. Выберите директорию, в которую необходимо загрузить файлы, затем выберите файлы на вашем компьютере и запустите операцию загрузки файлов на сервер.
Для того чтобы файлы были доступны через интернет, их следует загрузить на сервер в директорию, предназначенную для хранения таких файлов. Имя этой директории следует уточнить у хостинг-провайдера или администратора сервера. Часто такая директория называется public_html , www , htdocs или httpdocs .
После загрузки в директорию с указанным выше именем файлы становятся доступными в интернете по адресу вида http://ваш_сайт .ru/имя-файла , где ваш_сайт.ru - доменное имя вашего сайта, а имя-файла - полное имя файла с расширением. Например, если ваше доменное имя - mydomain.ru , а имя файла - test.html , то после загрузки на сервер файл будет доступен по адресу http:// mydomain.ru/test.html .
Внимание : имя директории public_html , www , htdocs или httpdocs не указывается в адресе загруженного файла!
- В каких файлах хранятся параметры подключения к базе данных?
- Как загрузить файлы на сервер по FTP?
Еще один широко распространенный сервис Интернет – ftp. Русского перевода этого слова нет, и его так и называют в разговоре – эфтэпэ. Расшифровывается эта аббревиатура как протокол передачи файлов, но при рассмотрении ftp как сервиса Интернет имеется в виду не просто протокол, но именно сервис – доступ к файлам в файловых архивах.
Вообще говоря, ftp – стандартная программа, работающая по протоколу TCP, всегда поставляющаяся с операционной системой. Её исходное предназначение – передача файлов между разными компьютерами, работающими в сетях TCP/IP: на одном из компьютеров работает программа-сервер, на втором пользователь запускает программу-клиента, которая соединяется с сервером и передает или получает по протоколу ftp файлы. Тут предполагается, что пользователь зарегистрирован на обоих компьютерах и соединяется с сервером под своим именем и со своим паролем на этом компьютере. Протокол ftp, разумеется, оптимизирован для передачи файлов.
Данная черта и послужила причиной того, что программы ftp стали частью отдельного сервиса Интернет.
Дело в том, что сервер ftp зачастую настраивается таким образом, что соединиться с ним можно не только под своим именем, но и под условным именем anonymous – аноним. Тогда становится доступна не вся файловая система компьютера, но некоторый набор файлов на сервере, которые составляют содержимое сервера anonymous ftp – публичного файлового архива. Итак, если кто-то хочет предоставить в публичное пользование файлы с информацией, программами и прочим, то ему достаточно организовать на своем компьютере, включенном в Интернет, сервер anonymous ftp. Сделать это достаточно просто, программы-клиенты ftp есть практически на любом компьютере – поэтому сегодня публичные файловые архивы организованы в основном как серверы anonymous ftp. На таких серверах сегодня доступно огромное количество информации и программного обеспечения. Практически все, что может быть предоставлено публике в виде файлов, доступно с серверов anonymous ftp. Это и программы – свободно распространяемые и демонстрационные версии, это и мультимедиа, это, наконец просто тексты – законы, книги, статьи, отчеты.
Несмотря на распространенность, у ftp есть и множество недостатков. Программы-клиенты ftp могут быть не всегда удобны и просты в использовании. Не всегда можно понять, а что это за файл перед нами – то ли это тот файл, что мы ищем, то ли нет. Нет простого и универсального средства поиска на серверах anonymous ftp – хотя для этого и существует специальный сервис archie, но это независимая программа, неуниверсальная и не всегда применимая. Программы ftp довольно стары и некоторые их особенности, бывшие полезными при рождении, не очень понятны и нужны сегодня – так, например, для передачи файлов есть два режима – бинарный и текстовый, и если вдруг неправильно выбран режим, то передаваемый файл может быть поврежден. Описания файлов на сервере выдаются в формате операционной системы сервера, а список файлов операционной системы UNIX может привести в недоумение пользователя DOS. Проблема тут в том, что со списком файлов выдается лишняя информация, а слишком много знать всегда вредно. Серверы ftp нецентрализованы, и это несет свои проблемы.
Несмотря на все это, серверы anonymous ftp сегодня – стандартный путь организации публичных файловых архивов в Интернет. Можно также организовывать доступ к файлам под паролем – например, своим клиентам.
Ftp – сервис прямого доступа, требующий полноценного подключения к Интернет, но возможен и доступ через электронную почту – существуют серверы, которые могут прислать по электронной почте файлы с любых серверов anonymous ftp. Однако это может быть весьма неудобно, ибо такие серверы сильно загружены, и запрос может долго ждать своей очереди. Кроме того, большие файлы при отсылке делятся сервером на части ограниченного размера, посылаемые отдельными письмами – и если одна часть из сотни потеряется или повредится при передаче, то остальные 99 тоже окажутся ненужными.
Понадобилось мне ежечасно отправлять файлы отчетов на 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 сервер и электронную почту.
Часто требуется автоматизировать процессы скачивания, загрузки и удаления файлов 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-сервере, а также исполняющий файл с произвольным набором инструкций.
Помогла ли Вам данная статья?
28.04.2011
Как передать файлы по ftp на сервер?
Впервые, столкнувшись с необходимостью закачать данные на сервер, вебмастером должен решить для себя несколько вопросов. Как это сделать? С помощью, какой программы? А какая из них лучше, удобней? И тому подобные. Но на самом деле передача данных по ftp - это несложная и часто встречающаяся процедура при разработке сайтов и размещении их на хостинге .Сначала надо разобраться, как это происходит. Допустим, есть два компьютера: ваш домашний и удаленный сервер. Между ними надо установить канал, через который и будет идти обмен данными. Как это происходит? Ваш домашний компьютер, имея адрес сервера, посылает запрос на установление связи. Сервер получает его и в ответ отправляет свой запрос на логин и пароль. И ваш домашний компьютер ему их посылает, и с момента получения и проверки данных сервер открывает доступ к папке.
Это небольшой схематический пример, который прояснит ситуацию. И теперь нам известно, какую информацию нам надо знать. В первую очередь у нас должен быть ftp - адрес сервера, а к нему должны прилагаться логин и пароль. Во вторую очередь нам нужна программа ftp – клиент.
Какую программу выбрать решать вам. Есть как платные, так и бесплатные варианты. Можно воспользоваться total commander а можно и filezilla. Последнюю я рекомендую вам. Она мощная, удобная и бесплатная. Бывает так, что во время передачи данных случаются ошибки и передаются не все файлы или передаваемый файл уже существует. Вот тут то и важна функциональность вашего ftp – клиента. Очень важно знать, какие файлы переданы успешно, а какие не удалось передать, и что делать с файлами которые уже существуют? Заменить? Удалить? Дописать? Выбирайте удобный для вас ftp – клиент!
Но какой бы программой вы не пользовались процедура всегда одна. Скачайте вашу программу, установите её и запустите. Найдите кнопку «создать новое подключение» (она может называться по-разному: создать новый сайт и т.п.) и нажмите её. Перед вами появится окошко настройка ftp соединения. Там будет много разных настроек, но вам нужно заполнить всего лишь четыре: имя соединения, ftp – сервер, ваш логин и пароль. Как правило, этих данных достаточно.
Имя соединения можно вписать любое: например мой сайт. Ftp – сервер (иногда пишут хост) даст ваш хостер (компания которая предоставляет услуги хостинга). Он может быть в виде цифр (80.123.456.74) или в виде букв (ftp.narod.ru). Вот его как раз и надо вписать. Логин и пароль вам тоже даст хостер. Внимательно их впишите и следите за раскладкой клавиатуры, на каком языке вы вводите данные. Остальные настройки не трогайте. Теперь можете смело нажимать «ок» и соединятся с сервером.
Все необходимое мы сделали и в 99% случаев больше ни чего настраивать в вашем подключении нет необходимости. Правда иногда требуется указать номер порта. В таком случае впишите 21. Также тип сервера, кодировка имен файлов и режим передачи пусть автоматически определяются.
Когда соединение настроено, можно спокойно передавать ваши файлы на ваш