Estoy intentando crear un archivo crontab
que cree un .tar
archivo nuevo cada minuto todos los días hábiles usando el siguiente código:
*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P
Esto no funciona. ¿Por qué?
Respuesta1
cron
trata %
como nuevas líneas. Debe usar escape, es decir, usarlo \%
para obtener literal %
como se usa en date
.
Así que tú necesitas:
date +"\%Y\%m\%d\%H\%M"
O puede usar una secuencia de comandos y usar todos los comandos en la secuencia de comandos y llamar a la secuencia de comandos desde crontab
.
De man 5 crontab
:
Los signos de porcentaje (%) en el comando, a menos que se usen como escape una barra invertida (\), se cambiarán a caracteres de nueva línea y todos los datos después del primer % se enviarán al comando como entrada estándar. No hay forma de dividir una sola línea de comando en varias líneas, como el "\" final del shell.
Respuesta2
Úselo \%
en lugar de %
- cron usa %
como nueva línea.