Образовательная программа компании Global Inform. Украина, Харьков
Работа с ftp После того как вы установите связь с помощью ftp и найдете путь в нужный каталог на удаленной системе, вам понадобится неко- торые команды для перемещения файлов из Internet в ваш локальный компьютер. С помощью всего лишь 5 команд (ascii, binary, get, put и quit) вы можете стать экспертом в ftp. В Internet приняты некоторые общие обозначения файлов: имя_файла.tar означает архив, созданный с помощью tar; имя_фай- ла.Z означает файл, созданный программой упаковки Unix (перед его использованием нужно распаковать этот файл с помощью программы распаковки Unix); имя_файла.tar.Z означает упакованный архив; имя_файла.zip - уплотненный файл, созданный программой упаковки PKZIP; имя_файла.tar.gz представляет собой уплотненный файл, соз- данный программами упаковки GNU gunzip и gzip; имя_файла.txt - текстовый файл; имя_файла.1 - это исходный файл nroff; а имя_фай- ла.ps - это файл PostScript, готовый для печати на принтере Post- Script. По умолчанию при передаче файлов используется режим ascii, однако перед передачей полезно явно устанавливать режим. Команда ascii применяется перед передачей чисто текстового файла, команда binary служит для создания точной побайтовой копии файла. Команда get загружает файл с удаленного компьютера в ваш ло- кальный компьютер, а put передает файл из локального компьютера на удаленный (вместо get и put эти команды иногда называются recv и send). Команда get всегда должна содержать имя загружаемого файла и может также включать имя, под которым он будет использо- ваться в вашей системе (первоначальное имя использовать не обяза- тельно). Например, чтобы загрузить текстовый файл с именем faq (этот файл Internet содержит ответы на часто типовые вопросы), располо- женный в каталоге /pub на удаленном компьютере, и записать его в вашу локальную систему под именем faq.txt, вы можете использовать следующую последовательность: ftp> cd pub 250 CWD command successful. ftp> ascii ftp> get faq faq.txt 200 PORT command successful. 150 Opening ASCII mode data connection for faq (50007 bytes). 226 Transfer complete. После команды get ftp сообщает число переданных байт и вре- мя, прошедшее с момента начала передачи. Если больше файлов пере- давать не требуется, то остается только с помощью команды quit закрыть связь с удаленным компьютером и завершить ftp. Вы можете получить исчерпывающий список сотен ftp-узлов, послав запрос по адресу: mail-server@rtfm.mit.edu без заголовка, указав в тексте сообщения: send usenet/news.answers/ftp-list/sitelist/part1 send usenet/news.answers/ftp-list/sitelist/part2 ... send usenet/news.answers/ftp-list/sitelist/part17 send usenet/news.answers/ftp-list/sitelist/part18 Вы получите (по электронной почте) 18 файлов, которые содер- жат "список ftp-узлов". Учтите, что каждый из этих файлов занима- ет около 60 Кбайт, так что полный список будет около 1 Мбайта. Это может вызвать "затор" в вашей системе, поэтому осмотритесь сначала, возможно такой список можно найти где-то поближе, или попробуйте запросить сначала первые несколько файлов для примера, перед тем как запрашивать оставшиеся. Другой файл, который вы могли бы хотеть иметь, называется "Часто задаваемые вопросы и ответы по ftp", который содержит го- раздо больше информации по использованию ftp, так что добавьте следующую строку к вашему запросу: send usenet/news.answers/ftp-list/faq После того как вы получите список, вы увидите десятки запи- сей, подобных нижеследующей, которые указывают название ftp-уз- ла, его местонахождение, разновидность файлов, которые можно там найти. Site : oak.oakland.edu Country: USA Organ : Oakland University, Rochester, Michigan System : Unix Comment: Primary Simtel Software Repository mirror Files : BBS lists; ham radio; TCP/IP; Mac; modem protocol info; MS-DOS; MS-Windows; PC Blue; PostScript; Simtel-20; Unix Если вы находите интересующий вас ftp-узел в списке, пошлите запрос на один из следующих ftpmail-серверов: ftpmail@census.gov (США) ftpmail@sunsite.unc.edu (США) bitftp@pucc.princeton.edu (США) bitftp@vm.gmd.de (Германия) ftpmail@ftp.uni-stuttgart.de (Германия) ftpmail@ftp.luth.se (Швеция) ftpmail@doc.ic.ac.uk (Великобритания) ftpmail@cs.uow.edu.au (Австралия) Не имеет значения какой именно сервер вы выберите, но бли- жайший просто может ответить быстрее. В тексте письма укажите: open <site> dir quit К вам вернется список файлов и каталогов, находящихся в кор- невом каталоге данного ftp-узла. Ниже вы видите пример выполнения приведенных команд, когда вместо <site> было подставлено имя ftp-сервера "oak.oakland.edu". -r--r--r-- 1 w8sdz OAK 1255 Nov 9 16:32 README drwxr-xr-x 3 w8sdz OAK 8192 Feb 25 05:17 SimTel d--x--x--x 3 root system 8192 Jan 19 20:26 bin d--x--x--x 5 root system 8192 Dec 30 05:15 etc drwxrwx--- 2 incoming OAK 8192 Feb 25 11:05 incoming drwxr-xr-x 3 w8sdz OAK 8192 Jan 30 17:37 pub drwxr-xr-x 2 jeff OAK 8192 Apr 17 1994 siteinfo В следующем запросе вы можете "открыть" другую интересующий вас каталог, указав (например): chdir pub перед командой "dir". ("chdir" значит "change directory", т.е. "сменить каталог, а "pub" - это общепринятое имя одного из ката- логов на ftp-серверах, где обычно самое интересное и находится). Определив имя файла, который вы хотели бы передать на свою систе- му, укажите: get <имя_файла> в вашем следующем послании серверу вместо команды "dir". Если же- лаемый файл текстовый, то этого будет достаточно. Если же это двоичный файл (исполняемый модуль, архивированный файл и т.д.) то перед командой "get" вам нужно указать команду: binary Многие каталоги на ftp-узлах включают в себя файл с именем 00-index.txt, README или что-нибудь в этом роде, который содержит краткое описание файлов, содержащихся в каталоге. Если в резуль- тате выполнения команды "dir" вы обнаруживаете, что такой файл существует, то просто даете команду "get" для этого файла и, та- ким образом, экономите свое время. Давайте получим текст Magna Carta. Вот текст запроса, кото- рый мы посылаем на ftpmail@census.gov (или другой ftpmail сер- вер): open ftp.spies.com (Адрес ftp-узла) chdir Gov/World (каталог, в котором находится файл) get magna.txt quit Вот команды, которые надо указать, чтобы получить файл из файлового архива Simtel, упоминавшегося ранее. open oak.oakland.edu (Адрес ftp-узла) chdir SimTel/msdos/disasm (каталог, в котором находится файл) binary (файл архивированный) get bubble.zip quit Некоторые другие интересные ftp-узлы, которые вы можете за- хотеть "посетить", приведены ниже. (Используйте имена серверов в команде "open", а имена каталогов в команде "chdir", как в вышеп- риведенных примерах). ocf.berkeley.edu Попробуйте: pub/Library (документы, Библия, тексты песен) rtfm.mit.edu Попробуйте: pub/usenet/news.answers (инфо по USENET) oak.oakland.edu Попробуйте: SimTel/msdos (гигантский файловый архив) ftp.sura.net Попробуйте: pub/nic (файлы помощи) quartz.rutgers.edu Попробуйте: pub/humor (шутки, юмор и т.д.) gatekeeper.dec.com Попробуйте: pub/recipes (рецепты и т.д.) Помните, что вы не можете просто послать сообщение с коман- дами на ftpmail@..., не предварив его командой "open <site>", где "site" - это известный вам ftp-узел. Имейте в виду, что ftp-серверы обычно серьезно загружены, поэтому ваш запрос может оставаться без ответа в течение несколь- ких минут, часов, а то и дней, в зависимости от того, куда вы направили свой запрос. Некоторые большие файлы могут быть "разре- заны" на несколько частей и высланы вам по отдельности. Если запрошенный файл вернулся к вам в виде чего-то похожего на то, что вы видите ниже (слово "begin" c числом и имя файла в одной строке, а затем строки длиной 61 символ, начинающиеся с "M"), то это вероятно кодированный отправителем (uuencode) двоич- ный файл (так делается для надежной передачи подобных файлов). begin 666 answer2.zip M4$L#!`H`!@`.`/6H?18.$-Z$F@P```@?```,````5$5,25@S,34N5%A480I[ M!P8;!KL,2P,)!PL).PD'%@.(!@4.!P8%-@.6%PL*!@@*.P4.%00.%P4*.`4. Нужно будет раздобыть программу-раскодировщик "uudecode" для той операционной системы, которую вы используете (DOS, OS/2, Unix, Mac, и т.д.) и раскодировать полученный файл. Наиболее ве- роятно, что вы найдете такую программу на вашей собственной сис- теме. Если же нет, то в следующем разделе вы увидите как находить нужные ftp-узлы для получения необходимой копии программы. Если вы несете расходы за хранение информации в вашей систе- ме и вы собираетесь получить что-то крупное через ftp, то будет разумнее сделать это частями, чтобы обойти расходы за хранение. По умолчанию ftp предполагает, что загружаемые файлы имеют формат ASCII. Если вы загружаете двоичные файлы, то необходимо предварительно дать команду binary, в противном случае эти файлы во время передачи будут запорчены. Чтобы переключиться обратно в режим ASCII, вы можете воспользоваться командой ascii. Иногда файлы передаются по Internet в формате tar. Программа tar - это утилита Unix, которая применялась сначала для копирова- ния на магнитную ленту сразу группы файлов. Она до сих пор ис- пользуется для пакетной обработки сразу группы файлов. Чтобы вы- делить сгруппированные tar файлы, используйте команду tar с аргу- ментом xvf и именем файла. Например, чтобы выделить файл с именем design.tar, вы можете использовать команду: % tar xvf design.tar Обычно ftp помещает файлы в текущий каталог на локальном хост-компьютере. Переопределить это можно двумя способами. Прос- тейший метод - это смена текущего каталога на локальном компьюте- ре с помощью команды lcd: ftp> lcd internet-files Local directory now /u3/chrisr/internet-files ftp> Если вы передаете несколько файлов и хотите слышать сигнал при завершении передачи каждого из них, используйте команду bell. Команда hash приводит к тому, что ftp в процессе передачи файла выводит на экран символы #. Это позволяет наблюдать за ходом пе- редачи. Если вы не уверены точно в том, что в каталоге локального хост-компьютера уже не присутствуют файлы с теми же именами, что и имена принимаемых файлов, то полезной будет команда runique. Чтобы проверить, как установлены параметры ftp, используйте ко- манду status: ftp> status Connected to netcom.com. No proxy connection. Mode: stream; Type: ascii; Form: non-print; Structure: file Verbose: on; Bell: off; Prompting: on; Globbing: on Store nique: off; Receive unique: off Case: off; CR stripping: on Ntrans: off Nmaps: off Hash mark printing: on; Use of PORT cmds: on ftp>