19/11/2009

Redirecionamentos em linux

Funcionamento dos recursos de direcionamento de entrada e saída do sistema GNU/Linux

Entrada e saída padrão
Pode-se considerar que a entrada e saída padrão dos dados são respedtivamente o teclado e a tela, que são denominadas também de stdout e stdin. Essas saídas e entradas podem ser facilmente tratadas (direcionadas ou modificadas) com alguns caracteres especiais.
  • Entrada Padrão: STDIN (0)
  • Saída padrão: STDOUT (1)
  • Saída de Erro: STDERR (2)

Redirecionamentos
  • [ > ] : redireciona a saída padrão para um arquivo. No caso a sáida padão é toda saída gerada por um comando que não seja proveniente de um erro, por exemplo o resultado de um comando ou os dados a serem exibidos em um script. O uso desse redirecionamento cria um arquivo caso o mesmo não exista e sobrescreve todo o conteúdo caso o arquivo já exista.
Ex: [user@host$:] ls -la > arquivoSaida.txt
[user@host$:] cat arquivo1.txt > arquivoSaida.txt

  • [ >> ] : similar ao redirecionamento anterior, porem concatena o conteúdo com o já existente. Caso o arquivo não exista ele é criado
Ex: [user@host$:] ls -la >> arquivoSaida.txt
[user@host$:] cat arquivo1.txt >> arquivoSaida.txt

  • [ < ] : função contrária a do [ > ], ele informa ao shell que a entrada não será feita pela entrada padrão (teclado/stdin/1) mas por um arquivo repassado como argrumento
Ex: [user@host$:] mail usuario <>> arquivoSaida.txt

  • [ << ] : indica ao shell que o escopo do comando inicia na linha seguinte e termina quando encontrar um rótulo (label) definido.
Ex: [user@host$:] mail usuario <> SP, `date`
> Hoje os usuários conectados eram:
> `who`
> FimMail
[user@host$:]

  • [ 2> ]: redireciona a saída de erro para um arquivo apagando seu conteúdo. Se o arquivo não existir, ele será criado.
Ex: [user@host$:] cat arqNaoExistente.txt 2> saidaDeErro.txt

  • [ 2>> ]: redireciona a saída de erro concatenando com o conteúdo do arquivo. Se o arquivo não existir, ele será criado.
Ex: [user@host$:] cat arqNaoExistente.txt 2>> saidaDeErro.txt

Estes útimos dois operadores podem ser utilizados em conjunto com os anteriores, redirecioando a saida para um arquivo e a saída de erro para outro.

Ex: [user@host$:] comando > saidaPadrao.txt 2> saidaErro.log

  • [ >&2 ]: redireciona a saída padrão para a saída de erro.

  • [ 2>&1 ]: Redireciona a saída de erro para a saída padrão. No exemplo abaixo toda a saída será escrita no arquivo.
Ex: [user@host$:] comando > saidaPadrao.txt 2>&1

  • [ >&- ]: fecha a saída de padão. As mensagens de erro não serão exibidas.

  • [ 2>&- ]: fecha a saída de erro. As mensagens de erro não serão exibidas.
Ex: [user@host$:] cat arqNaoExixtente.txt 2>&-
[user@host$:] ipconfig 2>&-

  • [ | ]: conecta a saída padrão com a entrada padrão de outro comando.
Ex: [user@host$:] ps -ax | grep bash

Exemplos gerais.
1. Armazenar todo o conteúdo de um script em um arquivo, para controlar seu log.
[user@host$:] ./backup.sh > /var/logs/logBackup.sh 2>&1
2. Armazenar todo o conteúdo de um script em um arquivo, para controlar seu log, sem apagar o conteúdo anterior.
[user@host$:] ./backup.sh >> /var/logs/logBackup.sh 2>&1
3. Procurar os arquivos modificados a mais de 30 dias
[user@host$:] find /home/public_html/ -type f -mtime +30 -exce ls {} \; > arquivosModif.txt

Fontes

  • http://www.inf.ufpr.br/afms03/shell3.html
  • http://www.mhavila.com.br/topicos/unix/shscript.html
  • http://www.vivaolinux.com.br/artigo/Operadores-de-redirecionamento/
  • http://www.ultramaratonahowto.com.br/2008/tutoriais/shell_ultra_maratona.pdf

