[Eisfair_dev] [e1] Samba 9.0.0 (Status 'unstable')
Peter Bäumer
peter at baeumer.dd-dns.de
Mo Feb 24 13:11:58 CET 2020
Glück Auf! Thomas,
Am 21.02.2020 um 21:16 schrieb Thomas Bork:
> Am 21.02.2020 um 18:57 schrieb Peter Bäumer:
>
>> init-Skript schreiben.
>
> Hab ich. Wertet keine Konfiguration aus, startet, stoppt und gibt den Status aus.
>
Hab jetzt auch eins ;)
>> Skript für Logrotate?
>
> Klar
Lohnt fast gar nicht da der Dämon nicht geschwätzig ist.
Im Log steh bei mir nur:
2020-02-24 10:28:46,961:wsdd WARNING(pid 30962): no interface given, using all interfaces
Es wird etwas besser wenn --verbose angeben ist:
beim Start:
2020-02-24 11:18:45,057:wsdd WARNING(pid 1387): no interface given, using all interfaces
2020-02-24 11:18:45,057:wsdd INFO(pid 1387): using pre-defined UUID 0776c8a5-eec8-538f-84c9-8373accf31fa
2020-02-24 11:18:45,064:wsdd INFO(pid 1387): joined multicast group ('239.255.255.250', 3702) on 172.31.0.157%eth0
2020-02-24 11:18:45,068:wsdd INFO(pid 1387): joined multicast group ('ff02::c', 3702, 22364, 2) on fe80::31ff:fe00:157%eth0
2020-02-24 11:18:45,069:wsdd INFO(pid 1387): chrooted successfully to /var/lib/wsdd
2020-02-24 11:18:45,069:wsdd INFO(pid 1387): running as nobody:nogroup (65534:65534)
2020-02-24 11:18:45,097:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,134:wsdd INFO(pid 1387): fe80::21a0:7b0b:89c0:d7d0%eth0 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,155:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,172:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
2020-02-24 11:18:45,186:wsdd INFO(pid 1387): 172.31.1.1 - - "POST /0776c8a5-eec8-538f-84c9-8373accf31fa HTTP/1.1" 200 -
beim Stop:
2020-02-24 11:22:39,170:wsdd INFO(pid 1387): received SIGTERM, tearing down
2020-02-24 11:22:39,170:wsdd INFO(pid 1387): shutting down gracefully...
2020-02-24 11:22:40,308:wsdd INFO(pid 1387): Done.
>> Welche Optionen ins Menü wandern soll bin ich mir auch noch nicht sicher.
>> -c CHROOT, --chroot CHROOT directory to chroot into
>> Will hoffen das das mit der Option -c geht, hab noch nicht feststellen können es geht oder nicht.
>
> Geht, kann immer gesetzt werden.
Hab es jetzt auch im Log gesehen :)
Ist /var/lib/wsdd der passende Oedner für das chroot ?
>> -H HOPLIMIT, --hoplimit HOPLIMIT hop limit for multicast packets (default = 1)
>> Ein Hop sollte im allgemeinen ausreichen, gib es Szenarios wo man mehr braucht?
>
> Systeme mit mehreren Netzwerkkarten?
Dürfte doch nur von Interesse sein wenn es über einen Router geht soll?
und in einer zweiten Kollisionsdomäne verfügbar sein soll?
>> -U UUID, --uuid UUID UUID for the target device
>> Keine Ahnung für was das gut sein soll :(
>
> Die sollte für ein System immer gleich sein, bildet wsdd aus dem Hostnamen, wenn man nix setzt.
Wenn das wsdd automatisch macht braucht man das auch nicht im Menü konfigurieren :)
>
>> -w WORKGROUP, --workgroup WORKGROUP set workgroup name (default WORKGROUP)
>> Der Workgroup Name kann aus der /etc/config.d/samba ermittelt werden (SAMBA_WORKGROUP)
>
> Parst das init-Skript aus testparm.
>
>> -d DOMAIN, --domain DOMAIN set domain name (disables workgroup)
>> Kann der Domainname auch aus der /etc/config.d/samba ermittelt werden?
>
> Funktioniert sowohl mit Workgroup als auch Domäne.
Gehe ich richtig in der Annahme wenn server role nicht ROLE_STANDALONE ist
dann ist ein Domänencontroller (PDC) oder Domän-Memberserver ?
if testparm -s 2>&1 |grep -q "ROLE_STANDALONE" ; then
SERVER_ROLE="--workgroup"
else
SERVER_ROLE="--domain"
fi
Wenn ich das Python Skript richtig lese wäre der einzige unterschied
das der Hostname bei Workgoup in Großbuchstaben dargestellt wird und bei Domain und kleinen.
Für das Eis-Menü hätte ich bis jetzt:
START_WSDD=yes|no
WSDD_VERBOSE=yes|no
WSDD_LOG_COUNT='10'
WSDD_LOG_INTERVAL='monthly'
und die Links für start|stop|restart|status
Optional:
Wäre toll wenn Samba bei einer Konfigurationsänderung den wssd Dämon mit Restarten könnte,
damit wsdd Änderungen sofort mit bekommt.
MfG
Peter B.
/etc/init.d/wsdd (noch im Bastel status)
#!/bin/bash
#. /etc/config.d/wsdd
. /etc/init.d/functions
packageName='wsdd'
CHROOT="/var/lib/wsdd" # --chroot -c
USER="nobody:nogroup" # --user -u
INTERFACE="" # --interface -i
HOPLIMIT="" # --hoplimit -H
UUID="" # --uuid -U
WORKGROUP="$(testparm -s --parameter-name workgroup 2>/dev/null)"
LOG_DIR="${CHROOT}/var/log"
#-n HOSTNAME
#--preserve-case
#--nohttp
#--ipv4only
#--ipv6only
# check WORKGROP oder DOMAIN #
if testparm -s 2>&1 |grep -q "ROLE_STANDALONE" ; then
SERVER_ROLE="--workgroup"
else
SERVER_ROLE="--domain"
fi
# create Lod dir #
[ -d ${LOG_DIR} ] || mkdir -p ${LOG_DIR}
START_WSDD=yes
WSDD_VERBOSE=yes
if [ ${WSDD_VERBOSE} = "yes" ]; then
VERBOSE="--verbose"
else
VERBOSE=""
fi
_do_start ()
{
if ${forcestart:-false}; then
START_WSDD=yes
fi
if [ "${START_WSDD}" = 'yes' ]; then
cd ${CHROOT}
boot_mesg " * Starting wsdd ... "
if pidof python3 bin/wsdd > /dev/null 2>&1 ; then
if ! ${_quiet}; then
CURS_UP="\\033[1A\\033[0G"
echo -e "${CURS_UP} * Starting wsdd ... is still running with Process ID(s) $(pidof python3 bin/wsdd)."
echo_warning
fi
else
bin/wsdd.py ${SERVER_ROLE} ${WORKGROUP} --chroot ${CHROOT} --user ${USER} >> ${LOG_DIR}/wsdd.log 2>&1 &
RC=$?
a=0
PID=""
while [ -z $PID ]
do
let a=$a+1
if [ $a = 10 ];then
break
fi
PID=$(pidof python3 bin/wsdd)
done
if [ -n "${PID}" ]; then
echo "${PID}" > /run/wsdd.pid
echo_ok
else
echo_warning
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
fi
fi
fi
}
_do_stop ()
{
boot_mesg " * Stopping wsdd ..."
if pidof python3 bin/wsdd > /dev/null 2>&1 ;then
kill $(pidof python3 bin/wsdd )
RC=$?
while pidof python3 bin/wsdd > /dev/null 2>&1
do
sleep .25
let a=$a+1
if [ $a = 10 ];then
RC=3
fi
done
if [ "$RC" = "0" ];then
echo_ok
else
echo_warning
fi
else
if ! ${_quiet}; then
echo -e "${CURS_UP} * Stopping wsdd ... is not running"
echo_warning
fi
fi
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
}
_do_status ()
{
if pidof python3 bin/wsdd > /dev/null 2>&1 ; then
echo "wsdd is running with Process ID(s) $(pidof python3 bin/wsdd)."
else
echo "wsdd is not running."
[ -f /run/wsdd.pid ] && rm /run/wsdd.pid
fi
}
_do_usage ()
{
echo "Usage: $0 [-q|--quiet] {start|forcestart|stop|restart|status}"
}
#------------------------------------------------------------------
# main
#------------------------------------------------------------------
while [ ${#} -gt 0 ]
do
case "${1}" in
-q|--quiet)
_quiet=true
shift
;;
*)
_action=${1}
shift
;;
esac
done
case "${_action}" in
start)
_do_start
;;
forcestart)
forcestart=true
_do_start
;;
stop)
_do_stop
;;
restart)
_do_stop
while pidof python3 bin/wsdd > /dev/null 2>&1
do
sleep .25
let a=$a+1
[ $a = 10 ] && exit 2
done
_do_start
;;
status)
_do_status
;;
*)
_do_usage
exit 1
;;
esac
exit 0
Mehr Informationen über die Mailingliste Eisfair_dev