Utwórz nowe archiwum raz na minutę za pomocą „crontab”

9

Próbuję utworzyć plik, crontabktóry tworzy nowy .tarplik co minutę każdego dnia roboczego, używając następującego kodu:

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

To nie działa Dlaczego?

LUXS
źródło
Nie mogę przestać czytać tytułu jako „Utwórz każdą minutę archiwum przy użyciu crontab” (minuta jak mała), ponieważ brakuje artykułu (nie wina OP), więc go naprawiam.
kot
3
Dlaczego miałbyś skorzystać */1? Czy to nie to samo co tylko *?
naught101

Odpowiedzi:

15

crontraktuje %jak nowe linie. Musisz użyć ucieczki, tzn. Użyć, \%aby uzyskać dosłowność %taką, jak w date.

Potrzebujesz więc:

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

Lub możesz użyć skryptu i użyć wszystkich poleceń w skrypcie i wywołać skrypt z crontab.

Od man 5 crontab:

Znaki procentu (%) w poleceniu, chyba że poprzedzone znakiem odwrotnego ukośnika (\), zostaną zamienione na znaki nowego wiersza, a wszystkie dane po pierwszym% zostaną przesłane do polecenia jako standardowe wejście. Nie ma sposobu na podzielenie jednego wiersza poleceń na wiele wierszy, np. Końcowe „\” powłoki.

heemayl
źródło
4

Użyj \%zamiast %- cron używa %jako nowego wiersza.

YHOLGA
źródło