Como listar arquivos maiores que um timestamp específico?

0

Eu tenho um diretório no linux que tem uma lista de arquivos de log onde os arquivos de log são gerados automaticamente se algum trabalho for executado. Cada arquivo de log é anexado com o timestamp como "JobName_TimeStamp"

ATUALIZADO:

job_2014-05-28_15:05:26.log
job_2014-05-28_15:06:58.log
job_2014-05-28_15:07:02.log
job_2014-05-28_15:07:57.log
job_2014-05-28_15:08:00.log
job_2014-05-28_15:08:01.log
job_2014-05-28_15:08:09.log
job_2014-05-28_15:08:10.log
job_2014-05-28_15:08:11.log
job_2014-05-28_15:08:12.log
job_2014-05-28_15:08:13.log
job_2014-05-28_15:08:14.log
job_2014-05-28_15:08:22.log

job1_2014-05-28_15:08:11.log
job1_2014-05-28_15:08:12.log
job1_2014-05-28_15:08:13.log
job1_2014-05-28_15:08:14.log
job1_2014-05-28_15:08:22.log

Eu queria executar um comando linux para listar todos os arquivos maiores que um timestamp em particular?

Para o exemplo 1: vou passar dois parâmetros, Se o TimeStamp fornecido for " 2014-05-28_15: 08: 00 " e Nome do trabalho for " job "

Eu deveria pegar a lista como

job_2014-05-28_15:08:01.log
job_2014-05-28_15:08:09.log
job_2014-05-28_15:08:10.log
job_2014-05-28_15:08:11.log
job_2014-05-28_15:08:12.log
job_2014-05-28_15:08:13.log
job_2014-05-28_15:08:14.log
job_2014-05-28_15:08:22.log

Exemplo 2: vou passar dois parâmetros, Se o TimeStamp fornecido for " 2014-05-28_15: 08: 11 " e Nome do trabalho for " job1 "

Eu deveria pegar a lista como

job1_2014-05-28_15:08:12.log
job1_2014-05-28_15:08:13.log
job1_2014-05-28_15:08:14.log
job1_2014-05-28_15:08:22.log

Alguma solução?

Obrigado.

    
por Kabilan 28.05.2014 / 11:38

2 respostas

1

O comando a seguir, que pode ser facilmente roteirizado, fará isso por você:

 for i in $(ls *); do
           if [[ "job_2014-05-28_15:08:00.log" < "$i" ]]; then
                  echo $i
           fi
 done

EDITAR:

Suponha que você queira fazer isso apenas para trabalhos chamados myjob e, em seguida, modifique os itens acima da seguinte maneira:

 for i in $(ls myjob*); do
           if [[ "myjob_2014-05-28_15:08:00.log" < "$i" ]]; then
                  echo $i
           fi
 done
    
por 28.05.2014 / 12:20
1

Comando de localização simples:

find . -maxdepth 1 -type f -name job1_\* -newer job1_2014-05-28_15:08:11.log

Existem 2 suposições neste exemplo:

  • mtime de arquivos de log correlacionados a carimbos de data e hora em nomes de arquivos
  • você pode fornecer um nome de arquivo específico que seja o limite inferior para todos os arquivos de log desejados
por 28.05.2014 / 15:33

Tags