45 lines
1.2 KiB
Bash
Executable file
45 lines
1.2 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
# check that domain controller is alive
|
|
smbclient -N -L pdc > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error in netlogon sync, could not open connection to DC"
|
|
exit 1
|
|
fi
|
|
|
|
# get target directory
|
|
TARGETDIR="`echo '' | testparm --section-name netlogon 2> /dev/null | \
|
|
sed -n 's/^[ \t]*path[ ]*=[ ]*\(.*\)$/\1/p'`"
|
|
if [ "${TARGETDIR}" = "" ]; then
|
|
echo "Error in netlogon sync, failed to determine netlogon directory"
|
|
exit 1
|
|
fi
|
|
if [ ! -d "${TARGETDIR}" ]; then
|
|
echo "Error in netlogon sync, netlogon directory does not exist"
|
|
exit 1
|
|
fi
|
|
|
|
# create temporary working directory
|
|
TMPDIR=/tmp/netlogon.$$
|
|
if [ -d ${TMPDIR} ]; then
|
|
echo "Temporary directory ${TMPDIR} already exists."
|
|
exit 1
|
|
fi
|
|
mkdir ${TMPDIR}
|
|
|
|
# copy netlogon data from domain controller
|
|
( smbclient //pdc/netlogon -N -Tqc - | (cd ${TMPDIR} ; tar xf - ) ) \
|
|
>> /var/log/samba/log.sync-netlogon 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error in netlogon sync see /var/log/samba/log.sync-netlogon"
|
|
exit 1
|
|
fi
|
|
|
|
rsync -a --delete ${TMPDIR}/ ${TARGETDIR}/
|
|
if [ $? -ne 0 ]; then
|
|
echo "Error in netlogon sync, rsync failed"
|
|
exit 1
|
|
fi
|
|
chcon -Rh -u system_u -t samba_share_t ${TARGETDIR}/
|
|
|
|
rm -rf ${TMPDIR}
|