Крон для не работы определенного дня, но всех других дней

Проблема состоит в том, что Ваше новое имя хоста не может быть разрешено к IP-адресу. Существует в основном два решения для Вашей проблемы.

Сначала один, но немного более сложное решение состоит в том, чтобы скорректировать имя хоста в /etc/hosts также. Необходимо будет корректироваться /etc/hosts каждый раз Вы изменяете свое имя хоста.

Второе и простое решение состоит в том, чтобы установить nss-myhostname. debian имя пакета libnss-myhostname поэтому просто установите его с apt-get install libnss-myhostname. Это позволит Вам всегда разрешать свое текущее имя хоста.

8
30.08.2013, 01:22
3 ответа

В том же духе к решению, предложенному @StephaneChazelas в комментариях, Вы могли указать диапазон дней в 3-м поле как диапазон для крона, что Вы хотите работать на каждом дне помимо 1-го из месяца.

Следующие две записи выполнили бы то, что Вы после:

   0 22 1 * *      /path/to/script/1st_of_the_month.bash    
   0 22 2-31 * *   /path/to/script/every_day_except_1st.bash
10
27.01.2020, 20:09
  • 1
    на самом деле, кажется, не работает на меня (если я не делаю, что-то не так) - форматирующий в комментариях ужасно - поэтому посмотрите мой pastbin для того, что я получаю: pastebin.com/RKvy5d4e –  SnakeDoc 30.08.2013, 21:32
  • 2
    ой, это должно быть 0 22 2-31 * * в Вашем примере. я отредактирую. –  SnakeDoc 30.08.2013, 21:40
  • 3
    @SnakeDoc - спасибо, все те столбцы начинают смешивать через некоторое время 8-) –  slm♦ 30.08.2013, 21:42
  • 4
    да, я забываю их также - я настроил их, затем забываю, как я сделал это (хорошая вещь для страницы справочника lol) –  SnakeDoc 30.08.2013, 21:57

Самый легкий способ иметь дело с этим, просто имеют одну запись крона. Измените сценарий удара для проверки даты - если это является 1-м из месяца, затем называют программу Java с ежемесячными параметрами, еще называют программу с ежедневными параметрическими усилителями.

Изменение сценария делает процесс более простым как сценарий, поскольку документ опишет лучше, что происходит, не запрашивая дополнительную информацию в таблице крона.

Модификации сценария могли выглядеть примерно так:

if [ $(date '+%d') == "1" ];then
   # monthly code
else
   # daily code
fi
8
27.01.2020, 20:09
  • 1
    закончил тем, что шел с этим решением. Я создал другой сценарий удара с Вашим примером кода, и в соответствии с ежемесячным журналом - он начнет ежемесячный сценарий удара (который в свою очередь подает ежемесячный аргумент базовой программе Java), ежедневно начинает ежедневный сценарий, и т.д. –  SnakeDoc 30.08.2013, 01:31
if [ $(date '+%d') == "1" ];then
  # monthly code
else
   # daily code
fi

Я думаю, что при использовании целочисленного сравнения, если более правильная

дата '+% d' возвращает 01, а не 1, использование == сравнения строк будет ложным

вместо

if [ $(date '+%d') eq 1 ];then
    # monthly code
else
   # daily code
fi
0
27.01.2020, 20:09

Теги

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