PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Datensicherung per Shellskript



Franzmann
08.11.07, 13:07
Hey,
benutze Linux (SLES 10.2) und habe dieses Shell-Skript im Netz gefunden und es erfüllt auch genau meine Anforderungen.


########## Configuration ############
BACKUPFILES="/etc/ /home/ /usr/ /var/" # zu sichernde Verzeichnisse
REMOTE="192.168.1.100" # Rechner auf den gesichert wird
REMOTEUSER="backup" # User, auf den via ssh ohne Passwort zugegriffen wird
REMOTEDIR="/home/backup/" # Backup-Verzeichnis auf Remote-Rechner
AGE="-1" # -1 = Nicht aelter als 24 Stunden, -2 = 48 ...
MAILTO="./backup.mail" # Mailadressen, die im Error-Fall Mail erhalten
SUBJECT="Backup_fehlgeschlagen!" # im Subject kein Leerzeichen!
ERROR="./error.txt" # Text, der im Error-Fall versandt wird

DATE=`/bin/date +%Y%m%d` # Datum im Format YearMonthDay
HOST=`/bin/hostname`

TAR=/bin/tar
FIND=/usr/bin/find
TAROPTIONS="c"
SSH=/usr/bin/ssh
CAT=/bin/cat
GZIP=/usr/bin/gzip
MAIL=/usr/bin/mail

REMOTEFILE="incremental_$HOST".$DATE."tgz" # Dateiname der Backup-Datei
CHECK_REMOTE=`ping -c1 $REMOTE | grep packet | awk '{print $4}'` # gibt 1 (online) oder 0 (offline) zurueck
#####################################

if [ $CHECK_REMOTE == 1 ]; then
$FIND $BACKUPFILES -mtime $AGE -type f -exec $TAR $TAROPTIONS {} \; | $GZIP | $SSH $REMOTEUSER\\@$REMOTE "cat > $REMOTEDIR$REMOTEFILE"
else
$CAT $MAILTO | while read line
do
$MAIL $line -s $SUBJECT < $ERROR
done
fi

Wenn ich das Skript nun ausführe bekomme ich folgende Meldung:


/bin/tar: Removing leading `/' from member names
Password:

Ok, den ersten Teil kann ich vernachlässigen.
Aber warum werde ich nach einem Password gefragt ?
Habe alles auf den Quell-/ Zielrechnern in der ./ssh Konfig editiert.
Wenn ich den scp- befehl oder ssh -v manuel eingebe,
funktioniert das auch problemlos, also ohne Passwortabfrage.
Aber nicht per Skript...
Hat jemand ne zündende Idee ?

asi_dkn
08.11.07, 13:59
du musst deinen key auf der zielmaschine für den entsprechenden user im home unter .ssh/authorized_keys speichern, dann sollte das klappen.

Franzmann
08.11.07, 14:44
du musst deinen key auf der zielmaschine für den entsprechenden user im home unter .ssh/authorized_keys speichern, dann sollte das klappen.
Hab ich. Key und dazugehöriger User sind eingetragen...

marce
09.11.07, 06:32
Lass Dir vom Script mal per echo den exakten Befehl ausgeben und copy-paste den dann mal in der Konsole. Kommt dann auch die Aufforderung für's PW?

Führst Du den Befehl mit dem gleichen User aus, der auch das Backup ausführt?

Schau mal auf der Zielmaschine in den Logs nach - da sollte vom SSHd eigentlich eine verwertbare Ausgabe kommen...

Franzmann
09.11.07, 07:41
Hey @ all...
habs aus Zeitgründen leider nun anders machen müssen:


########## Configuration ############

BACKUPFILES="/var /usr /home /bin /dev /etc /lib /opt /sbin /srv /boot"
# zu sichernde Verzeichnisse
REMOTE="192.168.1.100" # Rechner auf den gesichert wird
REMOTEDIR="/root/backup/" # Backup-Verzeichnis auf Remote-Rechner

DATE=`/bin/date +%Y%m%d` # Datum im Format YearMonthDay
HOST=`/bin/hostname`

#####################################

tar -cvzf /root/backup_$HOST.$DATE.tgz $BACKUPFILES
scp /root/backup_$HOST.$DATE.tgz $REMOTE:/root/backup
rm /root/backup_$HOST.$DATE.tgz
fi