Возможный дубликат:
экранирование двойных кавычек и знаков процента (%) в 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. Зачем? Я должен сбежать от этого? И как?
Да, вам нужно избежать этого. Подойдет обратная косая черта.
Вы также можете поместить команду в сценарий и вместо этого вызвать сценарий.
Да, вам нужно избежать этого. Просто введите \
обратная косая черта перед каждым появлением %
.
В символ процента указывает новую строку в crontab.
Вы можете создать файл bash со своим скриптом, а затем добавить его в crontab.
Например: сделать файл 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