Если код работает в браузере, вы можете использовать эту функцию для преобразования HTML-символов в реальные символы:
function decodeHtmlChars(instr) {
const textarea = document.createElement('textarea')
textarea.innerHTML = instr;
return textarea.value;
}
events = decondeHtmlChars(events[0][0])
Необходимо выйти из знаков процента с обратной косой чертой:
0 0 * * * pg_dump DB_NAME > /path/to/dumps/`date +\%Y\%m\%d`.dmp
От man 5 crontab
:
''Шестое'' поле (остальная часть строки) указывает команду, которая будет выполнена. Вся часть команды строки, до новой строки или символа %, будет выполняться/bin/sh или оболочкой, указанной в переменной SHELL crontab файла. Знаки процента (%) в команде, если не оставлено с обратной косой чертой (\), будут изменены в символы новой строки и все данные после того, как первый % будет отправлен в команду как стандартный вход. Нет никакого способа разделить единственную командную строку на несколько строк, как запаздывание оболочки "\".
Существует другая характерная проблема, которая может влиять на программы, запущенные cron
по сравнению с командной строкой (кроме интерпретации'%
'знаки, описанные Robert Gamble).
То различие находится в среде. Если прогон программы будет полагаться на специальные переменные среды, то он будет работать при выполнении его из командной строки со средой Вы обычно используете, и он будет, вероятно, работать при выполнении его с at
потому что это получает среду при создании задания. Но cron
не делает никакого специального параметра среды.
Я обычно, поэтому, настраиваю cron
запускать скрипты абсолютным путем и тот сценарий делает параметр среды, в котором я нуждаюсь (добавляет мой $HOME/bin
каталог для СОЕДИНЕНИЯ КАНАЛОМ, например). У меня даже есть стандартизированная инфраструктура для этого - сценарий оболочки, который устанавливает среду и запускает другие программы.
# @(#)$Id: crontab,v 4.2 2007/09/17 02:41:00 jleffler Exp $
# Crontab file for Home Directory for Jonathan Leffler (JL)
#-----------------------------------------------------------------------------
#Min Hour Day Month Weekday Command
#-----------------------------------------------------------------------------
0 * * * * /usr/bin/ksh /work1/jleffler/bin/Cron/hourly
1 1 * * * /usr/bin/ksh /work1/jleffler/bin/Cron/daily
23 1 * * 1-5 /usr/bin/ksh /work1/jleffler/bin/Cron/weekday
2 3 * * 0 /usr/bin/ksh /work1/jleffler/bin/Cron/weekly
21 3 1 * * /usr/bin/ksh /work1/jleffler/bin/Cron/monthly
Сценарий в /work1/jleffler/bin/Cron
устанавливает среду и затем запускает скрипт того же имени в /work1/jleffler/bin
сделать реальную работу. Имена в Cron
подкаталог является на самом деле всеми ссылками на тот же сценарий.