Cron не выполняет команду после знака % в ней [дубликат]

Возможный дубликат:
экранирование двойных кавычек и знаков процента (%) в cron

У меня есть следующая команда в cron:

5 6 * * * bash -c "tar -czf /backups/sites-server-files-rotate/sites_`date +%F`.tar.gz /backups/sites-server-files/"

Но команда не выполняется. И я вижу следующее в журнале cron:

Apr 17 06:05:01 backup crond[9423]: (root) CMD (bash -c "tar -czf /backups/sites-server-files-rotate/sites_`date +)

Похоже, что знак % обрезает команду в cron. Почему? Нужно ли его убрать? И как?

2
задан 13 April 2017 в 15:14
3 ответа

Да, вам нужно сбежать. Подойдет обратная косая черта.

Вы также можете поместить команду в сценарий и вместо этого вызвать сценарий.

3
ответ дан 3 December 2019 в 09:06

Да, вам нужно сбежать. Просто набирайте \ обратную косую черту перед каждым появлением % .

Символ процента обозначает новую строку в crontab.

3
ответ дан 3 December 2019 в 09:06

Вы можете создать файл bash со своим скриптом, а затем добавить его в crontab.

Например: make file script.sh

#!/bin/bash

tar -czf /backups/sites-server-files-rotate/sites_\`date +%F\`.tar.gz /backups/sites-server-files/

Затем добавьте в cron:

5 6 * * * /dir/to/your/script.sh
1
ответ дан 3 December 2019 в 09:06

Теги

Похожие вопросы