status/ 0000755 0005671 0000012 00000000000 11156510514 012060 5 ustar jcameron wheel status/config.info.uk_UA 0000664 0005671 0000012 00000000626 11156510514 015213 0 ustar jcameron wheel sort_mode= ,1,0- ,1-,2-
pager_cmd=, ,3,
ping_cmd= (ping),3,
line1= , ,11
line2= ,11
refresh= ,3,
index_status=, ,1, 1- ,0-
status/config.info.tr 0000644 0005671 0000012 00000001071 11156510514 014625 0 ustar jcameron wheel line1=Yaplandrlabilir seenekler,11
index_status=Listede gsterilecek durum,1,1-Mevcut durum,0-Son zamanlandrlm kontroldeki
pager_cmd=ar cihazna mesaj gnderme komutu,3,Yok
refresh=Sayfa yenilemeleri aras sre,3,Yenileme
sort_mode=zleyicilerin gsterilme sras,1,0-Oluturulduu sra,1-Aklama,2-Makine ad
output=Program kapandnda kts yakalansn m?,1,1-Evet,0-Hayr
snmp_server=SNMP paketlerini bu sunucuya gnder,3,Yok
snmp_version=SNMP protokol srm,1,2-v3,2-v2,1-v1
snmp_community=SNMP community string,0
snmp_trap=Paketler iin SNMP OID,0
status/save_tmpl.cgi 0000775 0005671 0000012 00000002402 11156510514 014541 0 ustar jcameron wheel #!/usr/local/bin/perl
# Create, update or delete a template
require './status-lib.pl';
$access{'edit'} || &error($text{'tmpls_ecannot'});
&ReadParse();
&error_setup($text{'tmpl_err'});
# Get the template
if (!$in{'new'}) {
$tmpl = &get_template($in{'id'});
}
else {
$tmpl = { };
}
if ($in{'delete'}) {
# Remove this template
&error_setup($text{'tmpl_err2'});
@users = grep { $_->{'tmpl'} eq $tmpl->{'id'} } &list_services();
@users && &error(&text('tmpl_eusers',
join(", ", map { "$_->{'desc'}" } @users)));
&delete_template($tmpl);
&webmin_log("delete", "template", $tmpl->{'desc'});
}
else {
# Validate and store inputs
$in{'desc'} =~ /\S/ || &error($text{'tmpl_edesc'});
$tmpl->{'desc'} = $in{'desc'};
$in{'email'} =~ /\S/ || &error($text{'tmpl_eemail'});
$tmpl->{'email'} = $in{'email'};
if ($in{'sms_def'}) {
delete($tmpl->{'sms'});
}
else {
$in{'sms'} =~ /\S/ || &error($text{'tmpl_esms'});
$tmpl->{'sms'} = $in{'sms'};
}
if ($in{'snmp_def'}) {
delete($tmpl->{'snmp'});
}
else {
$in{'snmp'} =~ /\S/ || &error($text{'tmpl_esnmp'});
$tmpl->{'snmp'} = $in{'snmp'};
}
# Save or create
&save_template($tmpl);
&webmin_log($in{'new'} ? "create" : "modify", "template",
$tmpl->{'desc'});
}
&redirect("list_tmpls.cgi");
status/config 0000664 0005671 0000012 00000000173 11156510514 013253 0 ustar jcameron wheel index_status=1
sort_mode=0
output=0
snmp_version=2
snmp_trap=1.3.6.1.4.1.10000.1.1
subject_mode=0
columns=2
sched_offset=0
status/acl_security.pl 0000755 0005671 0000012 00000001517 11156510514 015112 0 ustar jcameron wheel
do 'status-lib.pl';
# acl_security_form(&options)
# Output HTML for editing security options for the status module
sub acl_security_form
{
print "
| $text{'acl_edit'} | \n";
printf " $text{'yes'}\n",
$_[0]->{'edit'} ? 'checked' : '';
printf " $text{'no'} | \n",
$_[0]->{'edit'} ? '' : 'checked';
print "$text{'acl_sched'} | \n";
printf " $text{'yes'}\n",
$_[0]->{'sched'} ? 'checked' : '';
printf " $text{'no'} |
\n",
$_[0]->{'sched'} ? '' : 'checked';
}
# acl_security_save(&options)
# Parse the form for security options for the acl module
sub acl_security_save
{
$_[0]->{'edit'} = $in{'edit'};
$_[0]->{'sched'} = $in{'sched'};
}
status/load-monitor.pl 0000775 0005671 0000012 00000001743 11156510514 015033 0 ustar jcameron wheel # load-monitor.pl
# Check if the system load exceeds some level
sub get_load_status
{
local @u = &uptime_output();
if (!@u) {
return { 'up' => -1 }
}
elsif ($u[$_[0]->{'time'}] >= $_[0]->{'max'}) {
return { 'up' => 0 }
}
else {
return { 'up' => 1,
'desc' => "Load is $u[$_[0]->{'time'}]" };
}
}
sub show_load_dialog
{
print &ui_table_row($text{'load_time'},
&ui_radio("time", int($_[0]->{'time'}),
[ [ 0, $text{'load_1'} ],
[ 1, $text{'load_5'} ],
[ 2, $text{'load_15'} ] ]));
print &ui_table_row($text{'load_max'},
&ui_textbox("max", $_[0]->{'max'}, 6));
}
sub parse_load_dialog
{
&has_command("uptime") || &error($text{'load_ecmd'});
scalar(&uptime_output()) || &error($text{'load_efmt'});
$in{'max'} =~ /^[0-9\.]+$/ || &error($text{'load_emax'});
$_[0]->{'time'} = $in{'time'};
$_[0]->{'max'} = $in{'max'};
}
sub uptime_output
{
local $out = `uptime 2>&1`;
return $out =~ /average(s)?:\s+([0-9\.]+),?\s+([0-9\.]+),?\s+([0-9\.]+)/i ?
( $2, $3, $4 ) : ( );
}
status/mailserver.pl 0000775 0005671 0000012 00000002101 11156510514 014565 0 ustar jcameron wheel #!/usr/local/bin/perl
# mailserver.pl
# Called from a sendmail alias when an autoresponse arrives, as sent by the
# mailserver monitor
$no_acl_check++;
require './status-lib.pl';
# read headers and body
while() {
s/\r|\n//g;
if (/^(\S+):\s+(.*)/) {
$header{lc($1)} = $2;
}
elsif (!$_) { last; }
}
while() {
$body .= $_;
}
if ($header{'subject'} =~ /TEST-(\S+)-(\S+)/) {
# Looks like a valid reply
local ($sserv, $sid) = ( $1, $2 );
$replies_file = "$module_config_directory/mailserver-replies";
&read_file($replies_file, \%replies);
local ($when, $got, $id) = split(/\s+/, $replies{$sserv});
if ($id eq $sid) {
# Got a reply to an outstanding email
local $now = time();
$replies{$sserv} = "$when $now $id";
}
else {
# Reply is to an email that is way out of date!
}
$replies_file =~ /^(.*)$/;
&write_file("$1", \%replies);
exit(0);
}
else {
# Unknown email!
print STDERR "Only Mailserver Response auto-reply messages should be sent to this address\n";
exit(1);
}
status/log_parser.pl 0000755 0005671 0000012 00000001241 11156510514 014553 0 ustar jcameron wheel # log_parser.pl
# Functions for parsing this module's logs
do 'status-lib.pl';
# parse_webmin_log(user, script, action, type, object, ¶ms)
# Converts logged information from this module into human-readable form
sub parse_webmin_log
{
local ($user, $script, $action, $type, $object, $p) = @_;
if ($type eq "template" && $action eq "deletes") {
return &text("log_tmpl_deletes", $object);
}
elsif ($type eq "template") {
return &text("log_tmpl_${action}",
"".&html_escape($p->{'desc'})."");
}
elsif ($action eq "deletes") {
return &text("log_deletes", $object);
}
else {
return &text("log_${action}", "".&html_escape($p->{'desc'})."");
}
}
status/sensors-monitor.pl 0000775 0005671 0000012 00000006260 11156510514 015607 0 ustar jcameron wheel # Check if some lm_sensors value is too high
sub get_sensors_status
{
return { 'up' => 1 } if (!&has_command("sensors"));
local @sens = &get_sensors_values();
local ($sens) = grep { $_->{'name'} eq $_[0]->{'name'} } @sens;
return { 'up' => 1 } if (!$sens);
if ($_[0]->{'mode'} == 0) {
return $sens->{'alarm'} ? { 'up' => 0 } : { 'up' => 1 };
}
elsif ($_[0]->{'mode'} == 1) {
return $sens->{'value'} < $_[0]->{'min'} ? { 'up' => 0 }
: { 'up' => 1 };
}
elsif ($_[0]->{'mode'} == 2) {
return $sens->{'value'} > $_[0]->{'max'} ? { 'up' => 0 }
: { 'up' => 1 };
}
}
sub show_sensors_dialog
{
if (!&has_command("sensors")) {
print &ui_table_row(undef, $text{'sensors_cmd'}, 4);
}
elsif (@sens = &get_sensors_values()) {
print &ui_table_row($text{'sensors_name'},
&ui_select("name", $_[0]->{'name'},
[ map { [ $_->{'name'}, &text('sensors_cur', $_->{'name'}, $_->{'value'}, $_->{'units'}) ] } @sens ]), 3);
print &ui_table_row($text{'sensors_value'},
&ui_radio("mode", $_[0]->{'mode'} || 0,
[ [ 0, $text{'sensors_value0'} ],
[ 1, &text('sensors_value1',
&ui_textbox("min", $_[0]->{'min'}, 8)) ],
[ 2, &text('sensors_value2',
&ui_textbox("max", $_[0]->{'max'}, 8)) ] ]), 3);
}
else {
print &ui_table_row(undef, $text{'sensors_none'}, 4);
}
}
sub parse_sensors_dialog
{
&has_command("sensors") || &error($text{'sensors_cmd'});
local @sens = &get_sensors_values();
@sens || &error($text{'sensors_none'});
$_[0]->{'name'} = $in{'name'};
$_[0]->{'mode'} = $in{'mode'};
$_[0]->{'max'} = $in{'max'};
$_[0]->{'min'} = $in{'min'};
if ($in{'mode'} == 1) {
$in{'min'} =~ /^[0-9\.\+\-]+$/ || &error($text{'sensors_emin'});
}
elsif ($in{'mode'} == 2) {
$in{'max'} =~ /^[0-9\.\+\-]+$/ || &error($text{'sensors_emax'});
}
}
# get_sensors_values()
# Returns a list of lm_sensors names, values and maxes
sub get_sensors_values
{
if (!defined(@get_sensors_cache)) {
local @rv;
open(SENS, "sensors 2>/dev/null |");
while() {
if (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(min\s+=\s+([0-9\.\+\-]+)\s*(\S+),\s+max\s+=\s+([0-9\.\+\-]+)/) {
# Value with min and max
push(@rv, { 'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
'max' => $6 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(min\s+=\s+([0-9\.\+\-]+)\s*(\S+),\s+div\s+=\s+([0-9\.\+\-]+)/) {
# Value with min only
push(@rv, { 'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
'div' => $6 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\((limit|high)\s+=\s+([0-9\.\+\-]+)\s*(\S+)/) {
# Value with max only
push(@rv, { 'name' => $1,
'value' => $2,
'units' => $3,
'max' => $5 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
elsif (/^([^:]+):\s+([0-9\.\+\-]+)\s*(\S+)\s+\(low\s+=\s+([0-9\.\+\-]+)\s*(\S+)\s*,\s+high\s+=\s+([0-9\.\+\-]+)/) {
# Value with low and high
push(@rv, { 'name' => $1,
'value' => $2,
'units' => $3,
'min' => $4,
'max' => $6 });
$rv[$#rv]->{'alarm'} = 1 if (/ALARM/);
}
}
close(SENS);
@get_sensors_cache = @rv;
}
return @get_sensors_cache;
}
status/alive-monitor.pl 0000775 0005671 0000012 00000000361 11156510514 015207 0 ustar jcameron wheel # alive-monitor.pl
# Always returns OK - useful for remote monitoring
sub get_alive_status
{
local $out = `uptime 2>/dev/null`;
return { 'up' => 1,
'desc' => $out =~ /\s+up\s+([^,]+),/ ? &text('alive_up', "$1")
: undef };
}
status/sshd-monitor.pl 0000775 0005671 0000012 00000001455 11156510514 015055 0 ustar jcameron wheel # sshd-monitor.pl
# Monitor the SSH server on this host
# Check the PID file to see if sshd is running
sub get_sshd_status
{
return { 'up' => -1 } if (!&foreign_check($_[1]));
&foreign_require($_[1], "sshd-lib.pl");
return { 'up' => -1 } if (!&foreign_check($_[1]));
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $sconfig{'sshd_config'});
local $conf = &foreign_call($_[1], "get_sshd_config");
local $pidfile = &foreign_call($_[1], "find_value", "PidFile", $conf);
$pidfile ||= $sconfig{'pid_file'};
if (open(PID, $pidfile) && =~ /(\d+)/ && kill(0, $1)) {
close(PID);
local @st = stat($pidfile);
return { 'up' => 1,
'desc' => &text('up_since', scalar(localtime($st[9]))) };
}
else {
return { 'up' => 0 };
}
}
sub parse_sshd_dialog
{
&depends_check($_[0], "sshd");
}
1;
status/samba-monitor.pl 0000775 0005671 0000012 00000000705 11156510514 015174 0 ustar jcameron wheel # samba-monitor.pl
# Monitor the samba servers on this host
# Check if samba is running
sub get_samba_status
{
return { 'up' => -1 } if (!&foreign_check($_[1]));
&foreign_require($_[1], "samba-lib.pl");
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $sconfig{'samba_server'});
local $r = &foreign_call($_[1], "is_samba_running");
return { 'up' => $r ? 1 : 0 };
}
sub parse_samba_dialog
{
&depends_check($_[0], "samba");
}
1;
status/sendmail-monitor.pl 0000775 0005671 0000012 00000001252 11156510514 015703 0 ustar jcameron wheel # sendmail-monitor.pl
# Monitor the sendmail server on this host
# Check the PID file to see if sendmail is running
sub get_sendmail_status
{
return { 'up' => -1 } if (!&foreign_check($_[1]));
&foreign_require($_[1], "sendmail-lib.pl");
local %sconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-r $sconfig{'sendmail_cf'});
if (&sendmail::is_sendmail_running()) {
local @pidfiles = split(/\t+/, $sconfig{'sendmail_pid'});
local @st = stat($pidfiles[0]);
return { 'up' => 1,
'desc' => @pidfiles ?
&text('up_since', scalar(localtime($st[9]))) : undef };
}
else {
return { 'up' => 0 };
}
}
sub parse_sendmail_dialog
{
&depends_check($_[0], "sendmail");
}
1;
status/config-freebsd 0000664 0005671 0000012 00000000210 11156510514 014653 0 ustar jcameron wheel index_status=1
sort_mode=0
output=0
snmp_version=2
snmp_trap=1.3.6.1.4.1.10000.1.1
subject_mode=0
columns=2
pinger=linux
sched_offset=0
status/config.info.zh_TW.Big5 0000644 0005671 0000012 00000000302 11156510514 016014 0 ustar jcameron wheel line1=պAﶵ,11
index_status=AM,1,1-ثeA,0-q̫᪺Ƶ{ˬd
pager_cmd=ǰeTO,3,L
refresh=sz,3,sz
sort_mode=ܼҲձƧǬ,1,0-إ߶,1-yz,2-D
status/status_monitor_api.pl 0000775 0005671 0000012 00000001121 11156510514 016340 0 ustar jcameron wheel
# status_monitor_list()
# Returns a list of monitor types defined by this module, each of which must
# be a two-element array reference
sub status_monitor_list
{
}
# status_monitor_status(type, &monitor)
# Returns a status object for some montor with the give name and info structure
sub status_monitor_status
{
}
# status_monitor_dialog(type, &monitor)
# Returns HTML for a dialog for options for a monitor of the given type
sub status_monitor_dialog
{
}
# status_monitor_parse(type, &monitor, &in)
# Updates the monitor object with values from the form
sub status_monitor_parse
{
}
1;
status/config-*-linux 0000664 0005671 0000012 00000000212 11156510514 014531 0 ustar jcameron wheel index_status=1
pager_cmd=yaps
sort_mode=0
output=0
snmp_version=2
snmp_trap=1.3.6.1.4.1.10000.1.1
subject_mode=0
columns=2
sched_offset=0
status/memory-monitor.pl 0000775 0005671 0000012 00000001443 11156510514 015421 0 ustar jcameron wheel # memory-monitor.pl
# Check the free memory
sub get_memory_status
{
return { 'up' => -1 } if (!&foreign_check("proc"));
&foreign_require("proc", "proc-lib.pl");
local @mem;
eval "\@mem = &proc::get_memory_info()";
if ($@) {
return { 'up' => -1 };
}
elsif ($mem[1] < $_[0]->{'min'}) {
return { 'up' => 0 };
}
else {
return { 'up' => 1,
'desc' => &text('memory_free2', &nice_size($mem[1]*1024)) };
}
}
sub show_memory_dialog
{
print &ui_table_row($text{'memory_min2'},
&ui_bytesbox("min", $_[0]->{'min'}*1024));
}
sub parse_memory_dialog
{
&depends_check($_[0], "proc");
&foreign_require("proc", "proc-lib.pl");
defined(&proc::get_memory_info) || &error($text{'memory_eproc'});
$in{'min'} =~ /^[0-9\.]+$/ || &error($text{'memory_emin'});
$_[0]->{'min'} = $in{'min'}*$in{'min_units'}/1024;
}
status/config.info.ru_RU 0000664 0005671 0000012 00000000612 11156510514 015236 0 ustar jcameron wheel sort_mode= ,1,0- ,1-,2-
pager_cmd=, ,3,
ping_cmd= (ping),3,
line1= ,11
line2= ,11
refresh= ,3,
index_status=, ,1,1- ,0-
status/delete_mons.cgi 0000775 0005671 0000012 00000000607 11156510514 015052 0 ustar jcameron wheel #!/usr/local/bin/perl
# Delete multiple monitors at once
require './status-lib.pl';
$access{'edit'} || &error($text{'mon_ecannot'});
&ReadParse();
foreach $d (split(/\0/, $in{'d'})) {
$serv = &get_service($d);
$serv || &error($text{'delete_egone'});
push(@dels, $serv);
}
foreach $serv (@dels) {
&delete_service($serv);
}
&webmin_log("deletes", undef, scalar(@dels));
&redirect("");
status/config-debian-linux 0000664 0005671 0000012 00000000231 11156510514 015623 0 ustar jcameron wheel index_status=1
pager_cmd=sms_client
sort_mode=0
output=0
output=0
snmp_version=2
snmp_trap=1.3.6.1.4.1.10000.1.1
subject_mode=0
columns=2
sched_offset=0
status/jabber-monitor.pl 0000775 0005671 0000012 00000001227 11156510514 015336 0 ustar jcameron wheel # jabber-monitor.pl
# Monitor the jabber server on this host
# Check the PID file to see if mon is running
sub get_jabber_status
{
return { 'up' => -1 } if (!&foreign_check($_[1]));
local %jconfig = &foreign_config($_[1]);
-r $jconfig{'jabber_config'} || return { 'up' => -1 };
&foreign_require($_[1], "jabber-lib.pl");
local $pidfile = &foreign_call($_[1], "jabber_pid_file");
if (open(PID, $pidfile) && ($pid = int()) && kill(0, $pid)) {
return { 'up' => 1 };
}
else {
return { 'up' => 0 };
}
}
sub parse_jabber_dialog
{
&depends_check($_[0], "jabber");
eval "use XML::Parser";
&error(&text('jabber_eparser', "XML::Parser")) if ($@);
}
1;
status/config.info.ja_JP.UTF-8 0000664 0005671 0000012 00000002116 11156510514 015770 0 ustar jcameron wheel line1=設定可能なオプション,11
index_status=リストに表示するステータス,1,1-現在のステータス,0-スケジュールによる最後のチェック
pager_cmd=ページャ(ポケベル)にメッセージを送信するコマンド,3,無し
refresh=ページの再読み込み間隔(秒),3,再読み込みしない
sort_mode=監視項目のならび順,1,0-作成順,1-説明順,2-ホスト順,3-最近表示した順
columns=サービスの表の列数,1,2-2,1-1
output=プログラムがダウンしているとき、動いていた時の出力から補完?,1,1-はい,0-いいえ
subject_mode=メールの件名モード,1,0-新しいスタイル,1-古いスタイル
def_tmpl=デフォルトのテンプレート,10,-なし,テンプレート名
pinger=Pingを打つコマンド,10,-ビルトインコード,linux-LinuxかFreeBSDに適したコマンド,他のコマンド
snmp_server=サーバに SNMP トラップを送信,3,なし
snmp_version=SNMP プロトコル,1,3-v3,2-v2,1-v1
snmp_community=SNMP コミュニティストリング,0
snmp_trap=SNMP トラップ OID,0
status/module.info 0000644 0005671 0000012 00000001745 11156510514 014231 0 ustar jcameron wheel desc_nl=Systeem en Server Status
desc_ko_KR.euc=ý
risk=low medium high
desc_pl=Stan systemu i serwerw
desc=System and Server Status
desc_es=Estado de Sistema y de Servidor
desc_sv=System- och serverstatus
name=Status
desc_ja_JP.euc=ƥपӥФΥơ
desc_zh_CN=ϵͳͷ״̬
depends=servers cron mailboxes
desc_ca=Estat del Sistema i Servidors
desc_de=System- und Server-Status
desc_ru_SU=
desc_ru_RU=
longdesc=View the status of services on your system and on remote systems.
desc_zh_TW.Big5= tΩMAA
desc_sk=Stav systmu a serverov
desc_tr=Sistem ve Sunucu Durumu
desc_fr=tat du systme et des serveurs
desc_zh_TW.UTF-8= 系統和伺服器的狀態
desc_zh_CN.UTF-8=系统和服务器的状态
desc_ja_JP.UTF-8=システムおよびサーバのステータス
desc_ko_KR.UTF-8=시스템 및 서버 상태
desc_it=Stato del sistema e dei server
desc_cz=Stav systmu a server
version=1.461
status/portsentry-monitor.pl 0000775 0005671 0000012 00000001027 11156510514 016340 0 ustar jcameron wheel # portsentry-monitor.pl
# Monitor the portsentry daemon
# Check the PID file to see if portsentry is running
sub get_portsentry_status
{
return { 'up' => -1 } if (!&foreign_check("sentry"));
local %sconfig = &foreign_config("sentry");
&has_command($sconfig{'portsentry'}) || return { 'up' => -1 };
&foreign_require("sentry", "sentry-lib.pl");
local @pids = &sentry::get_portsentry_pids();
if (@pids) {
return { 'up' => 1 };
}
else {
return { 'up' => 0 };
}
}
sub parse_portsentry_dialog
{
&depends_check($_[0], "sentry");
}
1;
status/config.info.ko_KR.UTF-8 0000664 0005671 0000012 00000001435 11156510514 016015 0 ustar jcameron wheel sort_mode=모티터 정렬,1,0-생성된 순,1-설명,2-호스트,3-최종 상태
snmp_server=서버로 SNMP 트랩 전송,3,없음
pager_cmd=문서로 메시지 전송을 위한 명령,3,없음
line1=설정 옵션,11
snmp_version=SNMP 프로토콜 버전,1,3-v3,2-v2,1-v1
output=다운시에 프로그램 실행 출력을 캡쳐,1,1-예,0-아니오
refresh=페이지 갱신 주기,3,갱신 안함
snmp_trap=트랩을 위한 SNMP OID,0
pinger=핑 전송 명령,10,-내장 코드 사용,리눅스 또는 FreeBSD를 위한 리눅스 스타일 명령,다른 명령
snmp_community=SNMP 커뮤니티,0
columns=서비스 테이블 컬럼,1,2-2,1-1
subject_mode=이메일 제목 방식,1,0-새 스타일,1-이전 스타일
index_status=리스트 출력 상태,1,1-현재 상태,0-최종 검사
def_tmpl=
status/postgresql-monitor.pl 0000775 0005671 0000012 00000000740 11156510514 016313 0 ustar jcameron wheel # postgresql-monitor.pl
# Monitor the PostgreSQL server on this host
# Check if postgresql is running
sub get_postgresql_status
{
return { 'up' => -1 } if (!&foreign_check($_[1]));
&foreign_require($_[1], "postgresql-lib.pl");
local %pconfig = &foreign_config($_[1]);
return { 'up' => -1 } if (!-x $pconfig{'psql'});
local $r = &foreign_call($_[1], "is_postgresql_running");
return { 'up' => $r ? 1 : 0 };
}
sub parse_postgresql_dialog
{
&depends_check($_[0], "postgresql");
}
status/images/ 0000775 0005671 0000012 00000000000 11156510514 013327 5 ustar jcameron wheel status/images/not.gif 0000644 0005671 0000012 00000000127 11156510514 014614 0 ustar jcameron wheel GIF89a !Made with GIMP !
, wn Cεͺ|6QqRX*_ ; status/images/icon.gif 0000664 0005671 0000012 00000004033 11156510514 014746 0 ustar jcameron wheel GIF89a0 0 >>Dnrl̊ZZ\NNLz~|FFDffdzztܦVVTvrtNJLnnlFBDԊbbd¼ܦb^dVR\~JJLBBDrvt^^\RRTjjlĎrrlRNT~~|ƼJFLjfl쪪ZV\vvtrnt¼B>DԊ^ZdNNTFFLfflzz|VV\NJTnntFBL䦦JJTBBL^^d̢rrt~~ܒvv|IJ!Made with GIMP , 0 0 H*\ȰÇ#2ċ2;_`c{&|Y'gxuLf> %
4c S8vnLSg@">p2@nxq
{h gNH3#cLXĄ2`1
?@SdI 6!1oBpy(
9rfLHCZ`Nurb ,q0 ʬ͚-K!2?[@" Q x iSF26ʨ!Tm
= a=@$PW_&^x ;(x"t Kea@ cܡm H"zh<`F)tHrdFq V9̀$G<`CZ^o&