Como usar “data” para imprimir o dia da semana de amanhã

4

No CentOS 6 Linux eu uso date +%a em vários cronjobs e scripts para gerar nomes de logfiles como myprog-Tue.txt e isso funciona bem para mim desde muitos anos.

Mas agora, para um programa, preciso excluir os arquivos de log anteriores, ou seja, no meu cronjob antes de iniciar meu programa e redirecionar sua saída para myprog-Tue.txt , gostaria de excluir o myprog-Wed.txt .

Desta forma, gostaria de obter os arquivos de log antigos do meu caminho, mas ainda ter 5-6 dias de arquivos de log ao redor.

Então eu tentei:

# date -v+1d +%a
date: invalid option -- 'v'
Try 'date --help' for more information.

Alguém sabe o que há de errado aqui, por favor?

    
por Alexander Farber 01.08.2014 / 17:55

4 respostas

6

Você faria isso assim:

date -d "+1 days" +%a

Isso processa:

Sat

    
por 01.08.2014 / 18:07
11

O problema não é como você pode usar date para produzir o que você quer ... seu problema é:

This way I'd like to get the old logfiles out of my way, but still have 5-6 days of logfiles around.

Então, por que não usar find para remover todos os arquivos, mas esta semana?

find /path/to/files/ -mtime +7 -exec rm {} \;

Além disso, date tem muitas implementações diferentes - Lembro-me da última vez que usei, foi meio difícil encontrar o flags certo para fazer o que eu queria ... e não foi fácil fazer isso funcionam da mesma maneira entre uma máquina Linux e uma máquina AIX ... então, caso este comentário ajude você a decidir contra date :)

    
por 01.08.2014 / 18:11
1

Use a opção -d para especificar uma frase:

date -d '+ 1 day' +%a
    
por 01.08.2014 / 18:04
1

Outra entrada para "como gerenciar seus arquivos de log" ....

Você pode ver logrotate , que deve fazer parte da maioria das distribuições Linux. Pode gerenciar exclusão e compactação. Muitos daemons do Linux usam isso, então você pode ver alguns exemplos de arquivos de configuração.

Um pouco mais simples é o rotatelogs que lida com a parte de rotação, mas não faz nada exclusão (seu find ... -delete faria isso.

    
por 01.08.2014 / 19:31

Tags