Estou tentando redirecionar o stdout e o stderr para um arquivo de log. O nome do arquivo deve ser criado dinamicamente com o carimbo de data/hora atual.
Eu posso criar o nome do arquivo com o seguinte comando:
$ date +%Y-%m-%d_%H-%M-%S.txt
2018-04-10_16-55-55.txt
Então eu quero fazer algo assim:
mycommand &> (date +%Y-%m-%d_%H-%M-%S.txt)
Mas isso não funciona ( -bash: syntax error near unexpected token
('`)
Sim, você precisará usar uma substituição de comando:
Qual é
bash
-falar paraQue é o mesmo que
(
%F
é o mesmo que%Y-%m-%d
)Uma substituição de comando,
$(...)
, será substituída pela saída do comando interno.O que você usou foi um sub-shell,
(...)
. Um sub-shell não pode aceitar redirecionamentos como esse.Tente isto:
Eu sou mex1can, espero que seja útil no seu crontab
Your_shell >>
date “+\%Y\%m\%d”
.logObs.- se você não usar ` (sotaque inglês) não vai funcionar.
Trará a você YYYYMMDD.log: ou seja, 20200418.log