dansch
Aktives Mitglied
- Dabei seit
- 24.09.2007
- Beiträge
- 422
- Reaktionspunkte
- 12
pidde sehr, anpassen nach belieben:
Der passende Crontab eintrag sieht folgendermaßen aus:
Einfach mittels 'crontab -e' im Terminal eingeben und den Pfad anpassen.
Update: Das Script funktioniert nun auch für mehrere Shares auf einem Server.
Code:
#!/bin/bash
vpnmount="0" #mount if vpn is active (1=yes 0=no)
ip="192.168.1.1" #ipaddress of server
mounts="share1 share2 share3" #network shares on ipaddress
user="me" #plaintext name of the user who wants to connect to ipaddress
password="secret" #plaintext password of user
########## DO NOT TOUCH ANYTHING BEHIND ################
packets=`/sbin/ping -c1 -t2 $ip 2> /dev/null | grep "packets"`
packetsRecv=`echo $packets | /usr/bin/cut -d"," -f2 | /usr/bin/awk {'print $1'}`
packetsSend=`echo $packets | /usr/bin/cut -d"," -f1 | /usr/bin/awk {'print $1'}`
tap=`/sbin/ifconfig tap0 2> /dev/null | /usr/bin/wc -l | /usr/bin/sed 's/ //g'`
ppp0=`/sbin/ifconfig ppp0 2> /dev/null | /usr/bin/wc -l | /usr/bin/sed 's/ //g'`
if [[ $vpnmount = 0 ]]; then
if [[ "$tap" > 0 ]]; then
exit
fi
if [[ "$ppp0" > 0 ]]; then
exit
fi
fi
if [[ "$packetsRecv" != "$packetsSend" ]]; then
#echo "Remote Host not reachable!"
exit
fi
for mount in $mounts; do
mountstate=`/sbin/mount | /usr/bin/grep '/Volumes/$mount' | /usr/bin/wc -l | /usr/bin/sed 's/ //g'`
if [[ "$mountstate" < 1 ]]; then
if [[ ! -d /Volumes/$mount ]]; then
/bin/mkdir /Volumes/$mount
fi
result=`/sbin/mount_afp afp://$user:$password@$ip/$mount /Volumes/$mount 2> /dev/null`
fi
done
Der passende Crontab eintrag sieht folgendermaßen aus:
Code:
*/1 * * * * /Users/<username>/<pathtoscript>/<scriptname>
Einfach mittels 'crontab -e' im Terminal eingeben und den Pfad anpassen.
Update: Das Script funktioniert nun auch für mehrere Shares auf einem Server.
Zuletzt bearbeitet: