Publicado em: 07/10/200 !rti"o dis#o$ibili%ado #ara os alu$os do curso de com#uta&'o( )*+F+,-. Como usar o FTP FTP um comando utilizado para transferir arquivos de uma mquina para outra, sejam estas remotas ou no. A mquina na qual o comando executado chamada mquina local, e a mquina para onde ou de onde, se deseja transferir arquivos chamada mquina remota. nome da mquina remota pode ser especificado de duas maneiras! 1. diretamente pela linha de comando di"itando#se $ftp nome#mquina#remota$. %xemplo! #rom#t. ft# s#fec02.fec.u$icam#.br ou #rom#t. ft# obeli/.u$icam#.br 2. pela linha de comando do interpretador ftp, utilizando o comando open, tendo como ar"umento o nome da mquina remota. Para entrar no interpretador de comandos do ftp &asta di"itar $ftp$ na linha de comando. prompt do interpretador ento ir aparecer 'ftp>(. %xemplo! #rom#t. ft# ft#. o#e$ s#fec02.fec.u$icam#.br A partir do momento que a mquina remota foi especificada, o ftp tentar esta&elecer um conexo com ela, verificando se tal mquina com tal nome existe e se est acess)vel. *aso seja &em sucedido, o ftp requisitar o lo"in e a senha do usurio para mquina remota. %xemplo! prompt+, ftp spfec-..fec.unicamp.&r *onnected to spfec-..fec.unicamp.&r ..- spfec-. FTP server '/012'r( 34stem 5 6elease 7.-( read4. 0ame 'spfec-..fec.unicamp.&r!(! fulano 889 Pass:ord required for fulano. Pass:ord! .8- /ser fulano lo""ed in. ftp, *aso a a;o de lo"in seja &em sucedida, pode#se ento iniciar a transfer<ncia de arquivos entre a mquina local e a mquina remota, utilizando#se os comandos put/mput 'local #, remota( e os comandos get/mget 'remota , local(. =as antes disso, &om certificar#se so&re os diret>rios de tra&alho local e remoto 'lcd/cd/pwd(, so&re o tipo de representa;o na transfer<ncia dos arquivos 'ascii/bin( e quais os nomes dos arquivos que sero transferidos 'ls/dir(. 3e a a;o de lo"in no for &em sucedida 'como no caso de erros de di"ita;o ou devido ao usurio especificado no ter acesso a mquina remota(, pode#se ento repetir o a;o de lo"in 'comando user(, '? mquina outra com conexo tentar ou,disconnect e open(, ou ainda sair do ftp 'quit/bye(. Comando lcd diret>rio de tra&alho local 'da mquina local( default ser o mesmo de onde o comando ftp for executado. Para mudar o diret>rio local utilize o comando lcd com o nome do diret>rio para o qual se deseja mudar. %xemplo! 3upondo que o diret>rio default seja @home@fulano '/nix( ou c!+usr+fulano 'A3( e deseja# se mudar para o su&diret>rio docs. ftp, lcd @home@fulano@docs '/nix( ou ftp, lcd c!+usr+fulano+docs 'A3( Comando cd/pwd diret>rio de tra&alho remoto inicialmente ser o diret>rio home do usurio. Para mud#lo &asta usar o comando cd 'chan"e director4(, passando o nome do novo diret>rio como ar"umento. comando p:d mostra qual o diret>rio de tra&alho remoto corrente. Comando ascii/binary s comandos ascii e binary 'ou bin( modificam o tipo de representa;o dos dados que sero transferidos. default o tipo A3*11. Porm recomenda#se utilizar o tipo &inrio para asse"urar o envio correto dos dados contidos nos arquivos. Para isso, &asta di"itar bin ou &inar4 na linha de comando do interpretador. Para retornar ao tipo A3*11, &asta di"itar ascii. Comando ls/dir s comandos ls e dir listam o conteBdo de um determinado diret>rio remoto. 3e nenhum diret>rio remoto for especificado, ento o atual ser listado. A diferen;a entre esses dois comandos que ls imprime um lista"em parcial do conteBdo do diret>rio. Comando get/mget comando get recupera um arquivo da mquina remota e armazena#o na mquina local. %ste comando transfere somente um arquivo por vez. C com mget, pode#se transferir vrios arquivos de uma vez. *omo especificar ento, os vrios arquivos que se deseja transferir pelo mgetD Pode#se faz<#lo, por exemplo! todos os arquivos, um ap>s o outro, separados por espa;o arquivos com a mesma extenso 'ex.! E.doc, E.txt( arquivos com a mesma cadeia inicial no nome 'ex.! capE.txt, tra&E.doc( Aqui esto al"uns exemplos! ftp, "et teste.txt ftp, m"et teste9.txt tra&alho.doc Felcome.html ftp, m"et testeE.E ftp, m"et E.doc Ao ser executado, o comando mget questiona cada um dos arquivos especificados se devem ser transferidos ou no. 1sso ocorre pois o ftp est setado, por default, a operar em modo interativo. Para desa&ilitar o modo interativo, &asta di"itar $prompt$. comando prompt funciona como uma chave 'switch(, assim, quando acionado ou executado novamente ele ir ha&ilitar o modo interativo. %xemplo! ftp, prompt 1nteractive mode off. ftp, prompt 1nteractive mode on. ftp, Comando put/mput %stes comandos fazem o inverso dos comandos "et@m"et, ou seja, armazenam arquivos locais na mquina remota. Assim como "et, put transmite somente um arquivo por vez, e mput pode transmitir vrios arquivos por vez 'como m"et(. A especifica;ao dos arquivos feita de forma semelhante a "et@m"et. Comando disconnect/open comando disconnect faz com que a conexo com a mquina remota seja que&rada, caso haja uma conexo. comando open a&re uma conexo com uma mquina remota, desde que no haja nenhuma conexo com outra mquina remota. *aso haja conexo, deve#se interromp<#la para usar o comando open. Comando quit/bye comando disconnect, apesar de interromper a conexo com uma mquina remota, no faz o ftp sair de seu interpretador de comandos. Para sair do ftp di"ite bye ou quit. Outros Comandos G outros comandos que o intepretador ftp aceita. *om eles pode#se, por exemplo, criar diret>rios, renomear arquivos e apa"ar arquivos. Para ver quais so os comandos que o interpretador aceita, &asta di"itar ?. utro comando Btil help, que descreve &revemente o comando passado como ar"umento. %xemplo! ftp> ? Commands may be abbreviated. Commands are: ! cr macdef proxy send $ delete mdelete sendport status account debug mdir put struct append dir mget pwd sunique ascii disconnect mkdir quit tenex bell form mls quote trace binary get mode recv type bye glob mput remoteelp user case as nmap rename verbose cd elp ntrans reset ? cdup lcd open rmdir close ls prompt runique ftp> elp put put send one file ftp> Exemplos de utiliza!o do "tp get e mget c:!usr!fulano!> ftp spfec02.fec.unicamp.br Connected to spfec"#.fec.unicamp.br. ##" spfec"# $%& server '()*+'r, -ystem . /elease 0.", ready. )ame 'spfec"#.fec.unicamp.br:1none>,: fulano 223 &assword required for fulano. &assword: #2" (ser fulano logged in. ftp> ls #"" &4/% command successful. 35" 6-C** data connection for 7bin7ls '302.3"8.0.3##9250#", '" bytes,. teste3.txt teste#.ex# teste2.ex2 teste0.ex0 trabalo.doc ##8 6-C** %ransfer complete. 8# bytes received in ".":; seconds '".:: <bytes7s, ftp> pwd #5: =7ome7fulano= is current directory. ftp> lcd >ocal directory now c:!usr!fulano ftp> bin #"" %ype set to *. ftp> get trabalho.doc #"" &4/% command successful. 35" ?inary data connection for trabalo.doc '302.3"8.0.3##9250#3, ': bytes,. ##8 ?inary %ransfer complete. local: trabalo.doc remote: trabalo.doc : bytes received in "."#0 seconds '".#; <bytes7s, ftp> mget teste*.* mget teste3.txt? y #"" &4/% command successful. 35" ?inary data connection for teste3.txt '302.3"8.0.3##9250#2, ': bytes,. ##8 ?inary %ransfer complete. local: teste3.txt remote: teste3.txt : bytes received in "."35 seconds '".05 <bytes7s, mget teste#.ex#? y #"" &4/% command successful. 35" ?inary data connection for teste#.ex# '302.3"8.0.3##9250#0, ': bytes,. ##8 ?inary %ransfer complete. local: teste#.ex# remote: teste#.ex# : bytes received in "."#8 seconds '".#8 <bytes7s, mget teste2.ex2? y #"" &4/% command successful. 35" ?inary data connection for teste2.ex2 '302.3"8.0.3##9250#5, ': bytes,. ##8 ?inary %ransfer complete. local: teste2.ex2 remote: teste2.ex2 : bytes received in "."35 seconds '".05 <bytes7s, mget teste0.ex0? n ftp> disconnect ##3 @oodbye. ftp> open obelix.unicamp.br Connected to obelix.unicamp.br. ##" obelix $%& server '()*+'r, -ystem . /elease 0.", ready. )ame 'obelix.unicamp.br:1none>,: fulano 52" (ser fulano access denied. >ogin failed. ftp> disconnect ##3 @oodbye. ftp> open spfec02 Connected to spfec"#.fec.unicamp.br. ##" spfec"# $%& server '()*+'r, -ystem . /elease 0.", ready. )ame 'spfec"#:fulano,: 223 &assword required for fulano &assword: 52" >ogin incorrect. >ogin failed. ftp> user fulano 223 &assword required for fulano. &assword: #2" (ser fulano logged in. ftp> ls #"" &4/% command successful. 35" 6-C** data connection for 7bin7ls '302.3"8.0.3##9250#", '" bytes,. teste3.txt teste#.ex# teste2.ex2 teste0.ex0 trabalo.doc ##8 6-C** %ransfer complete. 8# bytes received in ".":; seconds '".:: <bytes7s, ftp> quit ##3 @oodbye. c:!usr!fulano!> dir 4 volume na unidade C nAo tem nome. 4 nBmero de srie do volume "0C;D?:8; &asta de C:!usr!fulano 3#73"7;: 3::#3 1C*/> . 3#73"7;: 3::#3 1C*/> .. 3873"7;: 3;:"8 #.580 teste3.txt 3873"7;: 3;:"8 #.;0: teste#.ex# 3873"7;: 3;:"8 5.8:; teste2.ex2 3873"7;: 3;:"8 #8.;3# trabalo.doc 5 arquivo's, 2E.3"# bytes 333."2#.000 bytes disponFveis c:!usr!fulano!> put e mput c:!usr!beltrano!> dir 4 volume na unidade C nAo tem nome. 4 nBmero de srie do volume "0C;D?:8; &asta de C:!usr!beltrano 3#73"7;: 3::#3 1C*/> . 3#73"7;: 3::#3 1C*/> .. 3873"7;: 3;:"8 #.580 *mage20.gif 3:73"7;: 32:#; #.;0: *mage25.gif 3#73"7;: "0:"; 5.8:; welcome.tm #573"7;: 3":"; #8.;3# ec2"2.doc "87337;: 3":#" #5."EE ec3;2.doc 5 arquivo's, 82.3;" bytes #:".E0".2#" bytes disponFveis c:!usr!beltrano!> ftp ftp> open spfec02 Connected to spfec"#.fec.unicamp.br. ##" spfec"# $%& server '()*+'r, -ystem . /elease 0.", ready. )ame 'spfec"#:1none>,: beltrano 223 &assword required for beltrano &assword: #2" (ser beltrano logged in. ftp> dir #"" &4/% command successful. 35" 6-C** data connection for 7bin7ls '302.3"8.0.3##92500:, '" bytes,. total E"# DrwDrDDrDD 3 beltrano grad 3;0# )ov 8 3":"8 Gelcome.tml DrwDrDDrDD 3 beltrano grad :"8" 4ct 30 35:3: autodesk.gif DrwDrDDrDD 3 beltrano grad 25253 4ct 30 35:3: engine.gif drwxrDxrDx # beltrano grad 53# 4ct #2 #3:0# docs DrwDrDDrDD 3 beltrano grad 85 4ct 3: 38:05 minalina.gif DrwDrDDrDD 3 beltrano grad 5:283 4ct 30 35:3: tbHcarg.gif DrwDrDDrDD 3 beltrano grad 30"8 4ct # 3":#0 unicamp.gif ##8 6-C** %ransfer complete. 3200 bytes received in ".#: seconds '0.E <bytes7s, ftp> pwd >ocal directory now 7ome7beltrano ftp> cd docs >ocal directory now 7ome7beltrano7docs ftp> ls #"" &4/% command successful. 35" 6-C** data connection for 7bin7ls '302.3"8.0.3##92500;, '" bytes,. acomod3.doc acomod#.doc acomod2.doc ##8 6-C** %ransfer complete. 3#8 bytes received in "."58 seconds '#.# <bytes7s, ftp> bin #"" %ype set to *. ftp> prompt *nteractive mode off. ftp> put welcome.htm #"" &4/% command successful. 35" ?inary data connection for Gelcome.tm '302.3"8.0.3##925022,. ##8 %ransfer complete. local: welcome.tm remote: welcome.tm : bytes sent in "."""0: seconds '35 <bytes7s, ftp> mput ec*.doc #"" &4/% command successful. 35" ?inary data connection for ec3;2.doc '302.3"8.0.3##925020,. ##8 %ransfer complete. local: ec3;2.doc remote: ec3;2.doc : bytes sent in "."""2E seconds '3E <bytes7s, #"" &4/% command successful. 35" ?inary data connection for ec2"2.doc '302.3"8.0.3##925025,. ##8 %ransfer complete. local: ec2"2.doc remote: ec2"2.doc : bytes sent in "."""20 seconds '#" <bytes7s, ftp> ls #"" &4/% command successful. 35" 6-C** data connection for 7bin7ls '302.3"8.0.3##925028, '" bytes,. acomod3.doc acomod#.doc acomod2.doc ec3;2.doc ec2"2.doc welcome.tm ##8 6-C** %ransfer complete. 25 bytes received in "."32 seconds '#.8 <bytes7s, ftp> bye ##3 @oodbye. c:!usr!beltrano!> =aiores informa;Hes podem ser encontradas pelo comando man do /nix 'man ftp(. #E$%&O' %m linhas "erais, para quem deseja um resumo dos comandos e fun;Hes so imprimir a&aixo! COMANDO ARGUMENTO FUNO bi$ !ltera o modo de tra$sfer0$cia #ara bi$1rio 2usado #ara tra$sfer0$cia de eleme$tos "r1ficos( ar3uivos 4+P etc.5 c6dir [ $ome do diret7rio ] !ltera $osso diret7rio cd [ $ome do diret7rio remoto ] 8uda o diret7rio de trabal6o $a m13ui$a remota. cdu# [ $ome do diret7rio remoto ] 8uda o diret7rio de trabal6o #ara o diret7rio 9#ai9 2su#erior5 do diret7rio atual. dir :ista o co$te;do do diret7rio da m13ui$a remota( coloca$do o resultado $a m13ui$a local. <e $e$6um diret7rio remoto for es#ecificado( o diret7rio de trabal6o atual $a m13ui$a remota ser1 utili%ado. <e $e$6um ar3uivo $a m13ui$a local for es#ecificado #ara receber a lista do diret7rio remoto( o resultado = e$viado #ara o termi$al. >dir [ dir?local ] [ ar3?local ] ,m al"u$s sistemas ft#( este coma$do lista o co$te;do de um diret7rio da m13ui$a local. disco$$ect - coma$do disconnect fa% com 3ue a co$e/'o com a m13ui$a remota se@a 3uebrada( caso 6a@a uma co$e/'o. "et [ $ome?ar3 ] Tra$sfere ar3uivos do servidor remoto de FTP #ara sua u$idade de disco local. <e um $ome de ar3uivo?local $'o for es#ecificado( = dado o mesmo $ome do ar3uivo $a m13ui$a remota. lcd [ diret7rio ] 8uda o diret7rio de trabal6o $a m13ui$a local. <e $e$6um diret7rio for es#ecificado( o diret7rio 96ome9 do usu1rio = utili%ado. ls [ dir?remoto ] [ ar3?local ] A1 uma lista"em do co$te;do de um diret7rio da m13ui$a remota. <e $'o for es#ecificado um diret7rio remoto( = mostrada a lista"em do diret7rio de trabal6o usado. <e $e$6um ar3uivo local for es#ecificado( a lista"em = mostrada $a tela. m"et [ $ome?ar3 ] Tra$sfere v1rios ar3uivos 2usa$do curi$"as5 do servidor remoto de FTP #ara sua u$idade de disco local mBdir [ $ome do diretorio] Cria um diret7rio m#ut [ $ome?ar3 ] Tra$sfere v1rios ar3uivos 2usa$do curi$"as5 da sua u$idade de disco local #ara o 6ost remoto de FTP o#e$ - coma$do open abre uma co$e/'o com uma m13ui$a remota( desde 3ue $'o 6a@a $e$6uma co$e/'o com outra m13ui$a remota. Caso 6a@a co$e/'o( deve-se i$terrom#0-la #ara usar o coma$do open. #ut [ $ome?ar3 ] Tra$sfere ar3uivos de sua u$idade de disco local #ara o servidor remoto de FTP #rom#t !tiva e desativa avisos de co$firma&'o dura$te o uso dos coma$dos m#ut e m"et #Dd ,/ibe o co$te;do atual do servidor do Ea6oo> FeoCities 3uit/bye - coma$do disconnect( a#esar de i$terrom#er a co$e/'o com uma m13ui$a remota( $'o fa% o ft# sair de seu i$ter#retador de coma$dos. Para sair do ft# di"ite bye ou qit. rmdir [ $ome do diret7rio ] Gemove um diret7rio H :ista v1rios coma$dos H [coma$do] :ista uma a@uda sim#les #ara esse Icoma$do.