Проблема состоит в том, что Ваше новое имя хоста не может быть разрешено к IP-адресу. Существует в основном два решения для Вашей проблемы.
Сначала один, но немного более сложное решение состоит в том, чтобы скорректировать имя хоста в /etc/hosts
также. Необходимо будет корректироваться /etc/hosts
каждый раз Вы изменяете свое имя хоста.
Второе и простое решение состоит в том, чтобы установить nss-myhostname. debian имя пакета libnss-myhostname
поэтому просто установите его с apt-get install libnss-myhostname
. Это позволит Вам всегда разрешать свое текущее имя хоста.
В том же духе к решению, предложенному @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
Самый легкий способ иметь дело с этим, просто имеют одну запись крона. Измените сценарий удара для проверки даты - если это является 1-м из месяца, затем называют программу Java с ежемесячными параметрами, еще называют программу с ежедневными параметрическими усилителями.
Изменение сценария делает процесс более простым как сценарий, поскольку документ опишет лучше, что происходит, не запрашивая дополнительную информацию в таблице крона.
Модификации сценария могли выглядеть примерно так:
if [ $(date '+%d') == "1" ];then
# monthly code
else
# daily code
fi
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