Posso excluir tudo /var/log
? Ou devo excluir apenas arquivos (recursivamente) /var/log
mas deixar pastas?
Alguém tem uma boa rm
linha de comando? (Minhas habilidades de administrador me deixam nervoso.)
Nota: Estou usando o Debian. Não sei qual versão.
Respostas:
Em vez de excluir os arquivos, você deve girá-los, por exemplo, usando
logrotate
.Você nunca sabe quando realmente precisará dos logs de algum tempo atrás; portanto, é melhor arquivá-los (até uma idade razoável, por exemplo, três meses).
logrotate
pode compactar seus arquivos de log antigos para que eles não ocupem muito espaço em disco.fonte
Se você excluir tudo em / var / log, provavelmente terminará com toneladas de mensagens de erro em muito pouco tempo, pois existem pastas que devem existir (por exemplo, exim4, apache2, apt, cups, mysql, samba e mais). Mais: existem alguns serviços ou aplicativos que não criarão seus arquivos de log, se eles não existirem. Eles esperam que pelo menos um arquivo vazio esteja presente. Portanto, a resposta direta à sua pergunta é "Não faça isso !!!" .
Como joschi apontou, não há razão para fazer isso. Tenho servidores debian em execução que não têm um único arquivo de log excluído há anos.
fonte
Exclua todos os arquivos:
Exclua todos os arquivos .gz e girados
Tente executar o comando sem "-delete", para testá-lo.
fonte
Estou clonando máquinas virtuais de um mestre. Faz todo o sentido limpar o log no mestre para que, quando você inicializar os clones, não obtenha o log do mestre. Eu fiz no tcsh:
que limpa os logs, mas mantém os arquivos.
fonte
Limpando todos os logs em um sistema Linux sem excluir os arquivos:
O Samba (
/var/www/samba
) cria nomes de arquivos de log com endereços IP, você pode excluí-los:fonte
cp /dev/null $CLEAN
por> $CLEAN
.Você pode usar a opção ctime para encontrar arquivos antigos ... por exemplo:
Como o bindbn explica, primeiro tente os arquivos de busca de busca e depois use a opção delete: D
fonte
/var/log
geralmente possui permissões dedrwxrwxr-x
, portanto, não é gravável pelo usuário, a menos que o usuário seja root ou pertença a um grupo privilegiado. Isso significa que novos arquivos de log não podem ser criados por usuários não privilegiados.Os aplicativos que esperam fazer logon em um ponto no interior
/var/log
costumam tocar um arquivo em algum lugar da/var/log
hierarquia durante o tempo de instalação (o que geralmente ocorre com privilégios elevados)chmod
echown
, nesse momento , terão permissão para obter as permissões apropriadas para os usuários não privilegiados que serão usando o aplicativoOs logs do Apache, por exemplo, geralmente são gravados por
nobody
, que é um usuário com o mínimo de privilégios possível para que o Apache faça seu trabalho sem colocar o sistema em risco indevido. Mas mesmo um aplicativo mais comum geralmente espera poder gravar em um arquivo de log/var/log
.Então, o que acontece se o arquivo de log e o caminho para o arquivo de log não existirem? Isso depende inteiramente da aplicação. Alguns aplicativos ignoram o registro silenciosamente. Outros criarão muitos avisos. E outros simplesmente se salvam. Não existe regra rígida; depende da vigilância do desenvolvedor de aplicativos, bem como da importância que o desenvolvedor considera sua capacidade de registrar. Na melhor das hipóteses, o aplicativo tentará gravar ou, possivelmente, criar e, em seguida, gravar em um arquivo de log em um destino interno
/var/log
, e não poderá fazê-lo porque está sendo executado por um usuário que não tem privilégios para gravar. essa parte do sistema de arquivos.Portanto, a resposta curta é não, não exclua tudo
/var/log
- ele quebra os usuários contratados com privilégios suficientes para fazer tais coisas com os aplicativos executados em seu sistema e causará algum ruído, alguma falha silenciosa no log e alguma quebra total.A ação apropriada a ser tomada é configurar
logrotate
com os arquivos de configuração apropriados. Normalmente, a rotação será associada a um trabalho cron. A rotação pode ser baseada em intervalo, tamanho ou ambos. É ainda possível configurar regras que evitem a rotação com base em intervalo se o arquivo de log ainda estiver vazio quando o intervalo expirar. A rotação pode incluir o envio de arquivos de log, compactação, exclusão, destruição e assim por diante.O usuário médio não precisa se preocupar muito com a rotação do log. Os desenvolvedores provavelmente desejam garantir que os logs que eles usam tenham regras de rotação estabelecidas. De fato, é provável que seja uma boa maneira dos desenvolvedores configurar a rotação de logs no momento da instalação para quaisquer logs específicos de software que o software criará e gravará.
fonte
Eu implementei um limpador simples aqui:
https://github.com/Lin-Buo-Ren/Coward-Unix-Log-Cleaner
Simplesmente:
/var/log
^.*/.+\.[[:digit:]]+(\.[[:alpha:]]+)?$
^.*/.+\.old$
(não diferencia maiúsculas de minúsculas)/var/log
^.*/.+\.log$
(não diferencia maiúsculas de minúsculas)fonte
crie um script executável e tente executar como root se o sudo não estiver funcionando para você
fonte