Крон перестал работать на единственном апострофе

Некоторые точки данных для знания с арены общественного транспорта:

  1. Каждая передача подвергается 10-минутному штрафу (если это не синхронизированная передача) в уме наездников. То есть мысленно прохождение, включающее единственную шину, которая занимает 40 минут, примерно эквивалентно 30-минутному прохождению, которое требует передачи.
  2. Максимальное расстояние, которое большинство людей готово обойти на автобусную остановку, составляет 1/4 мили. Вокзал / Скоростной трамвай приблизительно 1/2 мили.
  3. Расстояние не важно наезднику общественного транспорта. (Только время важно)
  4. вопросы Частоты (если соединение пропущено сколько времени до следующей шины). Наездники предпочтут более частые сервисные опции, если альтернатива будет скручена в течение часа для следующего экспресса.
  5. направляющая имеет более высокое предпочтение, чем шина (больше уверенности, что поезд прибудет и идти в правильном направлении)
  6. , Необходимость оплатить новый проезд имеет шумный успех. (добавьте о 15-20min штрафе)
  7. Общие вопросы времени прохождения также (с вышеупомянутыми штрафами)
  8. , Насколько бесшовный подключение? Наездник должен существовать крест вокзала оживленная улица? Или это, просто сходят с поезда и обходят 4 шага к шине?
  9. Пересекающиеся оживленные улицы - другой большой штраф на передачах - может опоздать на пересадку, потому что не может пересечь улицу достаточно быстро.
7
задан Jeremy Stein 31 December 2009 в 15:41
поделиться

3 ответа

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

  • Cron предоставляет ограниченную среду, например, минимальную $ PATH , и другие ожидаемые переменные отсутствуют.
  • Cron по умолчанию вызывает / bin / sh , тогда как вы можете использовать другую оболочку в интерактивном режиме.
  • Cron обрабатывает символ % специально (он превращается в новую строку в команде).
  • Команда может вести себя иначе, потому что для нее нет терминала.

Вы должны предварять все символы % символом \ в файле crontab, который указывает cron просто поместить в команду % , например

16 * * * * mysqldump myDB myTB > "/backup/ABCbc$(date +'\%d-\%b-\%Y-\%H-\%M').sql" 2> "/backup/ABCbc_errORS$(date +'\%d-\%b-\%Y-\%H-\%M').txt"

(Отдельно следует всегда заключать в двойные кавычки «$ variable_substitution» или «$ (подстановка команд)» , если вы не знаете, почему бы не сделать это в В противном случае, если содержимое переменной или выходные данные команды содержат пробелы или ? * \ [, они будут интерпретированы оболочкой.)

21
ответ дан 6 December 2019 в 09:20
поделиться

Пока в строке формата, заданной в качестве аргумента даты, нет пробелов, вам вообще не нужны галочки.

date +%d-%b-%Y-%H-%M

должно работать.

0
ответ дан 6 December 2019 в 09:20
поделиться

Вы используется синтаксис, не поддерживаемый / bin / sh. Попробуйте вызвать предпочитаемую оболочку и передать команду в качестве аргумента.

-1
ответ дан 6 December 2019 в 09:20
поделиться
Другие вопросы по тегам:

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