Como posso escrever um script shell com dados grep diretos em um nome de arquivo baseado na data?
Pergunta
Basicamente, eu quero fazer isso:
grep 'example.com' www_log > example.com.YYYY-MM-DD-H:i:S.log
... com naturalmente o ser filename example.com.2008-09-27-11: 21: 30.log
Eu, em seguida, colocar isso em crontab para ser executado diariamente.
Solução
O método detalhado:
grep 'example.com' www_log > `date +example.com.%Y-%m-%d-%H:%M:%S.log`
O método concisa:
grep 'example.com' www_log > `date +example.com.%F-%T.log`
Outras dicas
grep 'example.com' www_log > example.com.$(date +%F-%T).log
Aqui é uma outra maneira, que eu costumo usar:
grep 'example.com' www_log > example.com.`date +%F-%T`.log
Backticks são uma forma de substituição de comando. Outra forma é usar $ ():
$(command)
que é o mesmo que:
`command`
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow