Backupscript

Nonverbal

New Member
Hallo,

Ich habe folgendes Backuptscript, mein problem ist nur die Dateien müssen auf einen bestimmten ordner im ftp server geuploaded werden. Wie kann ich das hinkriegen?

Code:
#!/bin/bash
#########################################################################
#                                                                       #
# Backup von Confixx erstellen                                          #
#                                                                       #
#########################################################################
# Emailadresse für den Absender und Empfänger angeben
email_absender="backup@localserver.de"
email_empfang="youremail@yourdomain.tld"

rm /backup/datum.txt

vtag=$(date +%u)
rm /backup/dump_$vtag.tgz*
/root/confixx/backup.pl --dump /backup/dump_$vtag.tgz 2>/dev/null
  if [ "$?" != 0 ]
  then
    backup_msg="Fehler bei der Sicherung"
  else
    backup_msg="Sicherung erfolgreich"
  fi
if [ "$vtag" == "1" ]
then

# Sichern des Backups auf einem FTP-Server im Ordner /
# dei Zugangsdaten für den FTP-Account liegen in der Datei ftp.cfg:
# host 192.168.1.1
# user test
# password test123456
  /usr/bin/ncftpput -f /backup/ftp.cfg / /backup/dump_$vtag.tgz* 2>/dev/null
  if [ "$?" != 0 ]
  then
    ftp_msg="Fehler beim FTP-Transfer"
  else
    ftp_msg="FTP-Transfer erfolgreich"
  fi
fi
#########################################################################
#                                                                       #
# Mail mit Statusmeldung versenden                                      #
#                                                                       #
#########################################################################
text="Backup beendet am `date +"%d.%m.%Y,%H:%M"`"
echo $text > /backup/datum.txt
echo $backup_msg >> /backup/datum.txt
echo $ftp_msg >> /backup/datum.txt
# Versendet eine Mail mit dem Absender backup@localserver.de nach youremail@yourdomain.tld
mail -s"Backup-Info" -r $email_absender $email_empfang < /backup/datum.txt
#########################################################################
#                                                                       #
# folgenden Eintrag in die Datei crontab einfuegen:                     #
#                                                                       #
# crontab -e (einfuegen mit i: speichern mit :wq)                       #
# 00 3  * * * /backup/backup.sh                                         #
# das Backup wird jede Nacht um 3 Uhr gestartet                         #
#########################################################################

und die ftp.cfg sieht wie folgt aus:

Code:
host 192.168.1.1
user test
password test123456
 
Hallo,

Sowas kann man am besten in der Manual von ncftpput nachlesen. Dazu gibst du auf deinem Server einfach:
Code:
man ncftpput
ein.
Dann siehst du zum Beispiel, neben den Erklärungen zu allen Optionen auch den Standartaufbau eines Aufrufes, der sieht so aus:
Code:
ncftpput [options] remote-host remote-directory local-files...

Wie du siehst kannst du hinter remote-host noch das Remote-Dir angeben, also das "bestimmte" Verzeichnis wo das alles hinsoll :)

Bauen wir nun deinen Aufruf neu:

Code:
/usr/bin/ncftpput -f /backup/ftp.cfg /bestimmtes/verzeichnis_auf_dem_ftp /backup/dump_$vtag.tgz* 2>/dev/null

Kleiner Tipp, du kannst natürlich auch für jeden Tag ein neues Verzeichnis erstellen auf dem Server:

Code:
/usr/bin/ncftpput -f /backup/ftp.cfg /backups/`/bin/date +%Y/%m/%d`/confixx /backup/dump_$vtag.tgz* 2>/dev/null

So würdest du zum Beispiel diese Verzeichnisstrucktur erhalten:

/backups/2008/12/01/confixx
/backups/2008/11/30/confixx
/backups/2008/11/29/confixx
usw.
 
Hallo,
ersmal danke für deine Antwort !

ich habe es eingefügt funktioniert aber leider nicht, mein script sieht jetzt wie folgt aus:
Code:
#!/bin/bash
#########################################################################
#                                                                       #
# Backup von Confixx erstellen                                          #
#                                                                       #
#########################################################################
# Emailadresse für den Absender und Empfänger angeben
email_absender="backup@localserver.de"
email_empfang="youremail@yourdomain.tld"

rm /backup/datum.txt

vtag=$(date +%u)
rm /backup/dump_$vtag.tgz*
/root/confixx/backup.pl --dump /backup/dump_$vtag.tgz 2>/dev/null
  if [ "$?" != 0 ]
  then
    backup_msg="Fehler bei der Sicherung"
  else
    backup_msg="Sicherung erfolgreich"
  fi
if [ "$vtag" == "1" ]
then

# Sichern des Backups auf einem FTP-Server im Ordner /
# dei Zugangsdaten für den FTP-Account liegen in der Datei ftp.cfg:
# host 192.168.1.1
# user test
# password test123456
 
	
permalink
Hallo,

Sowas kann man am besten in der Manual von ncftpput nachlesen. Dazu gibst du auf deinem Server einfach:
Code:

man ncftpput

ein.
Dann siehst du zum Beispiel, neben den Erklärungen zu allen Optionen auch den Standartaufbau eines Aufrufes, der sieht so aus:
Code:

ncftpput [options] remote-host remote-directory local-files...

