[Samba] restarting samba using a cron job on Debian

Rowland Penny rowlandpenny241155 at gmail.com
Mon Nov 30 11:13:25 UTC 2015


On 30/11/15 10:01, Lars Hanke wrote:
> For some reason my secondary DC loses sync every once in a while. It 
> looks like this in samba-tool drs showrepl:
>
> Last attempt @ Thu Nov 19 13:53:09 2015 CET failed, result 5 
> (WERR_ACCESS_DENIED)
> 229 consecutive failure(s).
> Last success @ Wed Nov 18 18:48:07 2015 CET
>
> Restarting samba fixes the issue for an unpredictable time. Sometimes 
> hours, sometimes many weeks. So I wrote a script to restart samba in 
> this case:
>
> #!/bin/bash
> #
> # Check if samba replication broke down and restart samba in this case
> #
> SAMBA_TOOL=/usr/bin/samba-tool
> SED=/bin/sed
> MAIL=/usr/bin/mail
> RM=/bin/rm
> MKTMP=/bin/mktemp
>
> FAIL=`$SAMBA_TOOL drs showrepl | $SED -n "/^\s*[1-9][0-9]* consecutive 
> failure(s)\.$/p"`
>
> if [[ -n "$FAIL" ]]; then
>   TMP=$($MKTMP)
>   $SAMBA_TOOL drs showrepl > "$TMP"
>   echo "Restart ..." >> "$TMP"
>   /etc/init.d/samba restart >> "$TMP"
>   echo "... done!" >> "$TMP"
>   $MAIL -s 'DC2 restart' sysop at example.com < "$TMP"
>   $RM -f "$TMP"
> fi
>
> And it works perfectly, if I run it manually. However, the idea is to 
> run it by cron every 5 minutes. But when it's run from cron restarting 
> samba fails:
>
> Restart ...
> Stopping NetBIOS name server: nmbd.
> Stopping SMB/CIFS daemon: smbd.
> Stopping Samba AD DC daemon: samba.
> Starting Samba AD DC daemon: samba failed!
> ... done!

I think you may be using the wrong start/stop/restart init script. On 
Debian there are usually 4 samba init scripts:

nmbd
smbd
samba
samba-ad-dc

There is also the winbind init script, but this will only be installed 
if you are using winbind i.e. on a domain member

The nmbd & smbd init scripts are there to start and stop the individual 
deamons, the samba init script runs both of the nmbd & smbd init 
scripts, samba-ad-dc starts/stops the samba deamon, which will then 
start the smbd deamon.

If you are running Samba4 as an AD DC, you should never start the nmbd 
deamon, you should also never start smbd manually.

What you are trying to do is, in my opinion, the wrong way to go about 
fixing the problem, you really should try to ascertain why you are 
losing sync.

Rowland

>
> Running the same script manually from a root shell works however fine.
>
> The system is Debian Jessie using samba 4.1.17-Debian. I start the 
> script using the following entry in root's crontab:
>
> */5 * * * * /root/samba-restart.sh
>
> Any ideas what I'm doing wrong?
>
> Thanks for your help,
>  - lars.
>




More information about the samba mailing list