próximo acima anterior sumário índice
Próximo: 25.7 Arquivos Diversos Acima: 25. C News Anterior: 25.5 Loteando Artigos   Sumário   Índice


25.6 Expiração de Notícias

Em Bnews, a expiração de artigos é executada por um programa chamado expire, o qual recebe uma lista de grupos de notícias como argumentos, em conjunto com uma especificação de número de dias após os quais os artigos devem ser considerados expirados. Para ter-se prazos de expiração diferentes para diferentes hierarquias, deve-se configurar um programa interpretado que acione expire para cada um deles separadamente. Já o programa C News oferece uma solução mais conveniente: disponibiliza um arquivo chamado explist, onde podem ser especificados os grupos de notícias e os intervalos de expiração. Um comando chamado doexpire é executado normalmente uma vez ao dia a partir do cron e processa todos os grupos de acordo com esta lista. Ocasionalmente pode-se desejar manter certos artigos de certos grupos, mesmo após o seu prazo de expiração, como por exemplo os artigos postados em
comp.sources.unix. Este processo é chamado de arquivamento. O arquivo explist permite que se indique grupos de notícias para arquivamento.

Uma entrada no arquivo explist tem o seguinte formato:



lista_de_grupos é uma lista dos grupos de notícias, separada por vírgulas, aos quais a entrada se aplica. Hierarquias podem ser especificadas fornecendo-se ao grupo o nome do prefixo, seguida opcionalmente da palavra all. Por exemplo, uma entrada para todos os grupos sob comp.os pode ser representada por comp.os ou comp.os.all neste campo.

Na expiração de notícias de um grupo, o nome é verificado nas entradas disponíveis em explist na ordem informada. Por exemplo, para eliminar a maioria dos artigos de comp após quatro dias, exceto os disponíveis em comp.os.linux.announce, que devem ser mantidos por uma semana, basta especificar uma entrada para o último com um prazo igual a 7 e a seguir uma entrada para comp, com a especificação de 4 dias.

O campo permissões define se a entrada se aplica a grupos moderados, não moderados ou a todos, os quais são representados pelos valores m, u ou x, respectivamente.

O terceiro campo, prazo, normalmente contém um único número, significando o número de dias, após o qual os artigos estarão expirados, caso eles não tenham recebido uma data de expiração própria no campo do cabeçalho definido como Expires:. Deve-se atentar que o número de dias refere-se à chegada do artigo no site local e não à data da postagem.

O campo prazo pode, no entanto, ser um pouco mais complexo. Ele pode ser a combinação de até três números, separados por um hífen. Neste caso, o primeiro indica o número de dias para que o artigo se torne um candidato à expiração. Raramente se utiliza um valor diferente de zeros. O segundo subcampo indica o número de dias padrão após o qual os artigos serão considerados expirados. O terceiro indica o número de dias de expiração incondicional, independente do conteúdo do campo Expires:. Caso somente o segundo subcampo for informado, os outros dois assumirão seus valores padrão. Eles podem ser definidos através da entrada especial /bounds/, definida a seguir.

O quarto campo, arquivar, define se o grupo de notícias será arquivado e onde. Caso nenhum arquivamento seja definido, um traço deve ser usado para especificar esta situação. Caso contrário deve-se especificar o nome completo do caminho (apontando para um diretório) ou para o caracter (@), o qual significa que o diretório padrão de arquivamento deve ser fornecido ao programa doexpire através da opção -a na linha de comando. Um diretório de arquivamento deve pertencer ao usuário news. Quando o programa doexpire arquiva um artigo digamos de comp.sources.unix, ele o armazena em comp/sources/unix sob o diretório de arquivamento, criando-o caso ele não exista. O diretório de arquivamento porém não será criado.

Há duas entradas especiais no arquivo explist, nas quais o programa doexpire se baseia. Ao invés de uma lista de grupos de notícias, pode-se informar as palavras chaves /bounds/ e /expired/. A entrada /bounds/ contém os valores padrão para os três valores do campo prazo acima descrito.

A expressão /expired/ determina por quanto tempo C News irá manter as linhas no arquivo history. Isso é necessário porque C News não irá remover a linha do arquivo de histórico, uma vez que o artigo correspondente tenha expirado, a fim de evitar que o artigo seja recebido novamente em duplicidade. Caso os arquivos sejam recebidos a partir de um único site, pode-se manter valores pequenos neste campo. De outra forma, algumas semanas pode ser uma valor razoável para sites UUCP, dependendo da experiência do administrador com os prazos médios de recebimento de notícias. Caso o site utilize NNTP e esteja conectado a Internet um prazo médio de uma semana deverá ser mais que suficiente para atender a esta particularidade.

Um exemplo de um arquivo explist com alguns prazos de expiração é apresentado a seguir:



A expiração em C News pode trazer uma série de situações complexas. Uma delas, reside no fato do leitor de notícias utilizar o terceiro campo do arquivo active, o qual contém o número do menor artigo online. Na expiração de artigos, C News não atualiza este campo. Caso seja necessário que ele represente a real situação, deve-se executar o programa chamado updatemin após cada execução do programa doexpire.25.7

Segundo, C News não executa o processo de expiração pesquisando os diretórios de grupos de notícias e sim o arquivo de histórico, na verificação dos prazos de expiração.25.8 Caso o arquivo de histórico de alguma forma saia de sincronismo, artigos podem ser esquecidos no disco para sempre, já que C News passa simplesmente a ignorar a sua existência.25.9 Pode-se corrigir esta situação usando o programa addmissing no diretório /usr/lib/news/bin/maint, o qual irá adicionar qualquer artigo faltante ao arquivo history, ou através do programa mkhistory, o qual reconstrói totalmente o arquivo history. Não se deve esquecer que na execução destes programas deve-se ser o usuário news, ou o arquivo history não poderá ser lido pelo programa C News.


próximo acima anterior sumário índice
Próximo: 25.7 Arquivos Diversos Acima: 25. C News Anterior: 25.5 Loteando Artigos   Sumário   Índice
www.conectiva.com