Wie du siehst kannst du hinter remote-host noch das Remote-Dir angeben, also das "bestimmte" Verzeichnis wo das alles hinsoll

Bauen wir nun deinen Aufruf neu:

Code:

/usr/bin/ncftpput -f /backup/ftp.cfg /Festplatte /backup/dump_$vtag.tgz* 2>/dev/null 

Kleiner Tipp, du kannst natürlich auch für jeden Tag ein neues Verzeichnis erstellen auf dem Server:

Code:

/usr/bin/ncftpput -f /backup/ftp.cfg /backups/`/bin/date +%Y/%m/%d`/confixx /backup/dump_$vtag.tgz* 2>/dev/null

So würdest du zum Beispiel diese Verzeichnisstrucktur erhalten:

/backups/2008/12/01/confixx
/backups/2008/11/30/confixx
/backups/2008/11/29/confixx
usw.
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Wong this Post!
Mit Zitat antworten

  then
    ftp_msg="Fehler beim FTP-Transfer"
  else
    ftp_msg="FTP-Transfer erfolgreich"
  fi
fi
#########################################################################
#                                                                       #
# Mail mit Statusmeldung versenden                                      #
#                                                                       #
#########################################################################
text="Backup beendet am `date +"%d.%m.%Y,%H:%M"`"
echo $text > /backup/datum.txt
echo $backup_msg >> /backup/datum.txt
echo $ftp_msg >> /backup/datum.txt
# Versendet eine Mail mit dem Absender backup@localserver.de nach youremail@yourdomain.tld
mail -s"Backup-Info" -r $email_absender $email_empfang < /backup/datum.txt
#########################################################################
#                                                                       #
# folgenden Eintrag in die Datei crontab einfuegen:                     #
#                                                                       #
# crontab -e (einfuegen mit i: speichern mit :wq)                       #
# 00 3  * * * /backup/backup.sh                                         #
# das Backup wird jede Nacht um 3 Uhr gestartet                         #
#########################################################################
weil das Verzeichnis auf dem FTP Festplatte heißt, die ftp.cfg brauchte ich doch nicht verändern oder?
 
Code:
#!/bin/bash
#########################################################################
#                                                                       #
# Backup von Confixx erstellen                                          #
#                                                                       #
#########################################################################
# Emailadresse fü Absender und Empfäer angeben
email_absender="xxx@xxx.de"
email_empfang="xxx@xxxde"

rm /home/backup/datum.txt

vtag=$(date +%u)
rm /root/backup/dump_$vtag.tgz*
/root/confixx/backup.pl --dump /home/backup/dump_$vtag.tgz 2>/dev/null
  if [ "$?" != 0 ]
  then
    backup_msg="Fehler bei der Sicherung"
  else
    backup_msg="Sicherung erfolgreich"
  fi
if [ "$vtag" == "1" ]
then

# Sichern des Backups auf einem FTP-Server im Ordner /
# die Zugangsdaten fü FTP-Account liegen in der Datei ftp.cfg:
# host ftp://xxx@xxx.net/Backup
# user xxx
# password xxx
  /usr/bin/ncftpput -f /backup/ftp.cfg /Festplatte /backup/dump_$vtag.tgz* 2>/dev/null
  if [ "$?" != 0 ]
  then
    ftp_msg="Fehler beim FTP-Transfer"
  else
    ftp_msg="FTP-Transfer erfolgreich"
  fi
fi
#########################################################################
#                                                                       #
# Mail mit Statusmeldung versenden                                      #
#                                                                       #
#########################################################################
text="Backup beendet am `date +"%d.%m.%Y,%H:%M"`"
echo $text > /root/backup/datum.txt
echo $backup_msg >> /root/backup/datum.txt
echo $ftp_msg >> /root/backup/datum.txt
# Versendet eine Mail mit dem Absender backup@localserver.de nach youremail@yourdomain.tld
mail -s"Backup-Info" -r $email_absender $email_empfang < /root/backup/datum.txt
#########################################################################
#                                                                       #
# folgenden Eintrag in die Datei crontab einfuegen:                     #
#                                                                       #
# crontab -e (einfuegen mit i: speichern mit :wq)                       #
# 00 3  * * * /backup/backup.sh                                         #
# das Backup wird jede Nacht um 3 Uhr gestartet                         #
#########################################################################
 
Was passiert denn wenn du:
Code:
/usr/bin/ncftpput -f /backup/ftp.cfg /Festplatte /backup/dump_$vtag.tgz*
von Hand ausführst? (das $vtag natürlich ersetzten). Ausserdem ist das * am Ende ein bisschen überflüssig, oder?

Edit: Kann auch sein, dass ncftpput den Host in der CFG nicht mag, also vielleicht eher so:
Code:
/usr/bin/ncftpput -f /backup/ftp.cfg 192.168.1.1 /Festplatte /backup/dump_$vtag.tgz*
Und dann natürlich den Host aus der ftp.cfg löschen.
 
Last edited by a moderator:
Hi,

also wenn ich folgenden Befehl manuel ausführe geht es,
Code:
/usr/bin/ncftpput -f ftp.cfg /Festplatte dump_name.tgz*

aber mit dieser $vtag variable geht es irgendwie nicht mehr
 
Back
Top