Nieuws:

We zijn er weer.

Na lange tijd van afwezigheid zijn we er weer  :laugh:
We hebben alle wachtwoorden gereset, je oude wachtwoord werkt niet meer.Je moet via het "wachtwoord vergeten"-linkje je wachtwoord resetten. Je krijgt hiervoor een mailtje op het adres dat je bij ons geregistreerd hebt.

De komende tijd zijn we nog druk bezig om de rest van de site op te bouwen, dus het kan zijn dat sommige onderdelen (tijdelijk) niet werken.

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: Scriptje voor het maken van een backup / image op een externe netwerkschijf  (gelezen 1293 keer)

Offline nouwsfam

  • Lid
  • Steunpunt: Nee
Hallo andere nerds,

Misschien hebben jullie wat aan het scriptje wat nu volgt. Het doel is een image te maken van een share of map op een externe netwerkschijf. Hiervoor heb ik de LaCie NetworkSpace2 aangeschaft (1TB). De server is uiteraard Ubuntu. De clients zijn window boxes. Met het scriptje maak ik een image van een deel van de server op de netwerkschijf.

Een interessante feature van de LaCie schijf is de "deep sleep mode". Die is met een tijdsklok in te stellen. Met de wake on lan functie kan je de schijf weer opstarten. Deze functie heb ik in het scriptje geintegreerd: etherwake. Waar ik nog niet achter ben, en wat jullie misschien weten, is hoe ik de netwerkschijf mbv een unix progje in de slaapstand zet. Suggesties welkom! Het scriptje draait iedere nacht (cron).

Alle tips voor verbeteringen (ik ben maar een amateur) welkom!

#!/bin/bash
#
# /etc/imagescript
#
# Wakeup external NetDrive using etherwake
# Mount Share
# update image of backupdir using rsyn
# Umount Share
#
#######################################

PATH=/usr/local/bin:/usr/bin:/bin
HOST="networkspace2"
TOTALTIME=0
SLEEPTIME=10
WAITTIME=120
EXTRASLEEPTIME=60
SOURCEDIR="/home/sourcedir"
DESTINATIONDIR="/home/mountdir"
WAKEUPMAC="00:d0:4b:8a:9c:46"
SHARE="//networkspace2/OpenShare"
MOUNT="/home/mountdir"

echo
echo "Starting rsync script backing up $SOURCEDIR to NetDrive $DESTINATIONDIR"
echo `date`
echo "Checking if host $HOST is up!"
if ping -c1 -W1 $HOST > /dev/null; then
echo "Host $HOST already UP!"
else
echo "Waiting for $HOST to wake up ..."
etherwake $WAKEUPMAC

while ! ping -c1 -W1 $HOST > /dev/null; do
sleep $SLEEPTIME
let TOTALTIME+=$SLEEPTIME
echo $SLEEPTIME $TOTALTIME $WAITTIME
if [ $TOTALTIME -gt $WAITTIME ]; then
echo "Wakeup failed"
echo "Script aborted"
exit 1
fi
done
echo "Wakeup succeeded after $TOTALTIME seconds"
echo "Waiting extra $EXTRASLEEPTIME seconds for NetDrive to get ready ..."
sleep $EXTRASLEEPTIME
fi

mount | grep "on $MOUNT type" > /dev/null
if [ $? -eq 0 ]; then
echo "$MOUNT is already mounted"
else
echo "$MOUNT is not mounted"
echo "Mounting $MOUNT ..."
smbmount $SHARE $MOUNT -o credentials=/etc/.credentials
mount | grep "on $MOUNT type" > /dev/null
if [ $? -ne 0 ]; then
echo "Mounting $MOUNT failed"
echo "Script aborted"
exit 1
fi
fi
echo "rsync from $SOURCEDIR to $DESTINATIONDIR ..."
rsync -az --delete --force $SOURCEDIR $DESTINATIONDIR
if [ $? -eq 0 ]; then
echo "Rsync done"
else
echo "Errors executing rsync"
fi
echo "Unmounting $MOUNT ..."
smbumount $MOUNT
echo "Unmounting done"
echo "Script ends"
echo `date`
exit 0