Создайте новый архив один раз в минуту, используя "crontab"

9

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

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

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

    
задан LUXS 11.05.2016 в 14:43
источник

2 ответа

15

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

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

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

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

От man 5 crontab :

  

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

    
ответ дан heemayl 11.05.2016 в 14:47
источник
4

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

    
ответ дан YHOLGA 11.05.2016 в 18:03