Faça um novo arquivo uma vez por minuto usando "crontab"

9

Estou tentando criar um crontab que crie um novo arquivo .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 quê?

    
por LUXS 11.05.2016 / 16:43

2 respostas

15

cron trata % como novas linhas. Você precisa usar escape, ou seja, use \% para obter o literal % como usado em date .

Então você precisa:

date +"\%Y\%m\%d\%H\%M" 

Ou você pode usar um script e usar todos os comandos do script e chamar o script em crontab .

De man 5 crontab :

  

Porcentagem de sinais (%) no comando, a menos que tenha escapado com barra invertida (\),   será alterado para caracteres de nova linha e todos os dados após o primeiro   % será enviado para o comando como entrada padrão. Não há como   dividir uma única linha de comando em várias linhas, como o   shell "\" à direita.

    
por heemayl 11.05.2016 / 16:47
4

Use \% em vez de % - o cron usa % como nova linha.

    
por YHOLGA 11.05.2016 / 20:03

Tags