Очень удобная штука. Редиректит на http://172.26.18.179/cacti/
$ref=$_SERVER['QUERY_STRING'];
if ($ref!='') $ref='?'.$ref;
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://172.26.18.179/cacti/'.$ref);
exit();
?>
JunOS, IOS, Unix, Linux, Windows, routing, switching, security, QoS, network design, telecom.. Статьи, заметки. Решил собрать блог, чтоб разместить полезные статьи в одном месте.
пятница, 25 декабря 2009 г.
среда, 2 декабря 2009 г.
Perl Threads многопоточность
UPD: Продолжение тут - http://www.k4route.ru/2012/05/perl-threads-queue.html
Имеется много хостов. Периодически нужно цеплятся к каждому и вытягивать какой-нить принтаут или просто давать какаю-нить команду, да так, чтоб одновременно. Множить скрипты? Нужно использовать многопоточность! Начал гуглить. Perl, нити :) Нити-нити! :) Много инфы, мануалы на английском... не очень понятно... разбираюсь... Очередная ссылка, попадая на блог, где чел прям совсем доступно рассказывает про эти самые нити. С базовым пониманием уже можно приступать к изучению крутых мануалов. Собственно ссылко http://nopox.wordpress.com/2007/11/06/multithreading-in-perl-part-2/
И первая моя прога с нитями. Цепляется к массиву хостов по телнет, вытягивает принтаут комманды date.
use threads; #Подключаем модуль нитей
use Net::Telnet; #Модуль Telnet
@sgsns=('172.26.18.163', '172.26.18.164', '172.26.18.165', '172.26.18.166');
$login="log";
$password="pass";
#Создаём столько нитей, сколько у нас элементов в массиве @sgsns
for ($i=0; $i<=$#sgsns; $i++) {
push @threads, threads->create(\&sub1, $sgsns[$i], $login, $password)
}
foreach $thread (@threads) {
$thread->join(); #Сообщаем главной программе,
} #чтоб дожидалась выполнения нити
sub sub1 {
my @InboundParameters = @_;
my $host = $InboundParameters[0];
my $login = $InboundParameters[1];
my $password = $InboundParameters[2];
my $fd=new Net::Telnet (Timeout => 30 , Prompt => '/[\$%#>] $/');
$fd->open($host);
$fd->login($login,$password);
my @lines1=$fd->cmd("date");
print "$host\: @lines1";
print "\n";
}
Имеется много хостов. Периодически нужно цеплятся к каждому и вытягивать какой-нить принтаут или просто давать какаю-нить команду, да так, чтоб одновременно. Множить скрипты? Нужно использовать многопоточность! Начал гуглить. Perl, нити :) Нити-нити! :) Много инфы, мануалы на английском... не очень понятно... разбираюсь... Очередная ссылка, попадая на блог, где чел прям совсем доступно рассказывает про эти самые нити. С базовым пониманием уже можно приступать к изучению крутых мануалов. Собственно ссылко http://nopox.wordpress.com/2007/11/06/multithreading-in-perl-part-2/
И первая моя прога с нитями. Цепляется к массиву хостов по телнет, вытягивает принтаут комманды date.
use threads; #Подключаем модуль нитей
use Net::Telnet; #Модуль Telnet
@sgsns=('172.26.18.163', '172.26.18.164', '172.26.18.165', '172.26.18.166');
$login="log";
$password="pass";
#Создаём столько нитей, сколько у нас элементов в массиве @sgsns
for ($i=0; $i<=$#sgsns; $i++) {
push @threads, threads->create(\&sub1, $sgsns[$i], $login, $password)
}
foreach $thread (@threads) {
$thread->join(); #Сообщаем главной программе,
} #чтоб дожидалась выполнения нити
sub sub1 {
my @InboundParameters = @_;
my $host = $InboundParameters[0];
my $login = $InboundParameters[1];
my $password = $InboundParameters[2];
my $fd=new Net::Telnet (Timeout => 30 , Prompt => '/[\$%#>] $/');
$fd->open($host);
$fd->login($login,$password);
my @lines1=$fd->cmd("date");
print "$host\: @lines1";
print "\n";
}
вторник, 1 декабря 2009 г.
Apache, PHP, PostgeSQL на Solaris 10
Решил потестить, что за зверь такой. Пару раз приходилось поднимать сию базу на линуксах под 1С. Особо желания и времени изучить её не было. Была чёткая последовательность, какой за каким rpm пакет разворачивать. Пришло время :).
Имеется сервак с Solaris 5.10. На нём крутятся разнообразные php приложения, скрипты, собирающие статистику и заливающие её в mysql базу... Чтож, скачал исходник. Развернул. С устновкой самой postgre проблем не было. Стандартные ./configure ; make ; make install. Надо ж и веб морду прикрутить. Качаю phpPgAdmin, разворачиваю в апачевкий DocumentRoot, набираю в браузере заветную строку... :) Тра-ля-ля у вас php собран без ключа --with-pgsql. Грустно... Ищу откуда я ставил php. Вроде бы нашёл. Даю make uninstall, а сей прекраснейший скрипт не знает такого :(. В общем и целом, несколько раз я собирал php, вродеб он даже заливался в нужный каталоги... Короче говоря решил я в конце концов переставить связку apache2+php5, да так, чтоб всё с исходников. Apache у меня стоял пакетом. Собственно хотел зарисовать флаги для configure скрипта.
Apache2:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-ssl=shared --enable-ssl --with-ssl=/usr/local/ssl --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-so
make ; make install
PHP5:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-pgsql=/usr/local/pgsql/ --with-zlib --enable-sockets
make ; make install
Вот собственно говоря и всё :)
Имеется сервак с Solaris 5.10. На нём крутятся разнообразные php приложения, скрипты, собирающие статистику и заливающие её в mysql базу... Чтож, скачал исходник. Развернул. С устновкой самой postgre проблем не было. Стандартные ./configure ; make ; make install. Надо ж и веб морду прикрутить. Качаю phpPgAdmin, разворачиваю в апачевкий DocumentRoot, набираю в браузере заветную строку... :) Тра-ля-ля у вас php собран без ключа --with-pgsql. Грустно... Ищу откуда я ставил php. Вроде бы нашёл. Даю make uninstall, а сей прекраснейший скрипт не знает такого :(. В общем и целом, несколько раз я собирал php, вродеб он даже заливался в нужный каталоги... Короче говоря решил я в конце концов переставить связку apache2+php5, да так, чтоб всё с исходников. Apache у меня стоял пакетом. Собственно хотел зарисовать флаги для configure скрипта.
Apache2:
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-ssl=shared --enable-ssl --with-ssl=/usr/local/ssl --enable-proxy --enable-proxy-connect --enable-proxy-ftp --enable-proxy-http --enable-so
make ; make install
PHP5:
./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ --with-pgsql=/usr/local/pgsql/ --with-zlib --enable-sockets
make ; make install
Вот собственно говоря и всё :)
Подписаться на:
Сообщения (Atom)