2016-10-13 11 views
0

Я пишу шаблон sls в соляной кассе и пытался правильно написать запись cronjob, но я не могу это сделать, потому что компилятор всегда кричит о синтаксической проблеме, потому что кажется, что экранирование не работая, как я думал. Мне нужно, чтобы сбрасываемые обратные косые черты внутри команды cron также вызывали иначе, иначе cronjob не будет правильно использовать форматирование charackters.Символ, передающий салфетку Экранирование обратной косой черты и двойные кавычки для cronjobs Переменные

это код в шаблоне

{{instance}} cron-entry-for-backup-daily: 
cron.present: 
    - user: root 
    - name: "{{ online_basedir }}/online_tools/db-tools.py -b {{ settings.port }} -s {{ settings.online_master }} -x {{ instance + '.domain.name' }} backup -d {{ instance }} -f {{ '/opt/onlinebackupdir/' + instance + '/' + instance + '-odoo_db-' + '`date' + '\"' + '+\%Y_\%m_\%d-\%H_\%M' + '\"' + '`' + '_daily.zip'}}" 
    - minute: '*' 
    - hour: '22' 
    - daymonth: '*' 
    - month: '*' 
    - dayweek: '1-6' 
    - identifier: {{ instance + '_dailybackup' }} 
    - comment: 'Installed via Salt' 

запись cronjob должен выглядеть следующим образом

* 22 * * 1-6 /opt/online/online_tools/db-tools.py -b 63000 -s xyz123 -x sub.domain.name backup -d dbname -f /opt/onlinebackupdir/dbname/dbname-odoo_db-`date "+\%Y_\%m_\%d-\%H_\%M"`_daily.zip 

Если я выполнить это в командной строке это будет работать, если я выполнить его через хрон он работает. ... сообщение

Ошибка:

я не могу скомпилировать мой код из файла СЛС ожидается, но нашел '' в "", строка 124, столбец 154: ... ckupdir/имя_бд/имя_бд-odoo_db- date"+\%Y_\%m_\%d-\%H_\%M" _daily.zip»

Я уже пробовал некоторые способы, но я думаю, что я не могу решить это на данный момент, чтобы уже много мертвых мозгов :-(может быть, кто-то знает решение, я также проверил документы jinja для побега ао ... но я сейчас беспомощен

пытается:

'`date +\%Y_\%m_\%d-\%H_\%M`' --> error 
'`date "+\%Y_\%m_\%d-\%H_\%M"`' --> error 
'`date \"+\%Y_\%m_\%d-\%H_\%M\"`' --> error 
'`date '+'\%Y_\%m_\%d-\%H_\%M`' --> error 
'`date '+\%Y_\%m_\%d-\%H_\%M'`' --> error 
'`date \"+"\%Y_\%m_\%d-\%H_\%M"\"'`' --> error 
'`date' + '"' + '+\%Y_\%m_\%d-\%H_\%M' + '"' + '`' --> error 
'`date' + '"' + '+\%Y_\%m_\%d-\%H_\%M' + '"' + '`' --> error 
'`date +%Y_%m_%d-%H%M`' --> compiled and worked in command line but not inside crontab % needs to be escaped 

в то же время я попытался это слишком

"{{ online_basedir }}/online_tools/db-tools.py -b {{ settings.port }} -s {{ settings.online_master_pw }} -x {{ instance + '.domainname.net' }} backup -d {{ instance }} -f {{ '/opt/onlinebackupdir/' + instance + '/' + instance + '-odoo_db-' }} + {% raw %} `date "+\%Y_\%m_\%d-\%H_\%M"` {% endraw %} + {{'_daily.zip'}}" 
"{{ online_basedir }}/online_tools/db-tools.py -b {{ settings.port }} -s {{ settings.online_master_pw }} -x {{ instance + '.domainname.net' }} backup -d {{ instance }} -f {{ '/opt/onlinebackupdir/' + instance + '/' + instance + '-odoo_db-' + {% raw %} `date "+\%Y_\%m_\%d-\%H_\%M"` {% endraw %} + '_daily.zip'}}" 

Это не работает либо

ответ

0

ОК я решил эту проблему с помощью этого решения, может быть, это не самый лучший способ, но он решает мою проблему .... Если кто-то читает это я был бы заинтересован в том, почему {% raw %} .... {% endraw % } не работает

РЕШЕНИЕ:

«{{online_basedir}}/online_tools/db-tools.py -b {{settings.port}} -s {{настройки. online_master_pw}} -x {{instance + '.domainname.net'}} backup -d {{instance}} -f {{'/ opt/onlinebackupdir /' + instance + '/' + instance + '-odoo_db-' + 'date \\\"+\\\\%Y_\\\\%m_\\\\%d-\\\\%H_\\\\%M\\\"' + '_weekly.zip'}}»

теперь строка в кронтаб выглядит точно так же, как мне это нужно:

.......`date "+\%Y_\%m_\%d-\%H_\%M"`..... .zip 

РЕЗУЛЬТАТ в моей папке с резервными копиями: instance-odoo_db-2016_10_19-22_00_daily.zip

 Смежные вопросы

  • Нет связанных вопросов^_^