1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Apache HTTP Server | RSync (Expert help needed)

Discussão em 'Novidades GNU/Linux & *nix World' iniciada por Condez, 30 de Março de 2006. (Respostas: 6; Visualizações: 724)

  1. Condez

    Condez [email protected] Member

    Boas pessoal.

    Tal como o tópico indica, venho-vos pedir ajuda na resolução de dois problemas; um relacionado com o Apache HTTP Server e outra com o Rsync.

    O sistema operativo usado é o Linux (várias distrbuições, pricipalmenmte Debian Sarge)

    ------------- //------------------//--------------------//------------------------//

    1º Questão:

    Tenho à minha responsabilidade um Web server com o Apache2 instalado.
    O apache tem vários Virtual Servers configurados. Usa-se uma ferramenta denominada "Webalyser" para criar registos gráficos das estatisticas de acesso.

    O Webalyser vai usar os logs gerados pelo apache para fazer as estatisticas.


    O que eu necessito é que os logs do Apache HTTP Server contenham (para alem da informação pré-definida) o URL da página que faz o redirect para as existentes no no nosso servidor, por exemplo:

    Vamos supor que tenho alojada a página "www.teste.com"; e que alguem vai ao google, faz uma pesquisa e aparece lá o link para "www.teste.com";

    Eu necessito que nos logs do Apache apareca o URL da página que fez o redirect, neste caso a do google.

    Já perdi dias com isto e não consigo descobrir qual a linha de código a adicionar ao Apache.conf para me gerar Logs com esta informação.


    ------------- //------------------//--------------------//------------------------//

    2º Questão:

    Sou responsável por alguns servidores, onde está implementada uma politica de backup de sincronização de pastas, entre diversos servers e um server central de backup; sendo esta sincronização efectuada pelo protocolo RSync 2.5.6cvs;

    Na linha de comando é usado os argumentos "-av --delete -x", um ficheiros para exclusão de directorias e outro para password de acesso aos servers onde vai buscar a informação; é o próprio backup server que vai buscar a informação. O user "Root" é o usado.

    Ora, o problema reside no seguinte: á vários servidores onde a sincronização não fica certa, e não consigo perceber o porquê.
    Ele não devolve erro nenhum, dá até tudo como ok.

    Mas quando vou verificar as pastas não estão iguais.
    Novamente já perdi imenso tempo com isto, mas também não consigo perceber a razão.


    ------------- //------------------//--------------------//------------------------//

    Estou mesmo enrrascado com isso e necessito muito da vossa ajuda.

    Obrigado.
    Um abraço.
     
  2. badsatan

    badsatan Power Member

    1. procura no httpd.conf por "LogFormat" vêm lá exemplos de como adicionar o referer.
    2. só com a informação que dás é complicado perceber o que se está a passar.
     
  3. Condez

    Condez [email protected] Member

    1.

    apache2.conf:

    LogFormat "%v %h %l %u %t \"%r\" %s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

    Esta é a string que tenho para gerar logs.


    Conteudo dos logs:

    www.site-em-questao.com 201-26-119-208.dsl.telesp.net.br - - [02/Apr/2006:00:39:23 +0100] "GET /images/header_cart.gif HTTP/1.1" 200 449 "http://www.site-em-questao.com/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)"

    Sendo que "www.site-em-questao.com" é um dos meus Virtual Hosts.

    Ora, eu precisava que nos logs me aparece-se o link da página de onde foi feito o redirect (nos casos em que isso se aplique).

    Por exemplo: Procurar no Google e fazer o redirect de lá para o "www.site-em-questao.com" e nos logs aparecer lá a página do Google.



    2.

    Corro o Rsync para fazer a sincronização de pastas entre servidores.

    A dificuldade com que me deparo, é que muitas das vezes, após correr o Rsync verifico que essas mesmas pasta não estão sincronizadas.

    Quando corro o Rsync, uso como argumentos "-av --delete -x", uso um ficheiro que vai indicar quais as pastas às quais ele NÃO vai fazer a sincronização e uso outro ficheiro que dá a indicação ao Rsync qual a password para aceder ao servidor onde vai fazer a já referida sincronização.




    Espero que desta vez tenha sido um pouco mais explicito.
    Caso não tenha sido, não exites em me questionar sobre o que necessitares.

    Estes problemas têm que ser resolvidos com caracter urgente e estou mesmo a necessitar de ajuda.



    Obrigado.
    Um abraço.
     
  4. badsatan

    badsatan Power Member

    1.
    Está correcto o que estás a fazer. O %{REFERER}i é que te sacar o último url antes de chegar ao teu site... mas atenção, esta directiva vai buscar o HTTP_REFERER que vai no header do request, e isso pode nem sempre ser feito ou sequer ser feito de forma correcta (é o browser que é responsável por fazer o set deste header)

    Seja como for, não podes fazer grande coisa mais do que já tens.

    2.
    disseste basicamente o mesmo.
    A linha exacta usada para fazer o rsync bem como o ficheiro de exclusão é que dava jeito. Com esta informação limitada desconfio que sejam os padrões de exclusão que estejam a excluir mais do que pretendes. Verifica se os ficheiros que faltam têm nomes que obedeçam a um dado padrão.
     
  5. Condez

    Condez [email protected] Member

    1. Tenho alguma outra forma para tornear a questão e produzir os logs desejados?

    2. Rsync -av --delete -x --exclude-from=ficheiro_de_exclusao [email protected]:/directoria_remota /directoria_local


    Conteudo do ficheiro_de_exclusão:

    (1ºlinha) /proc
    (2ºlinha) /dev
     
  6. badsatan

    badsatan Power Member

    1. não, do teu lado já estás a fazer tudo o que podes. Se o browser não envia a info, não se pode fazer nada.

    2. parece tudo bem, embora eu prefira pôr as barras à frente das directorias (faz diferença na forma como a cópia é feita), assim:
    $ rsync -av --delete -x --exclude-from=ficheiro_de_exclusao [email protected]:/directoria_remota /directoria_local/

    ou mais explicitamente:

    $ rsync -av --delete -x --exclude-from=ficheiro_de_exclusao [email protected]:/directoria_remota/. /directoria_local/.

    Coisas que podem estar a acontecer tb é o rsync não conseguir ler alguns dos ficheiros da origem, por estarem locked, por exemplo. Mas era suposto dar algum aviso no fim da cópia.
    Podes sempre fazer vários rsyncs iguais de seguida para tentar garantir que a cópia fica bem feita. Exemplo

    rsync -av --delete source/. dest/.
    sleep 5
    rsync -av --delete source/. dest/.
    sleep 5
    rsync -av --delete source/. dest/.
     
  7. Condez

    Condez [email protected] Member

    1.

    Ok.
    Entretanto, estive hoje a instalar no server o programa AWStats, tens algum conhecimento sobre esse programa? Sabes se é alguma mais-valia ou se faz o mesmo que o Webaliser?
    É que custuma-mos usar o Webaliser, mas recomendaram-nos este AWStats e decidimos experimentar.


    2.

    Vou experimentar como dizes.
    Depois dou-te algum feedback.



    Obrigado.
    Um abraço.
     

Partilhar esta Página