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