Создавайте новый архив раз в минуту с помощью «crontab»

Создавайте новый архив раз в минуту с помощью «crontab»

Я пытаюсь создать файл crontab, который будет создавать новый .tarфайл каждую минуту каждого рабочего дня, используя следующий код:

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

Это не работает. Почему?

решение1

cronобрабатывается %как перевод строки. Вам нужно использовать escape, т. е. использовать, \%чтобы получить литерал %, как используется в date.

Итак, вам нужно:

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

Или вы можете использовать скрипт и использовать все команды в скрипте, а затем вызывать скрипт из crontab.

От man 5 crontab:

Знаки процента (%) в команде, если они не экранированы обратной косой чертой (\), будут заменены на символы новой строки, а все данные после первого % будут отправлены в команду как стандартный ввод. Невозможно разделить одну командную строку на несколько строк, как в случае с завершающим "\" в оболочке.

решение2

Используйте \%вместо %- cron использует %как новую строку.

Связанный контент