Я пытаюсь создать файл 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 использует %
как новую строку.