Dit maakte het script in zoverre onbruikbaar dat de "umount" en de "backup-leeftijd " evaluaties niet werkten, en dus niets deden. In deze versie werken ze wel.
Welliswaar nog niet zo zoals ik eigenlijk wil, maar het voldoet in eerste instantie zo wel.
Ik wil eigenlijk vooral een betere oplossing voor de umount eval. Dus wanneer iemand hier een mooie oplossing heeft (eentje die lijkt op wat ik aan het begin van het script beschrijf denk ik), dan houd ik me aanbevolen!
Ook ander commentaar is natuurlijk welkom!
CODE
#!/bin/bash
# Backup script voor het maken van een backup van een bepaalde map
# naar een Windows share
# Door: Hendrik-Jan Heins ( hjh@NOSPAM.passys.nl )
# Versie 0.2 3-5-2004
# Dit script is vrijgegeven onder de voorwaarden van de GNU/GPL
# Mogelijke/ gewenste verbeteringen:
# De evaluatie van de backup-bestandsnaam moet beter.
# ALLE bestanden ouder dan 5 weken moeten worden weggegooid.
# De huidige oplossing werkt, maar is foutgevoelig.
# De umount-eval werkt niet geheel zoals gewenst.
# liefst een eval op true of false daar, en op basis daarvan een umount commando
# misschien als ik hier beter in wordt...
echo off
# Variabelen voor samba mount definitie
Samba=//<pcnaam>/<map>
Mountpunt=/mnt/<map_naar_keuze>
# Map die te back-uppen is
Backup_map=<map waarvan je een backup wilt>
# Variabele voor Windowsnaam
Naam=<gebruikersnaam>
# Variabele voor Windowswachtwoord
Wachtwoord=<wachtwoord>
# Vanaf hier is alles geautomatiseerd
# Het commando "smbmount"/"smbumount" moet mogelijk vervangen worden
# door "mount"/"umount"
# Datum aan backupbestand
Backupnaam=backup`date +%Y%W`.zip
# De naam van het bestand dat 5 weken oud is
Naam_oud=backup$((`date +%Y%W`-5)).zip
# Variabele voor bestandsnaam (grep op datum? -> ja dus!)
Zipfile=/tmp/$Backupnaam
#
#
# het echte script
zip -r9 $Zipfile $Backup_map
sleep 1
smbmount $Samba $Mountpunt -o username=$Naam,password=$Wachtwoord,sync
cp -dpR $Zipfile $Mountpunt
# Voor het verwijderen van backup bestanden die ouder zijn dan 5 weken
Verwijderen ()
{
Zipfile1=`ls $Mountpunt | grep $Naam_oud`
if [ $Zipfile1 = $Naam_oud ]
then rm -f "$Mountpunt/$Zipfile1"
else echo "niets te verwijderen"
fi
}
Verwijderen
sleep 1
ontkoppelen ()
{
smbumount $Mountpunt
# controle
Mount=`cat /proc/mounts | grep $Mountpunt | gawk '{print $2}'`
if [ $Mount = $Mountpunt ]
then smbumount $Mountpunt
else echo "afgekoppeld"
fi
}
ontkoppelen
rm -f $Zipfile
exit 0
Hendrik-Jan