Server IP : 195.201.23.43 / Your IP : 3.149.255.21 Web Server : Apache System : Linux webserver2.vercom.be 5.4.0-192-generic #212-Ubuntu SMP Fri Jul 5 09:47:39 UTC 2024 x86_64 User : kdecoratie ( 1041) PHP Version : 7.1.33-63+ubuntu20.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /usr/share/webmin/status/ |
Upload File : |
# query-monitor.pl # Try an SQL query on a MySQL or PostgreSQL server sub get_query_status { # Load the driver local $drh; eval <<EOF; use DBI; \$drh = DBI->install_driver(\$_[0]->{'driver'}); EOF if ($@) { return { 'up' => -1, 'desc' => &text('query_edriver', "<tt>DBD::$_[0]->{'driver'}</tt>") }; } # Connect to the database server local $dbistr = &make_dbistr($_[0]->{'driver'}, $_[0]->{'db'}, $_[0]->{'host'}); local $dbh = $drh->connect($dbistr, $_[0]->{'user'}, $_[0]->{'pass'}, { }); if (!$dbh) { return { 'up' => 0, 'desc' => &text('query_elogin', $drh->errstr) }; } # Execute the query local $cmd = $dbh->prepare($_[0]->{'sql'}); if (!$cmd) { return { 'up' => 0, 'desc' => &text('query_eprepare', $dbh->errstr) }; } if (!$cmd->execute()) { return { 'up' => 0, 'desc' => &text('query_eexecute', $dbh->errstr) }; } local @r = $cmd->fetchrow(); $cmd->finish(); if ($_[0]->{'result'} ne '' && $r[0] ne $_[0]->{'result'}) { return { 'up' => 0, 'desc' => &text('query_ewrong', $r[0]) }; } return { 'up' => 1 }; } sub show_query_dialog { print &ui_table_row($text{'query_driver'}, &ui_select("driver", $_[0]->{'driver'}, [ [ "mysql", "MySQL" ], [ "Pg", "PostgreSQL" ], [ "Oracle", "Oracle" ] ])); print &ui_table_row($text{'query_db'}, &ui_textbox("db", $_[0]->{'db'}, 20)); print &ui_table_row($text{'query_user'}, &ui_textbox("quser", $_[0]->{'user'}, 20)); print &ui_table_row($text{'query_pass'}, &ui_password("qpass", $_[0]->{'pass'}, 20)); print &ui_table_row($text{'query_host'}, &ui_opt_textbox("host", $_[0]->{'host'}, 40, $text{'query_local'}), 3); print &ui_table_row($text{'query_sql'}, &ui_textbox("sql", $_[0]->{'sql'}, 60), 3); print &ui_table_row($text{'query_result'}, &ui_opt_textbox("result", $_[0]->{'result'}, 40, $text{'query_ignore'}), 3); } sub parse_query_dialog { eval "use DBD::$in{'driver'}"; &error(&text('query_edriver', "<tt>DBD::$in{'driver'}</tt>")) if ($@); $_[0]->{'driver'} = $in{'driver'}; $in{'db'} =~ /^\S+$/ || &error($text{'query_edb'}); $_[0]->{'db'} = $in{'db'}; if ($in{'host_def'}) { delete($_[0]->{'host'}); } else { &to_ipaddress($in{'host'}) || &to_ip6address($in{'host'}) || &error($text{'query_ehost'}); $_[0]->{'host'} = $in{'host'}; } $in{'quser'} =~ /^\S*$/ || &error($text{'query_euser'}); $_[0]->{'user'} = $in{'quser'}; $in{'qpass'} =~ /^\S*$/ || &error($text{'query_epass'}); $_[0]->{'pass'} = $in{'qpass'}; $in{'sql'} =~ /\S/ || &error($text{'query_esql'}); $_[0]->{'sql'} = $in{'sql'}; if ($in{'result_def'}) { delete($_[0]->{'result'}); } else { $in{'result'} =~ /\S/ || &error($text{'query_eresult'}); $_[0]->{'result'} = $in{'result'}; } } sub make_dbistr { local ($driver, $db, $host) = @_; local $rv; if ($driver eq "mysql") { $rv = "database=$db"; } elsif ($driver eq "Pg") { $rv = "dbname=$db"; } else { $rv = $db; } if ($host) { $rv .= ";host=$host"; } return $rv; }Private