Здравствуйте. У меня стоит такая задача. Есть главный сервер site.ru. В нем находится мускульная таблица HOSTS. Есть серверы-спутники, на совершенно других IP-адресах, но вписанные в DNS как srv1.site.ru srv2.site.ru и так далее. Мне нужно сделать так, чтобы каждый из этих серверов раз в 5 минут обращался к таблице HOSTS на главном (адрес главного сервера прописан вручную везде) и сообщал ему инфу: свой адрес вида srv666.site.ru, загрузку ЦП и прочее... Для этого я написал скрип, запускаемый под кроном. Вот сам скрипт (может кому пригодится): Code: //выдираем данные о сервере через консоль exec("df / | grep / | awk '{print $3}'",$ans_used); exec("df / | grep / | awk '{print $4}'",$ans_free); exec("cat /proc/loadavg | awk '{print $1}'",$ans_bisy); $shost='http://'.getHostName(); //адрес нашего хоста - вот тут проблема $used=$ans_used[0]; //занятое место $free=$ans_free[0]; //свободное место $bisy=$ans_bisy[0]; //загрузка ЦП $newtime=time(); //вписываем текущее время (типа пингуемся что живы) //записываем полученные данные в главную таблицу $link=mysqli_connect("$server","$baselogin","$basepass","$database"); $stmt=$link->prepare("INSERT INTO HOSTS VALUES(NULL,?,?,?,?,?) ON DUPLICATE KEY UPDATE free=?,used=?,bisy=?,time=?"); $stmt->bind_param("siisiiisi",$shost,$free,$used,$bisy,$newtime,$free,$used,$bisy,$newtime); $stmt->execute(); $stmt->close(); $link->close(); только вот проблема: переменная $shost (getHostName()) содержит только имя главного домена, а именно site.ru как бы мне выцепить именно поддомен на котором крутится сервер-спутник? Если ничего не придумается, придется вручную прописывать все серваки-спутники и заставлять главного сервера самого их опрашивать... чего делать крайне не хотелось бы =( Пока что смотрю в сторону чтения DNS-записей..но чето ниче вкусного там не вижу. ЗЫ, $_SERVER['http_host']; не предлагать, он под кроном возвращает пустое значение подскажите пажалусто..а то у меня мозг закипел и свистит
ничего хорошего. Можно чтобы спутники представлялись своими PTR-именами. Это может всё заработать если DNS рядом и туда что-то можно накидать, PTR-записи. На одном IP - один спутник. Смогут выяснить у этого ДНС свои имена по IP. Короче делать будете так: вручную каждому серверу-спутнику "проименовываете" крон-скрипт
Apeckou если поддомены отличаются только номером - не проще ли на сервере получить все айпишники спутников (получится соответствие поддомен-ip)? А спутники пусть отправляют ip адрес.
Можно чтобы спутники представлялись своими PTR-именами. Это может всё заработать если DNS рядом и туда что-то можно накидать, PTR-записи. На одном IP - один спутник. Смогут выяснить у этого ДНС свои имена по IP. Короче делать будете так: вручную каждому серверу-спутнику "проименовываете" крон-скрипт именно вручную ничего и не хотелось прописывать, ибо часть серваков буду устанавливать не я, и говорить кому-то чтобы он там чето прописывал - не айс) Apeckou если поддомены отличаются только номером - не проще ли на сервере получить все айпишники спутников (получится соответствие поддомен-ip)? А спутники пусть отправляют ip адрес. в таком случае проще уже сразу сделать запись доменов... и их опрашивать с главного сервера самостоятельно что, в общем-то, я и сделал)) тему можно закрыть, а лучше ее сжечь во имя борьмы с извращениями и содомией)