Crea un nuovo archivio una volta al minuto usando "crontab"


9

Sto cercando di creare un file crontabche crea un nuovo .tarfile ogni minuto ogni giorno lavorativo utilizzando il seguente codice:

*/1 * * * 1,2,3,4,5 tar -cf /home/user/Archiv/$(date +"%Y%m%d%H%M").tar /home/user/Textverarbeitung/ -P

Questo non funziona Perché?


Non riesco a smettere di leggere il titolo come "Rendi ogni minuto dell'archivio usando crontab" (minuto come in piccolo) perché l'articolo manca (non per colpa di OP), quindi lo sto risolvendo.
cat

3
Perché dovresti usare */1? Non è lo stesso del solo *?
naught101

Risposte:


15

crontratta %come newline. Devi usare escape it cioè usare \%per ottenere letterale %come usato in date.

Quindi hai bisogno di:

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

Oppure puoi usare uno script e usare tutti i comandi nello script e chiamare lo script da crontab.

Da man 5 crontab:

I segni di percentuale (%) nel comando, a meno che non siano salvati con una barra rovesciata (\), verranno modificati in caratteri di nuova riga e tutti i dati dopo il primo% verranno inviati al comando come input standard. Non c'è modo di dividere una singola riga di comando su più righe, ad esempio "\" finale della shell.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.