diff -Nur --no-dereference smeserver-smeadmin-1.6.old/createlinks smeserver-smeadmin-1.6/createlinks --- smeserver-smeadmin-1.6.old/createlinks 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/createlinks 2021-03-27 22:41:19.452000000 -0400 @@ -2,16 +2,8 @@ use esmith::Build::CreateLinks qw(:all); -# Start and stop links -service_link_enhanced("smeadmind", "S99", "7"); -service_link_enhanced("smeadmind", "K97", "6"); -service_link_enhanced("smeadmind", "K20", "0"); -service_link_enhanced("smeadmind", "K20", "1"); -# Start and stop links to lm_sensors -service_link_enhanced("lm_sensors", "S99", "7"); - # Links for the panel panel_link("smeadmin", "manager"); #system("mkdir -p root/etc/e-smith/web/panels/manager/html/smeadmin"); @@ -22,10 +14,11 @@ #Creation of the event smeadmin-update for my $event (qw( smeadmin-update + smeserver-smeadmin-update )) { - safe_symlink("start", "root/etc/e-smith/events/$event/services2adjust/mysql.init"); + safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/mysql.init"); safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/smeadmind"); safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/lm_sensors"); } @@ -39,3 +32,5 @@ safe_symlink("restart", "root/etc/e-smith/events/$event/services2adjust/lm_sensors"); } +#expand template +templates2events("/etc/e-smith/sql/init/smeadmin", "smeserver-smeadmin-update") diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/e-smith/db/configuration/migrate/smeadmin smeserver-smeadmin-1.6/root/etc/e-smith/db/configuration/migrate/smeadmin --- smeserver-smeadmin-1.6.old/root/etc/e-smith/db/configuration/migrate/smeadmin 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/root/etc/e-smith/db/configuration/migrate/smeadmin 2021-03-25 01:29:34.607000000 -0400 @@ -20,6 +20,15 @@ warn "Could not open /dev/urandom: $!"; } + # let's migrate sme9admind values to smeadmind + if ( defined $sme9admind && ! defined $smeadmind ) { + for my $propertie (keys %sme9admind) { + next if $propertie eq "DbName" || $propertie eq "DbUser"; + $smeadmindb->set_prop($propertie, $sme9admind{$propertie}); + } + + } + $smeadmindb->set_prop('DbPassword', $pw) if not $smeadmindb->prop('DbPassword'); if ( -e "/etc/e-smith/web/panels/manager/html/smeadmin/_smeadmin.conf" ){ diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/e-smith/sql/init/smeadmin smeserver-smeadmin-1.6/root/etc/e-smith/sql/init/smeadmin --- smeserver-smeadmin-1.6.old/root/etc/e-smith/sql/init/smeadmin 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/root/etc/e-smith/sql/init/smeadmin 1969-12-31 19:00:00.000000000 -0500 @@ -1,153 +0,0 @@ -#!/bin/bash - -# mysql -if [ -d /var/lib/mysql/sme8admin ] && [ ! -d /var/lib/mysql/smeadmin ]; then - echo "Migrating existing sme8admin MySQL database." - mysqladmin create smeadmin - mysqldump sme8admin | mysql smeadmin - PASS=$(/sbin/e-smith/db configuration getprop smeadmind DbPassword) - mysql -e " grant all privileges on smeadmin.* to 'smeadmin'@'localhost' identified by '$PASS'" - mysqladmin flush-privileges -elif [ -e /var/lib/mysql/smeadmin ]; then - # c'est une mise jour, on fait une upgrade de la base si besoin - sh /usr/share/doc/smeserver-smeadmin/update-mysql.sh -else - #si c'est une freshinstall on cree la bd mysql - sh /usr/share/doc/smeserver-smeadmin/create-mysql.sh -fi - -# rrd - # migrating previous sme8admin rrd - if [ -d /var/lib/sme8admin ] && [ ! -d /var/lib/smeadmin ]; then - echo "Migrating existing sme8admin RRDs files." - cp -vr /var/lib/sme8admin /var/lib/smeadmin - fi - - #ADD more DS for version 1.5-10 - #first we test if these DS are already in the sensors.rrd - if [[ -f /var/lib/smeadmin/sensors.rrd ]]; then - rrdtool dump /var/lib/smeadmin/sensors.rrd > /tmp/new_file.xml - testDS=$(grep -w 'fspd2\|thd3\|thd4\|thd5\|thd6' /tmp/new_file.xml) - rm -f /tmp/new_file.xml - fi - # then since the DS are not in the sensors.rrd we create it - if [[ -d /var/lib/smeadmin ]] && [[ ! $testDS ]]; then - #if (fspd2,thd3,thd4,thd5,thd6) don't exist, then we create it without nuked the data already existent - /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd fspd2:GAUGE:600:0:10000 - /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd3:GAUGE:600:0:100 - /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd4:GAUGE:600:0:100 - /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd5:GAUGE:600:0:100 - /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd6:GAUGE:600:0:100 - - - elif [[ ! -d /var/lib/smeadmin ]]; then - #si c'est une freshinstall on cree les rrd - sh /usr/share/doc/smeserver-smeadmin/create-rrd.sh - fi - if [[ ! -f /var/lib/smeadmin/qpsmtpd.rrd ]]; then - # si le rrd qpsmtpd existe pas (nouveauté SME9) - rrdtool create /var/lib/smeadmin/qpsmtpd.rrd -s 300 \ - DS:check_basicheaders:GAUGE:600:0:U \ - DS:check_goodrcptto:GAUGE:600:0:U \ - DS:clamav:GAUGE:600:0:U \ - DS:karma:GAUGE:600:0:U \ - DS:tls_failed:GAUGE:600:0:U \ - DS:rhsbl:GAUGE:600:0:U \ - DS:check_earlytalker:GAUGE:600:0:U \ - DS:resolvable_fromhost:GAUGE:600:0:U \ - DS:dnsbl:GAUGE:600:0:U \ - DS:fcrdns:GAUGE:600:0:U \ - DS:spf:GAUGE:600:0:U \ - DS:check_spamhelo:GAUGE:600:0:U \ - DS:uribl:GAUGE:600:0:U \ - DS:dmarc:GAUGE:600:0:U \ - DS:total_denied:GAUGE:600:0:U \ - DS:spam_denied:GAUGE:600:0:U \ - DS:other_denied:GAUGE:600:0:U \ - DS:spam_queued:GAUGE:600:0:U \ - DS:queued:GAUGE:600:0:U \ - DS:total:GAUGE:600:0:U \ - RRA:AVERAGE:0.5:1:12 \ - RRA:AVERAGE:0.5:1:72 \ - RRA:AVERAGE:0.5:1:288 \ - RRA:AVERAGE:0.5:6:336 \ - RRA:AVERAGE:0.5:24:372 \ - RRA:AVERAGE:0.5:288:365 \ - RRA:MAX:0.5:1:12 \ - RRA:MAX:0.5:1:72 \ - RRA:MAX:0.5:1:288 \ - RRA:MAX:0.5:6:336 \ - RRA:MAX:0.5:24:372 \ - RRA:MAX:0.5:288:365 \ - RRA:MIN:0.5:1:12 \ - RRA:MIN:0.5:1:72 \ - RRA:MIN:0.5:1:288 \ - RRA:MIN:0.5:6:336 \ - RRA:MIN:0.5:24:372 \ - RRA:MIN:0.5:288:365 - fi - if [[ ! -f /var/lib/smeadmin/qmail.rrd ]]; then - # nombre et raisons de connexions refusées ou acceptées et file d'attente - rrdtool create /var/lib/smeadmin/qmail.rrd -s 300 \ - DS:local_failure:GAUGE:600:0:U \ - DS:local_deferral:GAUGE:600:0:U \ - DS:local_success:GAUGE:600:0:U \ - DS:local_total:GAUGE:600:0:U \ - DS:remote_failure:GAUGE:600:0:U \ - DS:remote_deferral:GAUGE:600:0:U \ - DS:remote_success:GAUGE:600:0:U \ - DS:remote_total:GAUGE:600:0:U \ - DS:local_queue:GAUGE:600:0:U \ - DS:remote_queue:GAUGE:600:0:U \ - RRA:AVERAGE:0.5:1:12 \ - RRA:AVERAGE:0.5:1:72 \ - RRA:AVERAGE:0.5:1:288 \ - RRA:AVERAGE:0.5:6:336 \ - RRA:AVERAGE:0.5:24:372 \ - RRA:AVERAGE:0.5:288:365 \ - RRA:MAX:0.5:1:12 \ - RRA:MAX:0.5:1:72 \ - RRA:MAX:0.5:1:288 \ - RRA:MAX:0.5:6:336 \ - RRA:MAX:0.5:24:372 \ - RRA:MAX:0.5:288:365 \ - RRA:MIN:0.5:1:12 \ - RRA:MIN:0.5:1:72 \ - RRA:MIN:0.5:1:288 \ - RRA:MIN:0.5:6:336 \ - RRA:MIN:0.5:24:372 \ - RRA:MIN:0.5:288:365 - fi - if [[ ! -f /var/lib/smeadmin/altqmail.rrd ]]; then - # nombre et raisons de connexions refusées ou acceptées et file d'attente - rrdtool create /var/lib/smeadmin/altqmail.rrd -s 300 \ - DS:local_failure:GAUGE:600:0:U \ - DS:local_deferral:GAUGE:600:0:U \ - DS:local_success:GAUGE:600:0:U \ - DS:local_total:GAUGE:600:0:U \ - DS:remote_failure:GAUGE:600:0:U \ - DS:remote_deferral:GAUGE:600:0:U \ - DS:remote_success:GAUGE:600:0:U \ - DS:remote_total:GAUGE:600:0:U \ - DS:local_queue:GAUGE:600:0:U \ - DS:remote_queue:GAUGE:600:0:U \ - RRA:AVERAGE:0.5:1:12 \ - RRA:AVERAGE:0.5:1:72 \ - RRA:AVERAGE:0.5:1:288 \ - RRA:AVERAGE:0.5:6:336 \ - RRA:AVERAGE:0.5:24:372 \ - RRA:AVERAGE:0.5:288:365 \ - RRA:MAX:0.5:1:12 \ - RRA:MAX:0.5:1:72 \ - RRA:MAX:0.5:1:288 \ - RRA:MAX:0.5:6:336 \ - RRA:MAX:0.5:24:372 \ - RRA:MAX:0.5:288:365 \ - RRA:MIN:0.5:1:12 \ - RRA:MIN:0.5:1:72 \ - RRA:MIN:0.5:1:288 \ - RRA:MIN:0.5:6:336 \ - RRA:MIN:0.5:24:372 \ - RRA:MIN:0.5:288:365 - fi - diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/e-smith/templates/etc/e-smith/sql/init/smeadmin smeserver-smeadmin-1.6/root/etc/e-smith/templates/etc/e-smith/sql/init/smeadmin --- smeserver-smeadmin-1.6.old/root/etc/e-smith/templates/etc/e-smith/sql/init/smeadmin 1969-12-31 19:00:00.000000000 -0500 +++ smeserver-smeadmin-1.6/root/etc/e-smith/templates/etc/e-smith/sql/init/smeadmin 2021-03-25 15:32:13.964000000 -0400 @@ -0,0 +1,153 @@ +#!/bin/bash + +# mysql +if [ -d /var/lib/mysql/sme9admin ] && [ ! -d /var/lib/mysql/smeadmin ]; then + echo "Migrating existing sme9admin MySQL database." + mysqladmin create smeadmin + mysqldump sme9admin | mysql smeadmin + PASS=$(/sbin/e-smith/db configuration getprop smeadmind DbPassword) + mysql -e " grant all privileges on smeadmin.* to 'smeadmin'@'localhost' identified by '$PASS'" + mysqladmin flush-privileges +elif [ -e /var/lib/mysql/smeadmin ]; then + # c'est une mise jour, on fait une upgrade de la base si besoin + sh /usr/share/doc/smeserver-smeadmin/update-mysql.sh +else + #si c'est une freshinstall on cree la bd mysql + sh /usr/share/doc/smeserver-smeadmin/create-mysql.sh +fi + +# rrd + # migrating previous sme9admin rrd + if [ -d /var/lib/sme9admin ] && [ ! -d /var/lib/smeadmin ]; then + echo "Migrating existing sme9admin RRDs files." + cp -vr /var/lib/sme9admin /var/lib/smeadmin + fi + + #ADD more DS for version 1.5-10 + #first we test if these DS are already in the sensors.rrd + if [[ -f /var/lib/smeadmin/sensors.rrd ]]; then + rrdtool dump /var/lib/smeadmin/sensors.rrd > /tmp/new_file.xml + testDS=$(grep -w 'fspd2\|thd3\|thd4\|thd5\|thd6' /tmp/new_file.xml) + rm -f /tmp/new_file.xml + fi + # then since the DS are not in the sensors.rrd we create it + if [[ -d /var/lib/smeadmin ]] && [[ ! $testDS ]]; then + #if (fspd2,thd3,thd4,thd5,thd6) don't exist, then we create it without nuked the data already existent + /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd fspd2:GAUGE:600:0:10000 + /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd3:GAUGE:600:0:100 + /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd4:GAUGE:600:0:100 + /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd5:GAUGE:600:0:100 + /usr/share/doc/smeserver-smeadmin/add_ds_to_rrd.pl /var/lib/smeadmin sensors.rrd thd6:GAUGE:600:0:100 + + + elif [[ ! -d /var/lib/smeadmin ]]; then + #si c'est une freshinstall on cree les rrd + sh /usr/share/doc/smeserver-smeadmin/create-rrd.sh + fi + if [[ ! -f /var/lib/smeadmin/qpsmtpd.rrd ]]; then + # si le rrd qpsmtpd existe pas (nouveauté SME9) + rrdtool create /var/lib/smeadmin/qpsmtpd.rrd -s 300 \ + DS:check_basicheaders:GAUGE:600:0:U \ + DS:check_goodrcptto:GAUGE:600:0:U \ + DS:clamav:GAUGE:600:0:U \ + DS:karma:GAUGE:600:0:U \ + DS:tls_failed:GAUGE:600:0:U \ + DS:rhsbl:GAUGE:600:0:U \ + DS:check_earlytalker:GAUGE:600:0:U \ + DS:resolvable_fromhost:GAUGE:600:0:U \ + DS:dnsbl:GAUGE:600:0:U \ + DS:fcrdns:GAUGE:600:0:U \ + DS:spf:GAUGE:600:0:U \ + DS:check_spamhelo:GAUGE:600:0:U \ + DS:uribl:GAUGE:600:0:U \ + DS:dmarc:GAUGE:600:0:U \ + DS:total_denied:GAUGE:600:0:U \ + DS:spam_denied:GAUGE:600:0:U \ + DS:other_denied:GAUGE:600:0:U \ + DS:spam_queued:GAUGE:600:0:U \ + DS:queued:GAUGE:600:0:U \ + DS:total:GAUGE:600:0:U \ + RRA:AVERAGE:0.5:1:12 \ + RRA:AVERAGE:0.5:1:72 \ + RRA:AVERAGE:0.5:1:288 \ + RRA:AVERAGE:0.5:6:336 \ + RRA:AVERAGE:0.5:24:372 \ + RRA:AVERAGE:0.5:288:365 \ + RRA:MAX:0.5:1:12 \ + RRA:MAX:0.5:1:72 \ + RRA:MAX:0.5:1:288 \ + RRA:MAX:0.5:6:336 \ + RRA:MAX:0.5:24:372 \ + RRA:MAX:0.5:288:365 \ + RRA:MIN:0.5:1:12 \ + RRA:MIN:0.5:1:72 \ + RRA:MIN:0.5:1:288 \ + RRA:MIN:0.5:6:336 \ + RRA:MIN:0.5:24:372 \ + RRA:MIN:0.5:288:365 + fi + if [[ ! -f /var/lib/smeadmin/qmail.rrd ]]; then + # nombre et raisons de connexions refusées ou acceptées et file d'attente + rrdtool create /var/lib/smeadmin/qmail.rrd -s 300 \ + DS:local_failure:GAUGE:600:0:U \ + DS:local_deferral:GAUGE:600:0:U \ + DS:local_success:GAUGE:600:0:U \ + DS:local_total:GAUGE:600:0:U \ + DS:remote_failure:GAUGE:600:0:U \ + DS:remote_deferral:GAUGE:600:0:U \ + DS:remote_success:GAUGE:600:0:U \ + DS:remote_total:GAUGE:600:0:U \ + DS:local_queue:GAUGE:600:0:U \ + DS:remote_queue:GAUGE:600:0:U \ + RRA:AVERAGE:0.5:1:12 \ + RRA:AVERAGE:0.5:1:72 \ + RRA:AVERAGE:0.5:1:288 \ + RRA:AVERAGE:0.5:6:336 \ + RRA:AVERAGE:0.5:24:372 \ + RRA:AVERAGE:0.5:288:365 \ + RRA:MAX:0.5:1:12 \ + RRA:MAX:0.5:1:72 \ + RRA:MAX:0.5:1:288 \ + RRA:MAX:0.5:6:336 \ + RRA:MAX:0.5:24:372 \ + RRA:MAX:0.5:288:365 \ + RRA:MIN:0.5:1:12 \ + RRA:MIN:0.5:1:72 \ + RRA:MIN:0.5:1:288 \ + RRA:MIN:0.5:6:336 \ + RRA:MIN:0.5:24:372 \ + RRA:MIN:0.5:288:365 + fi + if [[ ! -f /var/lib/smeadmin/altqmail.rrd ]]; then + # nombre et raisons de connexions refusées ou acceptées et file d'attente + rrdtool create /var/lib/smeadmin/altqmail.rrd -s 300 \ + DS:local_failure:GAUGE:600:0:U \ + DS:local_deferral:GAUGE:600:0:U \ + DS:local_success:GAUGE:600:0:U \ + DS:local_total:GAUGE:600:0:U \ + DS:remote_failure:GAUGE:600:0:U \ + DS:remote_deferral:GAUGE:600:0:U \ + DS:remote_success:GAUGE:600:0:U \ + DS:remote_total:GAUGE:600:0:U \ + DS:local_queue:GAUGE:600:0:U \ + DS:remote_queue:GAUGE:600:0:U \ + RRA:AVERAGE:0.5:1:12 \ + RRA:AVERAGE:0.5:1:72 \ + RRA:AVERAGE:0.5:1:288 \ + RRA:AVERAGE:0.5:6:336 \ + RRA:AVERAGE:0.5:24:372 \ + RRA:AVERAGE:0.5:288:365 \ + RRA:MAX:0.5:1:12 \ + RRA:MAX:0.5:1:72 \ + RRA:MAX:0.5:1:288 \ + RRA:MAX:0.5:6:336 \ + RRA:MAX:0.5:24:372 \ + RRA:MAX:0.5:288:365 \ + RRA:MIN:0.5:1:12 \ + RRA:MIN:0.5:1:72 \ + RRA:MIN:0.5:1:288 \ + RRA:MIN:0.5:6:336 \ + RRA:MIN:0.5:24:372 \ + RRA:MIN:0.5:288:365 + fi + diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/smeadmin smeserver-smeadmin-1.6/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/smeadmin --- smeserver-smeadmin-1.6.old/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/smeadmin 1969-12-31 19:00:00.000000000 -0500 +++ smeserver-smeadmin-1.6/root/etc/e-smith/templates.metadata/etc/e-smith/sql/init/smeadmin 2021-03-27 22:39:01.822000000 -0400 @@ -0,0 +1 @@ +PERMS=0750 diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/e-smith/web/functions/smeadmin smeserver-smeadmin-1.6/root/etc/e-smith/web/functions/smeadmin --- smeserver-smeadmin-1.6.old/root/etc/e-smith/web/functions/smeadmin 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/root/etc/e-smith/web/functions/smeadmin 2021-03-27 22:31:54.326000000 -0400 @@ -368,13 +368,13 @@ #liste des services et classification my @services = ("#".gettext("Web services"),"httpd-e-smith","httpd-admin","squid", "#".gettext("Administrative services"), "sshd", "smeadmind", - "#".gettext("Network services"),"wan","dhcpd","pptpd","ippp", + "#".gettext("Network services"),"wan","dhcpd","pptpd","ippp","bridge","openvpn-s2s","openvpn-routed","openvpn-bridge","wireguard","ipsec","vpnserver", "#".gettext("File-sharing services"),"smb","smbd","nmbd","ftp", - "#".gettext("E-mail services"),"pop3","pop3s","dovecot","imaps","imap","qmail","altqmail","qpsmtpd","sqpsmtpd", "clamd", "freshclam","spamd",#mail + "#".gettext("E-mail services"),"pop3","pop3s","dovecot","imaps","imap","qmail","altqmail","qpsmtpd","sqpsmtpd","smtp-auth-proxy", "clamd", "freshclam","spamd",#mail "#".gettext("DNS services"),"tinydns","dnscache", #dns - "#".gettext("Authentication services"),"oidentd","ldap","smtp-auth-proxy","radiusd", #auth - "#".gettext("Misc. services"),"mysqld","ntpd","lpd", #misc - "#".gettext("System services"),"crond","rsyslog","ulogd","acpid","raidmonitor"); #sys et materiel + "#".gettext("Authentication services"),"oidentd","ldap","smtp-auth-proxy","radiusd","cvm-unix", #auth + "#".gettext("Misc. services"),"mariadb","ntpd","lpd", #misc + "#".gettext("System services"),"crond","rsyslog","ulogd","acpid","raidmonitor","local", "yum"); #sys et materiel #hack pour la mise en forme : a) debut 1er case a gauche print $q->start_table,$q->start_Tr,$q->start_td; @@ -396,24 +396,27 @@ #si c'est un 'header' if ($svc=~/^#(.*)/) { - print $q->Tr(),$q->Tr($q->th($1),$q->th(gettext("State")),$q->th(gettext("Action")),$q->th("DB Status"),$q->th("DB Action")); + print $q->Tr(),$q->Tr($q->th($1),$q->th(gettext("State")),$q->th(gettext("Action")),$q->th("DB Status"),$q->th("DB Action")); } else { - #si c'est un service pour lequel on a des infos complementaires... + #si c'est un service pour lequel on a des infos complementaires... if($svc=~/^(httpd-e-smith|httpd-admin|smb|smbd|nmbd|squid|pptpd|dhcpd|sshd|ftp|pppoe|pppd|wan|altqmail|qmail|qpsmtpd|sqpsmtpd)$/) {$details=1;} if ( -d "/service/$svc") {$cmd = "/usr/bin/sv s $svc";} # was -d /var/service or -d /service/ - elsif ($svc=~/^(imaps|imap)$/) { $cmd = "/usr/bin/sv s dovecot"; } - else {$cmd = "/sbin/e-smith/service $svc status|/bin/grep $svc";} + elsif ($svc=~/^(imaps|imap|pop3|pop3s)$/) { $cmd = "/usr/bin/systemctl is-active dovecot"; } + else {$cmd = "/usr/bin/systemctl is-active $svc";} my @res=`$cmd`; - foreach (@res) + + foreach (@res) { + my $dbsv=$smedb->get("$svc") ||next; # workaround to see db config status my $dbstatus="not defined"; + if ( length(`/sbin/e-smith/db configuration show $svc`) > 1 ) {$dbstatus=$smedb->get("$svc")->prop('status');} # trouver un moyen de verifier que le nom du service est bien trouvé dans liste else - {$dbstatus=""; } + {$dbstatus="";} #print "$svc :".length(`/sbin/e-smith/db configuration show $svc`)."
"; #print $q->p($_); @@ -424,42 +427,39 @@ #Warning !! Only on sme6 #proftpd est arrete - if ($svc=~/^(imaps|imap)$/) - { - print $q->Tr((($details==1)? $q->td($q->a({href=>"$progname?state=service_detail&service=$svc"},"$svc")) : $q->td("$svc")), - $q->td(""),$q->td( "dovecot" ) ,$q->td("$dbstatus"), $q->td( ( ("$dbstatus" ne "") ? (("$dbstatus" eq "enabled" )? $q->submit(-name=>"disabled_$svc",-value=>'disable'): $q->submit(-name=>"enabled_$svc",-value=>'enable')) : " ") ) ); + if ($svc=~/^(imaps|imap|pop3|pop3s)$/) + { + print $q->Tr( + (($details==1)? $q->td($q->a({href=>"$progname?state=service_detail&service=$svc"},"$svc")) : $q->td("$svc")), + $q->td(""),$q->td( "dovecot" ) , + $q->td("$dbstatus"), + $q->td( ( ("$dbstatus" ne "") ? (("$dbstatus" eq "enabled" )? $q->submit(-name=>"disabled_$svc",-value=>'disable'): $q->submit(-name=>"enabled_$svc",-value=>'enable')) : " ") ) + ); - } - #si le service est arrete^:il ya down ou il n'y a pas de () pour le pid et ca ne fini pas par ... - elsif(/^down:/ || /^([a-zA-Z0-9]*) [^(^)]*([^.]{3})$/) - { + } + #si le service est arrete^:il ya down ou il n'y a pas de () pour le pid et ca ne fini pas par ... + elsif(/^down:/ || /^([a-zA-Z0-9]*) [^(^)]*([^.]{3})$/ || /^failed/ || /^unknown/) + { #on fait une conditionnelle pour savoir si on met le nom du service en lien ou pas print $q->Tr((($details==1)? $q->td($q->a({href=>"$progname?state=service_detail&service=$svc"},"$svc")) : $q->td("$svc")), $q->td(gettext("Stopped")),$q->td( (("$dbstatus" eq "enabled" || "$dbstatus" eq "" )? $q->submit(-name=>"start_$svc",-value=>'start'): "disabled") ) ,$q->td("$dbstatus"), $q->td( ( ("$dbstatus" ne "") ? (("$dbstatus" eq "enabled" )? $q->submit(-name=>"disabled_$svc",-value=>'disable'): $q->submit(-name=>"enabled_$svc",-value=>'enable')) : " ") ) ); - } - - #MATCHE: - #/service/raidmonitor: run (pid 1629) 5747 seconds, normally down - #clamd (pid 2221) en cours d'exécution... - #atalkd (pid 6445) is running... - #Warning !! Only on sme6 - #/service/popd: up (pid 22340) 101687 seconds, normally down - #sme6admind (pid 14320) en cours d'execution - - #si le service tourne - elsif (/^run:(.*)\(pid ([\d\s]+)\)/ || /^([a-zA-Z0-9]*) \(pid ([\d\s]+)\).*\.\.\.$/ ) - { + } + elsif (/^run:(.*)\(pid ([\d\s]+)\)/ || /^([a-zA-Z0-9]*) \(pid ([\d\s]+)\).*\.\.\.$/ || /^active/ ) + { #$2=liste pids - my @pids=split(/ /,$2); + my @pids; + @pids=split(/ /,$2) if defined $2; - print $q->Tr((($details==1)? $q->td($q->a({href=>"$progname?state=service_detail&service=$svc"},"$svc")) : $q->td("$svc")), - $q->td(gettext("Started")),$q->td($q->submit(-name=>"stop_$svc",-value=>'stop')) ,$q->td("$dbstatus"), - $q->td( ( ("$dbstatus" ne "") ? (("$dbstatus" eq "enabled" )? $q->submit(-name=>"disabled_$svc",-value=>'disable'): $q->submit(-name=>"enabled_$svc",-value=>'enable')) : " ") ) ); - } - } - } + print $q->Tr( + (($details==1)? $q->td($q->a({href=>"$progname?state=service_detail&service=$svc"},"$svc")) : $q->td("$svc")), + $q->td(gettext("Started")), + $q->td($q->submit(-name=>"stop_$svc",-value=>'stop')) ,$q->td("$dbstatus"), + $q->td( ( ("$dbstatus" ne "") ? (("$dbstatus" eq "enabled" )? $q->submit(-name=>"disabled_$svc",-value=>'disable'): $q->submit(-name=>"enabled_$svc",-value=>'enable')) : " ") ) ); + } + } + } } #service_control est le parametre qui prend le nom du service a arreter/demarrer diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/etc/rc.d/init.d/smeadmind smeserver-smeadmin-1.6/root/etc/rc.d/init.d/smeadmind --- smeserver-smeadmin-1.6.old/root/etc/rc.d/init.d/smeadmind 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/root/etc/rc.d/init.d/smeadmind 1969-12-31 19:00:00.000000000 -0500 @@ -1,59 +0,0 @@ -#!/bin/sh -# Smeadmin - script shell pour l'arret/demarrage du service -# Copyright (C) 2006 -# This file is distributed under the GPL license. -# Landry Breuil , 2006. - -# description: service de surveillance du systeme -# chkconfig: 345 97 03 - -# Source function library. -. /etc/rc.d/init.d/functions - -RETVAL=0 - -# See how we were called. -case "$1" in - start) - echo -n "Starting smeadmin daemon: " - # Not shutdown correctly ? - if [ -f /var/run/smeadmin.pid ]; then - kill `cat /var/run/smeadmin.pid` >/dev/null 2>&1 - rm -f /var/run/smeadmin.pid >/dev/null 2>&1 - rm -f /var/lock/subsys/smeadmin && rm -f /var/lock/smeadmin - fi - daemon /usr/bin/smeadmind - RETVAL=$? - echo - [ $RETVAL -eq 0 ] && touch /var/lock/subsys/smeadmin - ;; - stop) - echo -n "Stopping smeadmin daemon: " - killproc smeadmind - RETVAL=$? - rm -f /var/lock/subsys/smeadmin && rm -f /var/lock/smeadmin - echo - ;; - status) - status smeadmind - RETVAL=$? - ;; - restart) - $0 stop - $0 start - RETVAL=$? - ;; - reload) - echo -n "Smeadmin configuration reloaded: " - # A VOIR !! - kill -1 `cat /var/run/smeadmin.pid` - RETVAl=$? - echo - ;; - *) - echo "Usage: $0 {start|stop|status|restart|reload}" - exit 1 -esac - -exit $RETVAL - diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/usr/bin/smeadmind smeserver-smeadmin-1.6/root/usr/bin/smeadmind --- smeserver-smeadmin-1.6.old/root/usr/bin/smeadmind 2020-10-15 07:31:28.000000000 -0400 +++ smeserver-smeadmin-1.6/root/usr/bin/smeadmind 2021-03-27 22:30:13.364000000 -0400 @@ -89,17 +89,18 @@ #tableau des chemins des logs qui nous interessent #TO SEE -my @logs= ( "clamd/current", # pour les VIRUS ??? - "spamd/current", #pour les SPAMS - "sshd/current", #pour les connexions ssh - "messages", - "qmail/current", #pour les mails IN/OUT - "altqmail/current", #pour les mails OUT - "qpsmtpd/current", #pour les SPAM/VIRUS ?? - "sqpsmtpd/current", #idem pour les connexions securisées - "proftpd/current", #pour la date de fin de connection FTP - "secure", #pour les connexion FTP avec le username authentifie - "xferlog"); #pour les details des transferts ftp +my @logs= ( "clamd/current", # VIRUS ??? + "spamd/spamd.log", # SPAMS + "sshd/sshd.log", # ssh connections + "messages", # afpd pppd and others not with dedicated logs + "dhcpd/dhcpd.log", # dhcpd + "qmail/current", # mails IN/OUT + "altqmail/current", # mails OUT + "qpsmtpd/current", # SPAM/VIRUS ?? + "sqpsmtpd/current", # SPAM/VIRUS ?? + "proftpd/proftpd.log", # start and end of ftp session + "secure", # FTP session with usernam auth + "xferlog"); # file transfer with ftp #handle bd mySQL my $bd; @@ -296,6 +297,9 @@ my $cont=0; while(1) { + #step 0 let's reread the logs, so we do not need to restart + readConf(); + # etape 1 : parsage des logs parse_logs(); @@ -358,7 +362,8 @@ $DomainName = $smedb->get('DomainName')->value; $SystemName = $smedb->get('SystemName')->value; $SystemMode = $smedb->get("SystemMode")->value; - + $DEBUG = $smedb->get('smeadmind')->prop('DEBUG') || "0"; + #on n'a une external ip que si on est en server-passerelle if ($SystemMode =~ /servergateway/) { $ExternalIP = $smedb->get("ExternalIP")->value; @@ -480,9 +485,11 @@ # ici on met a jour volume connexion meme si pas fini si pppoe et si pas trouvé de fin dans log my $smedb=esmith::ConfigDB->open; my $ppoeif = $smedb->get("ExternalInterface")->prop('Name'); + my $ppoemode = $smedb->get("ExternalInterface")->prop('Configuration'); #for sme9 in server-only, the external interface is set to none - if ($ppoeif ne 'none') { + #for sme10 we add test we are using pppoe + if ($ppoeif ne 'none' && $ppoemode eq 'pppoe') { my $recBytes=`cat /proc/net/dev|grep $ppoeif|cut -d ':' -f2|tr -s ' '| sed -e 's/^[ \t]*//'|cut -d ' ' -f1`; my $senBytes=`cat /proc/net/dev|grep $ppoeif|tr -s ' '| sed -e 's/^[ \t]*//'|cut -d " " -f9`; @@ -550,13 +557,15 @@ #parsage de la difference entre les 2 logs #si la difference a donne qqch #parse SSHD log to catch ssh connections/bruteforce - if ($nom eq "sshd/current") { + if ($nom eq "sshd/sshd.log") { + debug "sshd: "; while ( defined(my $l = <$fh>)) { chomp $l; #Match: @TAI64 Accepted password for user from ip port prt mode # "@4000000043a7f6970980de74 Accepted password for root from 10.246.200.10 port 60693 ssh2" # "@4000000043a800192a7e131c Accepted publickey for root from 10.246.200.10 port 46322 ssh2" - + # SME10 + # "Mar 23 16:57:38 sme10 sshd[9666]: Accepted publickey for root from 192.168.12.70 port 60224 ssh2: RSA SHA256:uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu" if($l =~ /^(@[0-9a-f]{24}) Accepted (password|publickey) for (\w+) from (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/) { #$1:date $2:methode $3:login $4.$5.$6.$7:ip #open connexion ssh reussie @@ -564,9 +573,20 @@ my $date=tai2strftime($1,"%F %T"); my $reslt=execute_sql_query("SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$3'"); #si on a trouve pas trouve une ligne ==> insert + debug "SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$3'\n"; execute_sql_query("INSERT INTO ssh VALUES ('$date','$ip','$3','1')") if ($reslt eq "0E0"); next; } + elsif ($l =~ /(\w{3}\s{1,2}\d{1,2} [0-9:]{8}) $SystemName sshd\[(\d+)\]: Accepted (password|publickey) for (\w+) from (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/) { + #$1:date $2:methode $3:login $4.$5.$6.$7:ip + #open connexion ssh reussie + my $ip=ipdot2ipnum($5,$6,$7,$8); + my $date=mkmysqldate($1); + debug "SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$4'\n"; + my $reslt=execute_sql_query("SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$4'") ; + execute_sql_query("INSERT INTO ssh VALUES ('$date','$ip','$4','1')") if ($reslt eq "0E0");; + next; + } #Match: @TAI64 Failed password for (|invalid user) user from ip port prt mode #matche ces 2 lignes @@ -583,6 +603,17 @@ execute_sql_query("INSERT INTO ssh VALUES ('$date','$ip','$3','0')") if ($reslt eq "0E0"); next; } + elsif ($l =~ /(\w{3}\s{1,2}\d{1,2} [0-9:]{8}) $SystemName sshd\[(\d+)\]: Failed for(| invalid user) (\w+) from (\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})/) { + #$1:date $2:methode $3:login $4.$5.$6.$7:ip + #open connection ssh failed + my $ip=ipdot2ipnum($5,$6,$7,$8); + my $date=mkmysqldate($1); + debug "SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$4'\n"; + my $reslt=execute_sql_query("SELECT * FROM ssh WHERE ip='$ip' and debut='$date' and login='$4'"); + execute_sql_query("INSERT INTO ssh VALUES ('$date','$ip','$4','0')") if ($reslt eq "0E0");; + next; + } + } } @@ -614,7 +645,7 @@ } } #ici on matche les fins de connexion ftp (reussies ou non) - elsif ($nom eq "proftpd/current") { + elsif ($nom eq "proftpd/proftpd.log") { while ( defined(my $l = <$fh>)) { chomp $l; #@4000000043973d2916bb3c9c tcpsvd: info: end 9952 exit 0 @@ -658,10 +689,12 @@ if ($l =~ /FOUND/) {$net_virus++;next;} } } - elsif ($nom eq "spamd/current") { + elsif ($nom eq "spamd/spamd.log") { while ( defined(my $l = <$fh>)) { chomp $l; #@4000000043a1c3ab1ff72c94 2005-12-15 19:27:29 [4838] i: identified spam (997.2/3.0) for qpsmtpd:1005 in 2.2 seconds, 557 bytes. + # SME10 + #Mar 25 18:40:17 sacrum check[12093]: spamd: identified spam (98.8/4.0) for qpsmtpd:1005 in 17.4 seconds, 211566 bytes. if($l =~ /identified spam/) {$net_spam++;next;} } } @@ -723,10 +756,10 @@ $cntaqmlocal{total} = $cntaqmlocal{total} + $cntaqmlocal{$_} if $_ !~ /total/; } ## add qmail local queue - $localaqueue=`find /var/service/altqmail/root/var/qmail/queue/local/ -type f | wc -l`; + $localaqueue=`find /var/service/altqmail/root/var/qmail/queue/local/ -type f 2>/dev/null| wc -l` || "0"; $localaqueue=~ s/\D+//g; ### add qmail remote queue - $remoteaqueue=`find /var/service/altqmail/root/var/qmail/queue/remote/ -type f | wc -l`; + $remoteaqueue=`find /var/service/altqmail/root/var/qmail/queue/remote/ -type f 2>/dev/null| wc -l` ||"0"; $remoteaqueue=~ s/\D+//g; $net_amail_out=$cntaqm{total}; @@ -789,7 +822,7 @@ } - elsif ($nom eq "messages") { + elsif ($nom eq "/dhcpd/dhcpd.log") { while ( defined(my $l = <$fh>)) { #Baux DHCP #/var/log/messages:Nov 28 19:34:14 sme7b5 dhcpd: DHCPACK on 192.168.1.250 to 00:e0:4c:39:03:a5 via eth0 @@ -811,7 +844,10 @@ $net_dhcp++; next; } - + } + } + elsif ($nom eq "messages") { + while ( defined(my $l = <$fh>)) { #Connexion afp (beta test ??) 1-ouverture session (548==>port afpovertcp) #Jul 13 11:50:02 sas afpd[30668]: ASIP session:548(2) from 192.168.150.12:49278(0) #Match: mmm dd hh:mm:ss hostname afpd[pid]: ASIP session:548(xxxx)?? from ip:port(xx?) @@ -1355,41 +1391,45 @@ # cette fonction met a jour les RRDs. Elle a ete "factorisee" pour plus de lisibilite sub update_rrd { #DEBUG !! -# print "sensors_temp1=$sensors_temp1,sensors_temp_hd1=$sensors_temp_hd1,sensors_temp_hd2=$sensors_temp_hd2,"; -# print "sensors_temp2=$sensors_temp2,sensors_fan_speed=$sensors_fan_speed,sensors_fan2_speed=$sensors_fan2_speed\n"; -# print "hd_total=$hd_total,hd_used=$hd_used,hd_free=$hd_free,hd_log=$hd_log,"; -# print "hd_files=$hd_files,hd_squid=$hd_squid,hd_mysql=$hd_mysql,hd_blkread=$hd_blkread,hd_blkwrite=$hd_blkwrite\n"; -# print "if_loc_bin=$if_loc_bin,if_loc_bout=$if_loc_bout,if_loc_pin=$if_loc_pin,if_loc_pout=$if_loc_pout\n"; -# print "if_ext_bin=$if_ext_bin,if_ext_bout=$if_ext_bout,if_ext_pin=$if_ext_pin,if_ext_pout=$if_ext_pout\n"; -# print "net_samba=$net_samba,net_minlatency=$net_minlatency,net_avglatency=$net_avglatency,"; -# print "net_maxlatency=$net_maxlatency,net_loss=$net_loss,net_spam=$net_spam,net_virus=$net_virus,"; -# print "net_dhcp=$net_dhcp,net_mail_in=$net_mail_in,net_mail_out=$net_mail_out\n"; -# print "cpu_total=$cpu_total,cpu_idle=$cpu_idle,cpu_system=$cpu_system,cpu_user=$cpu_user\n"; -# print "cpu_nice=$cpu_nice,cpu_plist=$cpu_plist,cpu_runq=$cpu_runq"; -# print "cpu_load1=$cpu_load1,cpu_load5=$cpu_load5,cpu_load15=$cpu_load15,cpu_uptime=$cpu_uptime\n"; -# print "mem_memtotal=$mem_memtotal,mem_memused=$mem_memused,mem_memfree=$mem_memfree"; -# print "mem_memactualused=$mem_memactualused,mem_memactualfree=$mem_memactualfree\n"; -# print "mem_membuffers=$mem_membuffers,mem_memcache=$mem_memcache"; -# print "mem_swaptotal=$mem_swaptotal,mem_swapused=$mem_swapused,mem_swapfree=$mem_swapfree\n"; -# print "httpd cpu=$httpd_cpu, mem=$httpd_mem, nb=$httpd_nbproc\n"; -# print "samba cpu=$samba_cpu, mem=$samba_mem, nb=$samba_nbproc\n"; -# print "afp cpu=$afp_cpu, mem=$afp_mem, nb=$afp_nbproc\n"; -# print "squid cpu=$squid_cpu, mem=$squid_mem, nb=$squid_nbproc\n"; -# print "sessions_ftp=$sessions_ftp,sessions_ssh=$sessions_ssh,"; -# print "sessions_vpn=$sessions_vpn,sessions_netbios=$sessions_netbios\n"; -# print "check_basicheaders=$mail_in_check_basicheaders,check_earlytalker=$mail_in_check_earlytalker,check_goodrcptto=$mail_in_check_goodrcptto,check_spamhelo=$mail_in_check_spamhelo," + debug "sensors_temp1=$sensors_temp1,sensors_temp_hd1=$sensors_temp_hd1,sensors_temp_hd2=$sensors_temp_hd2,"; + debug "sensors_temp2=$sensors_temp2,sensors_fan_speed=$sensors_fan_speed,sensors_fan2_speed=$sensors_fan2_speed\n"; + debug "hd_total=$hd_total,hd_used=$hd_used,hd_free=$hd_free,hd_log=$hd_log,"; + debug "hd_files=$hd_files,hd_squid=$hd_squid,hd_mysql=$hd_mysql,hd_blkread=$hd_blkread,hd_blkwrite=$hd_blkwrite\n"; + debug "if_loc_bin=$if_loc_bin,if_loc_bout=$if_loc_bout,if_loc_pin=$if_loc_pin,if_loc_pout=$if_loc_pout\n"; + debug "if_ext_bin=$if_ext_bin,if_ext_bout=$if_ext_bout,if_ext_pin=$if_ext_pin,if_ext_pout=$if_ext_pout\n"; + debug "net_samba=$net_samba,net_minlatency=$net_minlatency,net_avglatency=$net_avglatency,"; + debug "net_maxlatency=$net_maxlatency,net_loss=$net_loss,net_spam=$net_spam,net_virus=$net_virus,"; + debug "net_dhcp=$net_dhcp,net_mail_in=$net_mail_in,net_mail_out=$net_mail_out\n"; + debug "cpu_total=$cpu_total,cpu_idle=$cpu_idle,cpu_system=$cpu_system,cpu_user=$cpu_user\n"; + debug "cpu_nice=$cpu_nice,cpu_plist=$cpu_plist,cpu_runq=$cpu_runq"; + debug "cpu_load1=$cpu_load1,cpu_load5=$cpu_load5,cpu_load15=$cpu_load15,cpu_uptime=$cpu_uptime\n"; + debug "mem_memtotal=$mem_memtotal,mem_memused=$mem_memused,mem_memfree=$mem_memfree"; + debug "mem_memactualused=$mem_memactualused,mem_memactualfree=$mem_memactualfree\n"; + debug "mem_membuffers=$mem_membuffers,mem_memcache=$mem_memcache"; + debug "mem_swaptotal=$mem_swaptotal,mem_swapused=$mem_swapused,mem_swapfree=$mem_swapfree\n"; + debug "httpd cpu=$httpd_cpu, mem=$httpd_mem, nb=$httpd_nbproc\n"; + debug "samba cpu=$samba_cpu, mem=$samba_mem, nb=$samba_nbproc\n"; + debug "afp cpu=$afp_cpu, mem=$afp_mem, nb=$afp_nbproc\n"; + debug "squid cpu=$squid_cpu, mem=$squid_mem, nb=$squid_nbproc\n"; + debug "sessions_ftp=$sessions_ftp,sessions_ssh=$sessions_ssh,"; + debug "sessions_vpn=$sessions_vpn,sessions_netbios=$sessions_netbios\n"; +# debug "check_basicheaders=$mail_in_check_basicheaders,check_earlytalker=$mail_in_check_earlytalker,check_goodrcptto=$mail_in_check_goodrcptto,check_spamhelo=$mail_in_check_spamhelo," #."clamav=$mail_in_clamav,dmarc=$mail_in_dmarc,dnsbl=$mail_in_dnsbl,fcrdns=$mail_in_fcrdns,karma=$mail_in_karma,other_denied=$mail_in_other_denied,queued=$mail_in_queued,resolvable_fromhost=$mail_in_resolvable_fromhost," #."rhsbl=$mail_in_rhsbl,spam_denied=$mail_in_spam_denied,spam_queued=$mail_in_spam_queued,spf=$mail_in_spf,tls_failed=$mail_in_tls_failed,total=$mail_in_total,total_denied=$mail_in_total_denied,uribl=$mail_in_uribl\n"; -# foreach (keys %denied,@others){ print "$_: $cnt{$_},";}; print "\n"; -# print join(':', map {$cnt{$_}} keys %denied,@others); print "\n"; - print "qmail "; - foreach (@resultsqm){ print "local_$_:$cntqmlocal{$_},";}; foreach (@resultsqm){ print "$_:$cntqm{$_},";}; - print "localqueue=$localqueue,remotequeue=$remotequeue\n"; -# print join(':', map {$cntqmlocal{$_}} @resultsqm) .":". join(':', map {$cntqm{$_}} @resultsqm); print ":". $localqueue .":". $remotequeue; print "\n"; - print "altqmail "; - foreach (@resultsaqm){ print "local_$_:$cntaqmlocal{$_},";}; foreach (@resultsaqm){ print "$_:$cntaqm{$_},";}; - print "localqueue=$localaqueue,remotequeue=$remoteaqueue\n"; -# print join(':', map {$cntaqmlocal{$_}} @resultsaqm) .":". join(':', map {$cntaqm{$_}} @resultsaqm); print ":". $localaqueue .":". $remoteaqueue; print "\n"; + foreach (keys %denied,@others){ debug "$_: $cnt{$_},";}; debug "\n"; + # print join(':', map {$cnt{$_}} keys %denied,@others); print "\n"; + debug "qmail "; + foreach (@resultsqm){ debug "local_$_:$cntqmlocal{$_},";}; foreach (@resultsqm){ debug "$_:$cntqm{$_},";}; + debug "localqueue=$localqueue,remotequeue=$remotequeue\n"; + # print join(':', map {$cntqmlocal{$_}} @resultsqm) .":". join(':', map {$cntqm{$_}} @resultsqm); print ":". $localqueue .":". $remotequeue; print "\n"; + if (defined $localaqueue) { + debug("altqmail "); + foreach (@resultsaqm){ debug "local_$_:$cntaqmlocal{$_},";}; foreach (@resultsaqm){ debug "$_:$cntaqm{$_},";}; debug "\n"; + debug("localqueue=$localaqueue,remotequeue=$remoteaqueue\n"); + # print join(':', map {$cntaqmlocal{$_}} @resultsaqm) .":". join(':', map {$cntaqm{$_}} @resultsaqm); print ":". $localaqueue .":". $remoteaqueue; print "\n"; + } else { + $localaqueue=""; $remoteaqueue=""; + } my %rrds=( "sensors"=>"$sensors_temp1:$sensors_temp2:$sensors_temp_hd1:$sensors_temp_hd2:$sensors_fan_speed:$sensors_fan2_speed:$sensors_temp_hd3:$sensors_temp_hd4:$sensors_temp_hd5:$sensors_temp_hd6", diff -Nur --no-dereference smeserver-smeadmin-1.6.old/root/usr/lib/systemd/system/smeadmind.service smeserver-smeadmin-1.6/root/usr/lib/systemd/system/smeadmind.service --- smeserver-smeadmin-1.6.old/root/usr/lib/systemd/system/smeadmind.service 1969-12-31 19:00:00.000000000 -0500 +++ smeserver-smeadmin-1.6/root/usr/lib/systemd/system/smeadmind.service 2021-03-27 22:31:08.730000000 -0400 @@ -0,0 +1,21 @@ +[Unit] +Description=SME Admin Monitor Agent for Koozali SME Server +Before=shutdown.target +Conflicts=shutdown.target + +[Service] +Type=forking +Restart=no +TimeoutSec=1min +IgnoreSIGPIPE=no +KillMode=process +RemainAfterExit=yes + +PIDFile=/var/run/smeadmin.pid +ExecStart=/usr/bin/smeadmind +ExecReload=/usr/bin/kill -HUP $MAINPID +Restart=always +RestartSec=5 + +[Install] +WantedBy=sme-server.target