1
Files
qnap-rc-scripts/timemachine.sh
2016-09-04 22:20:40 +03:00

80 lines
2.4 KiB
Bash
Executable File

#!/bin/sh
AFP_TIMEMACHINE_SHARE=`/sbin/getcfg "TimeMachine" "Display Name" -d "TMBackup"`
TM_CONF_FILE=/etc/config/timemachine.conf
TM_VOL_UUID_CONF=/usr/local/etc/netatalk/afp_voluuid.conf
AVAHI_CONF_DIR=/etc/avahi/services
AVAHI_TM_CONF=${AVAHI_CONF_DIR}/timemachine.service
AVAHI_DAEMON=/usr/sbin/avahi-daemon
#/usr/bin/readlink /share/${AFP_TIMEMACHINE_SHARE} 2>/dev/null 1>/dev/null
#if [ "$?" != "0" ]; then
# echo "TimeMachine share \"${AFP_TIMEMACHINE_SHARE}\" is not exist !!"
# exit 0
#fi
create_tm_conf()
{
BOND=`/sbin/getcfg "Network" "BONDING Support" -d "FALSE"`
if [ "x$BOND" = "xTRUE" ]; then
MAC_ADDR=`/bin/cat /sys/class/net/bond0/address`
else
MAC_ADDR=`/bin/cat /sys/class/net/eth0/address`
fi
VOL_MNT=`/usr/bin/readlink /share/${AFP_TIMEMACHINE_SHARE} | /bin/cut -d '/' -f 1`
VOL_DEV1=`/bin/mount | /bin/grep "${VOL_MNT} " | /bin/cut -d ' ' -f 1`
VOL_DEV=`/bin/echo $VOL_DEV1 | /bin/cut -d ' ' -f 1`
VOL_UUID=`/usr/local/sbin/blkid | /bin/grep "${VOL_DEV}" | /bin/cut -d\" -f2`
SERVER_NAME=`/sbin/getcfg System "Server Name" -d "NAS"`
echo "${SERVER_NAME}(TimeMachine)" > ${TM_CONF_FILE}
echo "_adisk._tcp." >> ${TM_CONF_FILE}
echo "9" >> ${TM_CONF_FILE}
echo "sys=waMA=${MAC_ADDR}" >> ${TM_CONF_FILE}
echo "dk0=adVF=0x83,adVN=${AFP_TIMEMACHINE_SHARE},adVU=${VOL_UUID}" >> ${TM_CONF_FILE}
echo "${AFP_TIMEMACHINE_SHARE} ${VOL_UUID}" > $TM_VOL_UUID_CONF
/bin/touch /share/${AFP_TIMEMACHINE_SHARE}/.com.apple.timemachine.supported
cat > ${AVAHI_TM_CONF} <<__EOF__
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
<name replace-wildcards="yes">%h(TimeMachine)</name>
<service>
<type>_adisk._tcp.</type>
<port>9</port>
<txt-record>sys=waMA=${MAC_ADDR}</txt-record>
<txt-record>dk0=adVF=0x83,adVN=${AFP_TIMEMACHINE_SHARE},adVU=${VOL_UUID}</txt-record>
</service>
</service-group>
__EOF__
}
case "$1" in
start)
/sbin/tm_quota_check
create_tm_conf
${AVAHI_DAEMON} --reload > /dev/null 2>&1
;;
stop)
if [ -f ${TM_CONF_FILE} ]; then
/bin/rm ${TM_CONF_FILE}
fi
/bin/kill -INT `/bin/cat /var/lock/bonjour.timemachine 2>/dev/null` 2>/dev/null 1>/dev/null
/bin/rm -f /var/lock/bonjour.timemachine 2>/dev/null 1>/dev/null
/bin/rm -f ${AVAHI_TM_CONF}
${AVAHI_DAEMON} --reload > /dev/null 2>&1
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0