Crie um novo arquivo uma vez por minuto usando "crontab"

9

Estou tentando criar um arquivo crontabque cria um novo .tararquivo 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ê?

LUXS
fonte
Não consigo parar de ler o título como "Torne cada minuto de arquivamento usando o crontab" (minuto em tamanho pequeno) porque o artigo está ausente (não é culpa do OP), por isso estou corrigindo.
gato
3
Por que você usaria */1? Não é o mesmo que apenas *?
N

Respostas:

15

crontrata %como novas linhas. Você precisa usar escape, ou seja, usar \%para obter 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 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 "\" à direita do shell.

heemail
fonte
4

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

YHOLGA
fonte