sexta-feira, 27 de julho de 2007

O comando ftp e o arquivo ~/.netrc

O comando ftp e o arquivo ~/.netrc
Colaboração: Marcelo Dunin Beckmann
Quem usa muito constantemente o comando ftp deve achar incômodo ter que a toda hora digitar o nome de usuário e senha. Em outros casos, tem-se a necessidade de usar o ftp de forma automática em algum script do dia a dia.
Existe a possibilidade de usar a excelente ferramenta expect (http://expect.nist.gov). Mas dia desses lendo páginas de manual, encontrei referências ao arquivo ~/.netrc, e me pareceu muito útil e mais simples de usar.
Por exemplo, a linha:
machine ftp.foo.bar login usuario password senha
faz com que o comando
ftp ftp.foo.bar
efetue a conexão sem a necessidade de se digitar usuário e senha.
Caso se queira informar apenas o usuário, basta deixar a linha
machine ftp.foo.bar login usuario
que nesse caso a senha será solicitada.
Pode-se também definir macros, e caso uma macro de nome init esteja definida, ela será sempre executada após o processo de login. A definição da macro inicia-se com a palavra macdef, e termina após ser encontrada uma linha vazia (dois caracteres de nova linha consecutivos). Isso é útil para executar automaticamente alguns comandos, por exemplo:
machine ftp.foo.bar login usuario password senha
macdef init
bin
tick
ls
Podemos aproveitar essa facilidade do ~/.netrc para uso do ftp em scripts. Por exemplo, um script para atualizar automaticamente os arquivos .html e .jpg:
#!/bin/bash
ftp ftp.foo.bar << EOF
prompt
mput *.jpg
mput *.html
ls
bye
EOF

Nenhum comentário: