1 raquo ;;
$ dbi_host= localhost raquo ;;
$ dbi_host2= 192.168.0.1 raquo ;;
$ dbi_dsn= DBI: mysql: database=$ dbi_database; host=$ dbi_host raquo ;;
$ dbi_dsn2= DBI: mysql: database=$ dbi_database; host=$ dbi_host2 raquo ;;
$ dbh=DBI- gt; connect ($ dbi_dsn, $ dbi_user, $ dbi_password, {AutoCommit= gt; 1, RaiseError= gt; 1, PrintError= gt; 1});
$ dbh2=DBI- gt; connect ($ dbi_dsn2, $ dbi_user, $ dbi_password, {AutoCommit= gt; 1, RaiseError= gt; 1, PrintError= gt; 1});
# Запит на створення таблиці для зберігання даних про стан комутатора
($ month, $ year)=(localtime) [4,5];
$ table_name=sprintf (% 02d% 02d raquo ;, $ month + 1, $ year + 1900);
($ sql_create_gtable)= CREATE TABLE g $ table_name (INT (10) UNSIGNED DEFAULT 0 NOT NULL AUTO_INCREMENT, INT (11) UNSIGNED, SMALLINT (3) UNSIGNED, SMALLINT (3 ) UNSIGNED, INT (11) UNSIGNED, TEXT, KEY (sID)); raquo ;;
# Запит на створення таблиці для зберігання даних про інтерфейси комутатора
($ sql_create_iftable)= CREATE TABLE if $ table_name (INT (10) UNSIGNED DEFAULT 0 NOT NULL AUTO_INCREMENT, INT (11) UNSIGNED, TEXT, INT (10) UNSIGNED, INT (10) UNSIGNED, INT (10) UNSIGNED, TINYINT (1) UNSIGNED, TINYINT (1) UNSIGNED, INT (6) UNSIGNED, INT (6) UNSIGNED, KEY (sID)); raquo ;;
# Якщо таблиць з такою назвою (номер поточного місяця) немає, тоді їх створити
$ sth=$ dbh- gt; prepare ( show tables from $ dbi_database like g $ table_name raquo ;; );
$ sth- gt; execute () or die $ dbh- gt; errstr;
$ ex=$ sth- gt; fetchrow_array (); ($ ex ne g $ table_name )
{$ dbh- gt; do ($ sql_create_gtable);
$ sth- gt; execute () or die $ dbh- gt; errstr;};
$ sth=$ dbh- gt; prepare ( show tables from $ dbi_database like if $ table_name raquo ;; );
$ sth- gt; execute () or die $ dbh- gt; errstr;
$ ex=$ sth- gt; fetchrow_array (); ($ ex ne if $ table_name )
{$ dbh- gt; do ($ sql_create_iftable);
$ sth- gt; execute () or die $ dbh- gt; errstr;};
$ sth=$ dbh2- gt; prepare ( show tables from $ dbi_database like g $ table_name raquo ;; );
$ sth- gt; execute () or die $ dbh2- gt; errstr;
$ ex=$ sth- gt; fetchrow_array (); ($ ex ne g $ table_name )
{$ dbh2- gt; do ($ sql_create_gtable);
$ sth- gt; execute () or die $ dbh2- gt; errstr;};
$ sth=$ dbh2- gt; prepare ( show tables from $ dbi_database like if $ table_name raquo ;; );
$ sth- gt; execute () or die $ dbh2- gt; errstr;
$ ex=$ sth- gt; fetchrow_array (); ($ ex ne if $ table_name )
{$ dbh2- gt; do ($ sql_create_iftable);
$ sth- gt; execute () or die $ dbh2- gt; errstr;};
$ datetime=time ();
# Отримання даних про стан комутатора і запис з в базу даних
$ AmountPort= .1.3.6.1.2.1.2.1.0 raquo ;; # Кількість інтерфейсів
$ ResultAmount=$ session- gt; get_request ($ AmountPort);
$ AverageCPULoad= .1.3.6.1.4.1.9.2.1.58.0 raquo ;; # Завантаження центрального процесора
$ ResultACL=$ session- gt; get_request ($ AverageCPULoad);
$ FreeMemory= .1.3.6.1.4.1.9.2.1.8.0 raquo ;; # Обсяг вільної пам'яті
$ ResultFM=$ session- gt; get_request ($ FreeMemory);
$ Uptime= .1.3.6.1.2.1.1.3.0 raquo ;; # Час напрацювання на відмову
$ ResultUptime=$ session- gt; get_request ($ Uptime);
$ dbh- gt; do ( INSERT INTO g $ table_name (sDateTime, sAmount, sACPU, sFM, sUptimec) VALUES ( $ datetime raquo ;, $ ResultAmount- gt; {$ AmountPort} raquo ;, $ ResultACL- gt; {$ AverageCPULoad} raquo ;, $ ResultFM- gt; {$ FreeMemory} raquo ;, $ ResultUptime- gt; {$ Uptime} ) ) ;
$ dbh2- gt; do ( INSERT INTO g $ table_name (sDateTime, sAmount, sACPU, sFM, sUptimec) VALUES ( $ datetime raquo ;, $ ResultAmount- gt; {$ AmountPort} raquo ;, $ ResultACL- gt; {$ AverageCPULoad} raquo ;, $ ResultFM- gt; {$ FreeMemory} raquo ;, $ ResultUptime- gt; {$ Uptime} ) ) ;
# Зчитування з файлу даних про попередньому стані статусу інте...