Возвраты $HOSTNAME, пустые в rc.local сценарии

Я выполняю некоторый сценарий на своем запуске сервера, с помощью rc.local файл (как предложено на этом ответе SQ.

Сценарий посылает электронное письмо моему адресу notifiying меня, которого запустил сервер.

Это - содержание моего /etc/rc.local файл:

#!/bin/sh -e
echo "The $HOSTNAME server has started" | mail -s "[$HOSTNAME] start up" me@example.com
exit 0

Очевидно, me@example.com заменяется правильным значением в фактическом сценарии

Сценарий действительно выполняется при запуске, и я получаю электронное письмо в своем ящике входящих сообщений, как ожидалось... НО! Поскольку заголовок подразумевает, $HOSTNAME не заменяется фактическим именем хоста моего сервера; это - просто пробел. Вот детали электронного письма, которое я получаю:

Subject: [] start up
To: <me@example.com>
X-Mailer: mail (GNU Mailutils 3.4)
Message-Id: <20200131132017.0827D42DA2@example.com>
Date: Fri, 31 Jan 2020 14:20:16 +0100 (CET)
From: root <root@example.com>

The  server has started

Заметьте пустые скобки в предмете и пространство между The и server на содержании.

Что я ожидал, как Вы, возможно, предположили от rc.local содержание, было мое имя хоста в предмете и почтовом содержании.

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

По некоторым причинам, когда root выполняет команду через rc.local файл на запуске, это не может решить $HOSTNAME переменное содержание и печать ничто вместо этого.

Я пытался заменить $HOSTNAME $(hostname -f) или даже $(head -n1 /etc/hostname), но результатом является точно то же: никакое имя хоста в полученном электронном письме...

Что я пропускаю здесь?


Править:

Я временно hardcoded значение в моем rc.local сценарий. Таким образом, команда похожа:

echo "The server.example.com server has started" | mail -s "[server.example.com] start up" me@example.com

В этом случае, когда сервер действительно перезагружает, я получаю свое электронное письмо, как обычно, с содержанием как ожидалось..., но предмет все еще" [], запускают"!

Как это может быть возможным рассмотрением I hardcoded значение в скобках. Делает [] нотация имеет особое значение, о котором я не знаю?

0
задан 31 January 2020 в 18:49

1 ответ

Согласно этому ответу проблемой, с которой Вы сталкиваетесь, является sudo политика безопасности

попытайтесь выполнить свой сценарий с флагом-E: sudo -E startup_mail.sh

Если это не работает попытка, работающая с огибающим аргументом: sudo -E env "HOSTNAME=$HOSTNAME" ./startup_mail.sh

0
ответ дан 20 February 2020 в 23:04

Другие вопросы по тегам:

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