
У нас есть два сервера, рабочий и резервный, оба размещены в среде VPS (Linode и MediaTemple, хотя это может измениться в любой момент). Я хочу, чтобы у них был идентичный набор скриптов оболочки, но, конечно, некоторые скрипты оболочки могут выполнять немного разные действия в зависимости от того, на каком сервере они находятся.
В этом контексте, как лучше всего определить, на каком сервере выполняется скрипт? Опять же, это среда VPS, поэтому у нас нет контроля над IP-адресами, оборудованием и т. д.
Я понимаю, что "идеального" ответа может и не быть, поэтому любое достаточно хорошее решение или передовой опыт приветствуются. Спасибо!
решение1
Возможно, это не «лучшая практика», но для меня это работает. Создайте список «живых» и «резервных» серверов в текстовом файле с именами хостов. Используйте этот список, чтобы определить, какой это тип сервера, а затем выполните соответствующие действия. В качестве альтернативы предположите «живой», если его нет в файле «живых», в этом случае это «резервный» (или наоборот). Или нажмите на файл, чтобы /etc/
узнать, какой это сервер (например, /etc/live
или /etc/fallback
). Существует буквально бесконечное количество возможностей, в конечном итоге тот, который вы выберете, будет основан на том, какой из них вы 1) понимаете больше всего и 2) с которым вам удобнее всего.