07/11/2009

Códigos de redirecionamento Classe 5xx

São os códigos retornados pelos servidores quando uma uma página web é solicitada ou rastreada. O código retornado fornece informações sobre o status da solicitação, sobre o site e sobre a página solicitada.
Classe 5xx
Esses códigos de status indicam que o servidor teve um erro interno ao tentar processar a solicitação. Esses erros tendem a ocorrer com o próprio servidor, e não com a solicitação.
  • 500 (Erro interno): O servidor encontrou um erro e não pode completar a solicitação.
  • 501 (Não implementado): O servidor não tem o recurso necessário para completar a solicitação. Por exemplo, o servidor poderá retornar esse código quando não reconhecer o método da solicitação.
  • 502 (Gateway inválido): O servidor estava operando como gateway ou proxy e recebeu uma resposta inválida do servidor superior.
  • 503 (Serviço indisponível): O servidor está indisponível no momento (por sobrecarga ou inatividade para manutenção). Geralmente, esse status é temporário.
  • 504 (Tempo limite do gateway): O servidor estava operando como gateway ou proxy e não recebeu uma solicitação do servidor superior a tempo.
  • 505 (Versão HTTP incompatível): O servidor não é compatível com a versão do protocolo HTTP usada na solicitação.

Fontes:

06/11/2009

Códigos de redirecionamento Classe 4xx

São os códigos retornados pelos servidores quando uma uma página web é solicitada ou rastreada. O código retornado fornece informações sobre o status da solicitação, sobre o site e sobre a página solicitada.

Classe 4xx
Esses códigos de status indicam que provavelmente houve um erro na solicitação que impediu que o servidor a processasse.
  • 400 (Solicitação inválida): O servidor não entendeu a sintaxe da solicitação.
  • 401 (Não autorizado): A solicitação requer autenticação. O servidor pode retornar essa resposta para uma página que necessita de login.
  • 403 (Proibido): O servidor recusou a solicitação.
  • 404 (Não encontrado): O servidor não encontrou a página solicitada. Por exemplo, o servidor retornará esse código com frequência se a solicitação for para uma página que não existe mais no servidor.
  • 405 (Método não permitido): O método especificado na solicitação não é permitido.
  • 406 (Não aceitável): A página solicitada não pode responder com as características de conteúdo solicitadas.
  • 407 (Autenticação de proxy necessária): Esse código de status é semelhante ao 401 (não autorizado), mas especifica que o solicitante deve autenticar usando uma proxy. Quando o servidor retornar essa resposta, também indicará qual proxy o solicitante deverá usar.
  • 408 (Tempo limite da solicitação): O servidor atingiu o tempo limite ao aguardar a solicitação.
  • 409 (Conflito): O servidor encontrou um conflito ao completar a solicitação. O servidor deve incluir informações sobre o conflito na resposta. O servidor pode retornar esse código em resposta a uma solicitação PUT que entre em conflito com uma solicitação anterior, além de uma lista de diferenças entre as solicitações.
  • 410 (Desaparecido): O servidor retornará essa resposta quando o recurso solicitado tiver sido removido permanentemente. É semelhante ao código 404 (Não encontrado), mas às vezes é usado no lugar de um 404 para recursos que tenham existido anteriormente. Se o recurso foi movido permanentemente, você deve usar o código 301 para especificar o novo local do recurso.
  • 411 (Comprimento necessário): O servidor não aceitará a solicitação sem um campo de cabeçalho "Comprimento-do-Conteúdo" válido.
  • 412 (Falha na pré-condição): O servidor não cumpre uma das pré-condições que o solicitante coloca na solicitação.
  • 413 (Entidade de solicitação muito grande): O servidor não pode processar a solicitação porque ela é muito grande para a capacidade do servidor.
  • 414 (o URI solicitado é muito longo): O URI solicitado (geralmente um URL) é muito longo para ser processado pelo servidor.
  • 415 (Tipo de mídia incompatível): A solicitação está em um formato não compatível com a página solicitada.
  • 416 (Faixa solicitada insatisfatória): O servidor retorna esse código de status se a solicitação for para uma faixa não disponível para a página.
  • 417 (Falha na expectativa): O servidor não pode cumprir os requisitos do campo "Expectativa" do cabeçalho da solicitação.
Fontes: