Para um determinado diretório, como faço para concatenar o final de arquivos recentemente modificados em um novo arquivo?

0

Caso haja uma solução melhor para o problema, meu objetivo é poder analisar rapidamente TODAS as atividades recentes do apache em / usr / local / apache / domlogs. A utilidade disso é quando a carga do servidor está passando pelo telhado. Eu quero ver rapidamente quais sites estão sendo martelados (e quais URLs) sem ter que individualmente grep / awk em domlogs.

Por exemplo, eu sei que posso obter uma lista dos domlogs de acesso do apache ativos recentemente usando este comando dentro do diretório domlogs:

find -regex '.*\.\(com\|org\|net\|biz\|info\)' -mmin -1

Agora, o que eu gostaria de fazer é concatenar as 1000 linhas finais de cada um desses arquivos em um novo arquivo, para que eu possa analisá-lo rapidamente e ver de onde vem todo o tráfego.

    
por Canton Becker 28.07.2014 / 21:07

1 resposta

1

Você pode usar a opção -exec :

find -regex '.*.(com\|org\|net\|biz\|info)' -mmin -1 \
    -exec tail -n 1000 "{}" >> logs.txt +

Agora, todas as últimas 1000 linhas de cada arquivo em domlogs são gravadas no arquivo logs.txt , separadas por nome de arquivo.

-exec command {} + informa ao find para executar o comando com arquivos encontrados, a linha de comando é criada anexando cada nome de arquivo no final. Essa opção funciona com a combinação de linha de find pipe para xargs .

Veja mais:

por 28.07.2014 / 21:13