Estou tentando fazer um arquivo crontab
novo .tar
a cada minuto, todos os dias úteis, usando o seguinte código:
*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P
Isso não funciona. Por que?
Responder1
cron
trata %
como novas linhas. Você precisa usar escape, ou seja, usar \%
para obter literal %
como usado em date
.
Então você precisa de:
date +"\%Y\%m\%d\%H\%M"
Ou você pode usar um script e usar todos os comandos do script e chamar o script de crontab
.
De man 5 crontab
:
Os sinais de porcentagem (%) no comando, a menos que sejam escapados com barra invertida (\), serão alterados para caracteres de nova linha e todos os dados após o primeiro% serão enviados ao comando como entrada padrão. Não há como dividir uma única linha de comando em várias linhas, como o "\" final do shell.
Responder2
Use \%
em vez de %
- cron usa %
como nova linha.