PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Prüfen ob Verzeichnis da ist bzw. richtig gemountet wurde - Bakcup



mslin
14.07.09, 11:11
Hallo,

bin gerade dabei ein script (sh) zu schreiben - naja bin am versuchen, mein erstes mal - das mir wenn ein anderer Rechner vorhanden ist ein Backup macht.

Später soll es als Cronjob ausgeführt werden.

so siehst jetzt mal aus - geht aber nicht, hab auch schon viel versucht.



#!/bin/bash

# Pfade ------------------------------------
PFAD="/root/vpn-script"
NAME="home"
END="tar"
ZIEL="/mnt/WHS2003/NWS-Linux_Tagessicherungen"

# Mounten und prüfen------------------------
mount.cifs //192.168.1.100/benutzer/root /mnt/W2003 -o user=root,password=meinpasswort

if [ $(find $ZIEL ) ];
then
echo "ok"
OK="1"
fi

if [ $OK = 1 ];
then
# lösche altes Backup
rm $ZIEL/$NAME.*
# erstelle neues Backup
tar -cvzf $ZIEL/$NAME.$END $PFAD
fi
#

umount.cifs /mnt/WHS2003/


Könntet Ihr mir da weiterhelfen?

Er soll halt prüfen ob das Verzeichnis überhaupt exestiert oder ob das mounten funktioniert hat - wenn nicht, braucht er ja auch keine Sicherung machen.

Danke vor ab und viele Grüße
mslin

mslin
14.07.09, 11:43
hat sich erledigt.

Trotzdem danke...

Gruß
mslin

bla!zilla
14.07.09, 11:53
Hi. Vielleicht kannst du deine Lösung hier posten damit auch andere Benutzer etwas davon haben. :)

p3shay
14.07.09, 13:01
Falls es anderen hilft, hier mal eine Antwort von mir.


mount | grep "192.168.1.100/benutzer/root" && {
# lösche altes Backup
rm $ZIEL/$NAME.*
# erstelle neues Backup
tar -cvzf $ZIEL/$NAME.$END $PFAD
}

Außerdem mountest du einmal
/mnt/W2003
hast aber als ZIEL=
/mnt/WHS2003/NWS-Linux_Tagessicherungen

mslin
14.07.09, 13:58
Hallo,

habe jetzt einfach mal weiter selbst daran rumgebastelt, wollte sehen ob ichg es niht doch hinbekomme.

NAJA... also funzen tuts schon mal, aber no ned richtig.

hier mal der Code:


#!/bin/bash

# Pfade und Einstellungen ------------------
USER="root"
PW="daspasswort"
ZIEL="/mnt/W2003/Sicherungen/Tagessicherungen"
MAIL="root" # Fehlermeldungen werden per Mail an root gesendet


# Media-Server aufwecken damit die Sicherung übertragen werden kann
wol 00:13:8F:D6:xx:xx # weil in der Nacht der WHS norm.weise nicht läuft
sleep 150

# Mounten und prüfen------------------------
mount.cifs //192.168.1.2/benutzer/root /mnt/W2003 -o user=$USER,password=$PW

if ! [ -d $ZIEL ]; then

echo "$(date "+%d.%m.%Y") $(date "+%H:%M") FEHLER - Mount von $ZIEL hat nicht geklappt, Ziel nicht erreichbar, Backup wurde abgebrochen" >>/var/log/Backup_Tagessicherungen
echo | mail -s "Backup-Fehler NWS-Linux_Tagessicherung $(date "+%d.%m.%Y"), $(date "+%H:%M")" $MAIL
exit
fi

# Backup ausführen ------------------------
# lösche altes Backup
rm $ZIEL/home.*

# erstelle neues Backup
tar cvzf $ZIEL/home.tar /home

# umount ausführen
umount.cifs /mnt/W2003/
exit


Mich würde jetzt aber interessieren, wie Ihr mein erstes eigenes script findet?

Was würdet Ihr anders machen ?

Das Ziel - wo die Sicherung hin soll ist ein Windows Home Server - also eine Windows Freigabe. Das nur so als Info.

Viele Grüße
mslin

oziris
14.07.09, 16:30
Ich würde den Rückgabewert von mount noch prüfen und ein "while [[ -e /mnt/W2003/datei_die_immer_da_ist ]] ; do sleep 1; done" danach einbauen, da es bei mir mit CIFS schon vorgekommen ist, dass einzelne Verzeichnisse erst verzögert erscheinen.