Как я узнаю, что система включена?

Я пишу сценарий, который включает систему по сети. Затем мне нужно запустить несколько команд на другом хосте. Как узнать, включена ли система?

Мой язык программирования - Perl, а целевой хост - RHEL5.

Есть ли какая-либо информация о прерывании ядра или сетевой загрузке, указывающая на то, что система включена и операционная система загружена?

[В другом сценарии] Мне тоже было интересно, на всякий случай, просто включаю ли я Машину вручную. когда точно сказано, что он включился. и когда предполагается, что ОС должна полностью загрузиться для сетевой операции, такой как выполнение там сетевой команды. Что, если система подключена к DHCP, как тогда удаленная система будет искать эту машину [я думаю, это возможно через MAC-адрес. но если я ошибаюсь].

Если я пропустил какую-либо информацию, не стесняйтесь спрашивать меня. Если у вас есть предложения по упрощению задачи, напишите о них :)

спасибо имкин


person Community    schedule 11.10.2008    source источник


Ответы (4)


Что ж, я бы сказал, что система загружается, когда она может выполнить ваш запрос. То есть запущен демон sshd. Этого достаточно для ваших целей (я полагаю - замените любого демона, который вам действительно нужен).

Итак, я отправлял сигнал включения и проверял каждые 15-30 секунд, могу ли я подключиться. Если мне не удалось подключиться в течение разумного времени для этой машины (2 или 5 минут или что-то еще), я бы отправил предупреждение в группу ИТ-поддержки. Что ж, я бы сначала отправил его себе, и только после того, как я исследовал несколько сбоев или около того и обнаружил, что все они законны, я начал бы отправлять его напрямую в ИТ.

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

person Tanktalus    schedule 11.10.2008
comment
Почему DHCP изменил IP-адрес? DHCP просто означает, что компьютер запрашивает у сети адрес - это не означает, что адрес меняется. Что фиксирует адрес, так это маршрутизатор или что-то еще, что отвечает на запрос. Все, что нужно сделать, - это указать маршрутизатору предоставить машине фиксированный IP-адрес. - person ; 12.10.2008
comment
DHCP просто может изменять IP-адреса. Ничто не говорит, что это должно. С этим нужно как-то разобраться - либо специально настраивать DHCP-сервер, либо иметь дело со сменой IP. - person Tanktalus; 12.10.2008
comment
Как правило, не рекомендуется использовать IP-адрес напрямую. - person Brad Gilbert; 14.10.2008

На перезагружающейся машине вы можете установить сценарий в свой crontab со специальным утверждением @reboot (см. man 5 crontab). Этот сценарий может отправить какое-либо уведомление на другой компьютер, уведомляя его о том, что он сейчас работает.

person moritz    schedule 11.10.2008
comment
Мне нравится эта идея, когда система звонит домой. Сделайте это последним в последовательности загрузки (или, по крайней мере, после служб, которые вам нужны), и вы будете знать, что система может отвечать на ваши последующие запросы. - person tvanfosson; 11.10.2008

Я думаю, что проверка sshd кажется хорошим подходом.

Что касается проблемы DHCP: если другой компьютер находится в той же подсети, вы можете найти его по MAC-адресу, используя Net :: ARP.

person Leon Timmermans    schedule 11.10.2008

Как насчет добавления сценария на удаленный компьютер, который запускается при запуске, чтобы сообщить вам, когда он будет готов.

person Simon    schedule 11.10.2008