• The forum software that supports hummy.tv has been upgraded to XenForo 2.3!

    Please bear with us as we continue to tweak things, and feel free to post any questions, issues or suggestions in the upgrade thread.

Auto mounting Samba shares on Humax

moppet

Member
I have two Humax (HDs not HDRs) boxes and have for a while been mounting Samba shares so I can access or copy files between the two. I have found though that if box A is switched off then it causes a problem on box B when trying to open the Media menu (I mount my shares as another drive called "other" i.e. mounted to /media/other), the Media screen hangs as it is trying to to read volume information from a now disconnected source. My solution to this is the following script which loads on boot from /mod/etc/init.d, I thought I'd post it incase anyone else could use (or probably improve) it. Might also be useful for connecting to a PC which may or may not be turned on:
Code:
#!/bin/sh
#pings other box every 5 minutes, if responds mounts share (retries every 5 mins if fails)
#once connected tests other box is still on by pinging every 5 minutes, if no ping unmounts
#and returns to pinging to reconnect

exec >/tmp/connectShare.log 2>&1    #output errors to this file

mountpoint='/media/other'
#share='//192.168.1.xx/Media' #Box A
share='//192.168.1.xx/Media' #Box B
options='user=guest,password=guest'
ip=${share:2:12}        #extract IP only from share address - or replace with actual IP/hostname

case "$1" in
start)
  sleep 2    #allow time for network to initialise
  while [ 1 ]; do    #infinite loop
    count="0"
    while [ "$count" == "0" ]; do    #keep looping until other box pings
      temp=$(ping -c 2 $ip | grep 'received')  #ping other box, keep only results line of output
      count=${temp:23:1}        #extract value of received packets (will be 0, 1 or 2)
      if [ $count == "0" ]
      then
        echo "no response from " $ip "
        sleep 300
      fi
    done
    mkdir -p $mountpoint
    result="1"
    while [ $result != "0" ]; do
      mount -t cifs $share $mountpoint -o $options
      result=$?
      echo "mount result:" $result
      sleep 180
    done
    count='1'
    while [ "$count" != "0" ]; do    #keep looping while other box pings
      sleep 300
      temp=$(ping -c 2 $ip | grep 'received')  #ping other box, keep only results line of output
      count=${temp:23:1}        #extract value of received packets (will be 0, 1 or 2)
      if [ $count == "0" ]
      then
        echo $ip " stopped responding"
      fi
    done
    result="1"
    while [ $result != "0" ]; do  #unmount, if fails wait 60 sec and retry
      umount "$mountpoint"
      result=$?
      echo "umount result:" $result
      sleep 60
    done
  rmdir "$mountpoint"
  done
  ;;
stop)
  umount "$mountpoint"
  rmdir "$mountpoint"
  ;;
*)
  exit 1
  ;;
esac
 
Back
Top