Como gerar automaticamente um arquivo de um script com a data atual como nome do arquivo?

1

Eu tenho um script de shell que gera algumas saídas. A saída é gravada em um arquivo. No meu cronjob eu tenho isso: ./myscript.sh --options > saída Como o cronjob é executado toda semana, eu gostaria de manter uma lista de saídas em vez de sobrescrevê-las toda vez que o script for executado. Então, idealmente, eu gostaria de ter o nome do arquivo de saída como output_ data . Data é a data de execução do script atual. No Unix, o comando date pode fornecer informações sobre a data atual, mas como eu poderia integrar isso no nome do arquivo de saída?

Atualização:

Já experimentou os métodos de Heath e wfaulk, funciona bem. No entanto, quando coloco o mesmo comando no cronjob, comecei a receber o erro: / bin / sh: -c: linha 0: EOF inesperado ao procurar correspondência ')' / bin / sh: -c: linha 1: erro de sintaxe: fim de arquivo inesperado

Eu sei que é causado pela saída para um arquivo chamado output _ $ (date +% Y% m% d) já que essa foi a única alteração que fiz. Existe uma maneira diferente de fazer isso no cronjob?

    
por swingfuture 02.10.2009 / 20:42

4 respostas

5
myscript.sh > output_$(date +%Y%m%d)
    
por 02.10.2009 / 20:48
3

O comando date faz o que você pediu, mas logrotate é para o que você está tentando fazer e vai manter as coisas limpas ... Vale a pena aprender na minha opinião.

    
por 02.10.2009 / 21:45
2
./myscript.sh --options > output_$(date)

Mas você provavelmente quer usar um formato de data diferente para que não tenha espaços e lixo nele. Algo como:

./myscript.sh --options > output_$(date +%Y%m%d.%H%M%S)

Na chance de que seu shell não suporte a sintaxe $ (), substitua o $( e seu ) correspondente por um com " ' " (backtick).

    
por 02.10.2009 / 20:48
0

./ myscript.sh --options > saída _ $ (data)

    
por 03.10.2009 / 08:48

Tags