Autor Thema: Backup Script  (Gelesen 1811 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Darky

  • Foren-Neuling
  • *
  • Beiträge: 2
  • I Love Linux-beginnerforum.de
  • Betriebssystem: Debian
  • Grafische Oberfläche: terminal
  • Hardware: vServer
Backup Script
« am: 11.Oktober 2011, 18:44:47 »
Hi,
ich habe mir mal ersucht ein "Backupscrip" zu erstellen, jedoch l?uft es nicht ganz so wie ich will^^
Ich bekomme immer volgenden Fehler/Warnung:
Zitat
./backup.sh: line 2: [: missing `]'

und mein Script:
#!/bin/bash
if [ -r world_backup.tar.gz];
        then rm  world_backup.tar.gz
        else
        tar cvzf world_backup.tar.gz  world/
        cp -rv world_backup.tar.gz /var/www/down
fi
echo Fertig!


Und wie kann ich noch ne Zeitsteuerung einbauen? Damit es immer einmal in der Woche um ne gewisse Zeit das Backup macht?

Das ist mein erstes Script, also nicht zu b?se^^.

Danke euch schon mal

Offline Linuxtal

  • Administrator
  • Foren-König
  • *******
  • Beiträge: 943
  • Geschlecht: Männlich
  • Linux Extrem Benutzer
    • Home of Linuxtal
  • Betriebssystem: Arch Linux
  • Grafische Oberfläche: Gnome 3 und Mate gemischt
  • Hardware: Packard Bell - Intel i920 - 16 GB RAM - NVIDIA GT250 Dualscreen
Re: Backup Script
« Antwort #1 am: 11.Oktober 2011, 20:05:38 »
Hallo,

ist die Syntax denn richtig?

Es steht doch da ?]?missing

das ] steht direkt an dem tgz File, ist das so richtig?

Ginge noch mittels rsync und ?ber crontab.

Schaue mal hier: http://www.linuxtal.de/page/linux.html  und dort in dem PDF Ubuntu Tipps und Tricks.

m.f.g.
Carl-Heinz
« Letzte Änderung: 12.Oktober 2011, 19:09:36 von Linuxtal »
## Gott sei dank,ich bin weg vom Fenster ##

Offline Darky

  • Foren-Neuling
  • *
  • Beiträge: 2
  • I Love Linux-beginnerforum.de
  • Betriebssystem: Debian
  • Grafische Oberfläche: terminal
  • Hardware: vServer
Re: Backup Script
« Antwort #2 am: 11.Oktober 2011, 20:07:57 »
hi,
danke schon mal. Die ] geh?rt nicht zu dem tgz file. Also noch ein Leerzeichen rein?

Offline naubaddi

  • Foren-Held
  • ***
  • Beiträge: 126
  • Geschlecht: Männlich
  • I Love Buggy fahren
    • Ein paar Bilder von unserer Carrera-Bahn
  • Betriebssystem: Kubuntu 11.04
  • Grafische Oberfläche: KDE
  • Hardware: TOSHIBA Sattelite Pro, i3-2310M 2,10GHz, Intel? HD Graphics 3000
Re: Backup Script
« Antwort #3 am: 12.Oktober 2011, 10:51:09 »
...wie kann ich noch ne Zeitsteuerung einbauen?...

Hi Darky link,

daf?r kann man Cron benutzen, einfach das Skript ?ber Cron zu gegebener Zeit starten lassen.

Hier noch ein Skript f?r ein Backup mit rsync,

f?r KDE:
#!/bin/bash
#
# --- Infos -----------------------------------------------------------------------------------
#
# Scriptname KDE-Backup.sh
# Funktion Backup mit rsync & kdialog (KDE-Dialoge)
#
# Beschreibung Es wird ein Backup von den Ordnern die in den Variablen
# $quelle_1 bis $quelle_9 angegeben sind nach Ziel welches in der
# Variablen $ziel steht erstellt.
# Wenn dem Skript Ordner ?bergeben wurden, werden diese im
# Bereich "--- Ordner wurden ?bergebenen ---" in die Variablen
# ?bernommen, das Ziel kann in diesem Fall ein anders sein.
#
# ben?tigt bash, rsync & kdialog
#
# Autor Naubaddi
#
# Status noch in Arbeit ( wer wird schon fertig??? )
# Fehler keine, oder??? ( Naubadi is p?rfekt )
#
# Start 25.07.2003
# Stand 20.08.2011
#
# --- Variablen -------------------------------------------------------------------------------
#
# $HOME # der Home-Ordner (vom System)
# $USER # der User-Name (vom System)
$1 # Aufrufparameter, wurden Ordner ?bergeben?
log_datei="" # Textdatei mit einer Auflistung der gesicherten Dateien
error_datei="" # Textdatei f?r eventuelle Fehlermeldungen
le_ordner="" # ein Ordner f?r die log/error Dateien
fehler="" # f?r aufgetretene Fehler
backup_x="1" # Z?hler f?r die while-Schleife
quelle="$1" # Quelle die gesichert werden soll (Pfad & Ordner)
quelle_ordner="" # nur der Ordner von quelle
max_quellen="9" # Max-Anzahl der Quellen die gesichert werden k?nnen
zeit="" # f?r die aktuelle Zeit
dumm="" # Variable f?r alles M?gliche oder nix ;-)
#
# --- Variablen (bei Bedarf ?ndern) -----------------------------------------------------------
#
# # Parameter f?r rsync
para="-av"
# # Ordner die gesichert werden sollen
quelle_1="$HOME/Bilder"
quelle_2="$HOME/Dokumente"
quelle_3="$HOME/Downloads"
quelle_4="$HOME/Musik"
quelle_5="$HOME/?ffentlich"
quelle_6="$HOME/Videos"
quelle_7="$HOME/Vorlagen"
quelle_8="$HOME/XY-Akte"
quelle_9=""
# # Standard-Ziel Ordner 1
ziel_ordner_1="$HOME/Backup/2011-20XX_Kubuntu-Linux"
# # Datei-Auswahl Ordner 2
ziel_ordner_2="/media/Linux 250GB ext3"
#
# ---------------------------------------------------------------------------------------------
# --- Script Anfang ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#
ziel=$ziel_ordner_1
#
# --- Ordner wurden ?bergebenen ---------------------------------------------------------------
#
if [ "$quelle" ]
  then
  #
  quelle_1="$1"
  quelle_2="$2"
  quelle_3="$3"
  quelle_4="$4"
  quelle_5="$5"
  quelle_6="$6"
  quelle_7="$7"
  quelle_8="$8"
  quelle_9="$9"
  #
  ziel=$ziel_ordner_2
  #
fi
#
# --- Text f?r den ersten Dialog --------------------------------------------------------------
#
if [ "$quelle_1" ]; then alle_quellen=$alle_quellen"\n"$quelle_1; fi
if [ "$quelle_2" ]; then alle_quellen=$alle_quellen"\n"$quelle_2; fi
if [ "$quelle_3" ]; then alle_quellen=$alle_quellen"\n"$quelle_3; fi
if [ "$quelle_4" ]; then alle_quellen=$alle_quellen"\n"$quelle_4; fi
if [ "$quelle_5" ]; then alle_quellen=$alle_quellen"\n"$quelle_5; fi
if [ "$quelle_6" ]; then alle_quellen=$alle_quellen"\n"$quelle_6; fi
if [ "$quelle_7" ]; then alle_quellen=$alle_quellen"\n"$quelle_7; fi
if [ "$quelle_8" ]; then alle_quellen=$alle_quellen"\n"$quelle_8; fi
if [ "$quelle_9" ]; then alle_quellen=$alle_quellen"\n"$quelle_9; fi
#
# --- Standard Backup starten, anderes Ziel w?hlen oder Abbruch? ------------------------------
#
kdialog --title "Backup mit rsync" --yesnocancel "von Quelle:$alle_quellen\n\nnach Ziel:\n$ziel\n\nMit \"Nein\" kann ein anderes Ziel gew?hlt werden!\n"
#
# --- Anderes Ziel w?hlen oder Abbruch? -------------------------------------------------------
#
case $? in
  0) ;; # es ist nix zu tun, das Standard Ziel wird benutzt
  1) ziel=`kdialog --title "Ziel f?r das Backup ausw?hlen" --getexistingdirectory "$ziel_ordner_2" "*"`;;
  2) ziel="";; # es ist gar nix zu tun, das Backup wurde abgebrochen
esac
#
# --- Backup starten oder abbrechen? ----------------------------------------------------------
#
if [ "$ziel" ]
  then
  #
  le_ordner="$HOME/Backup Infos"
  zeit="`date +'%d.%m.%y - %H:%M:%S'`"
  #
  if [ ! -d "$le_ordner $zeit" ]
    then
    mkdir "$le_ordner $zeit"
  fi
  #
  # --- Die Ordner einzeln an rsync ?bergeben -------------------------------------------------
  #
  while [ "$backup_x" -le "$max_quellen" ]
    do
    #
    case "$backup_x" in
      #
      1) quelle="$quelle_1";;
      2) quelle="$quelle_2";;
      3) quelle="$quelle_3";;
      4) quelle="$quelle_4";;
      5) quelle="$quelle_5";;
      6) quelle="$quelle_6";;
      7) quelle="$quelle_7";;
      8) quelle="$quelle_8";;
      9) quelle="$quelle_9";;
      #
    esac
    #
    backup_x="$((backup_x+1))"
    #
    # --- Ordner mit rsync sichern ------------------------------------------------------------
    #
    if [ "$quelle" ]
      then
      #
      quelle_ordner="${quelle##*/}"
      #
      log_datei="$le_ordner $zeit/LOG von $quelle_ordner.txt"
      error_datei="$le_ordner $zeit/ERROR bei $quelle_ordner.txt"
      #
      echo "Backup von $quelle nach $ziel" > "$log_datei"
      echo "" >> "$log_datei"
      #
      (rsync "$para" "$quelle" "$ziel" | tee -a "$log_datei") 2>>"$error_datei"
      #
      if [ -s "$error_datei" ]
        then
        #
        fehler="$fehler\n$quelle"
        #
      fi
      #
    fi
    #
  done
  #
  # --- Backup O.K. oder Fehler? --------------------------------------------------------------
  #
  if [ "$fehler" ]
    then
    kdialog --title "Fehler beim Backup" --msgbox "von:$fehler\n\nnach:\n$ziel\n\nInfos stehen im Ordner \"$le_ordner...\"\nin den \"ERROR bei...\" Dateien.\n"
  else
    kdialog --title "Backup wurde erstellt" --msgbox "von:$alle_quellen\n\nnach:\n$ziel\n\nInfos stehen im Ordner \"$le_ordner...\"\nin den \"LOG von...\" Dateien.\n"
  fi
  #
else
  #
  # --- Das Script wurde abgebrochen ----------------------------------------------------------
  #
  kdialog --msgbox "Abbruch, durch Benutzer $USER.\n"
  #
fi
#
# ---------------------------------------------------------------------------------------------
# --- Skript Ende -----------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#

f?r Gnome:
#!/bin/bash
#
# --- Infos -----------------------------------------------------------------------------------
#
# Scriptname GBackup.sh
# Funktion Backup mit rsync, zenity & yad (Gnome-Dialoge)
#
# Beschreibung Es wird ein Backup von den Ordnern die in den Variablen
# $quelle_1 bis $quelle_9 angegeben sind nach Ziel welches in der
# Variablen $ziel steht erstellt.
# Wenn dem Skript Ordner ?bergeben wurden, werden diese im
# Bereich "--- Ordner wurden ?bergebenen ---" in die Variablen
# ?bernommen, das Ziel kann in diesem Fall ein anders sein.
#
# ben?tigt bash, rsync, zenity & yad
#
# Autor Naubaddi
#
# Status noch in Arbeit ( wer wird schon fertig??? )
# Fehler keine, oder??? ( Naubadi is p?rfekt )
#
# Start 25.07.2003 (ge?ndert auf Gnome am 20.02.2011)
# Stand 20.08.2011
#
# --- Variablen (bitte nicht ?ndern) ----------------------------------------------------------
#
# $HOME # der Home-Ordner (vom System)
# $USER # der User-Name (vom System)
$1 # Aufrufparameter, wurden Ordner ?bergeben?
log_datei="" # Textdatei mit einer Auflistung der gesicherten Dateien
error_datei="" # Textdatei f?r eventuelle Fehlermeldungen
le_ordner="" # ein Ordner f?r die log/error Dateien
fehler="" # f?r aufgetretene Fehler
backup_x="1" # Z?hler f?r die while-Schleife
quelle="$1" # Quelle die gesichert werden soll (Pfad & Ordner)
quelle_ordner="" # nur der Ordner von quelle
max_quellen="9" # Max-Anzahl der Quellen die gesichert werden k?nnen
datum="" # Variable f?r Datum & Zeit
dumm="" # Variable f?r alles M?gliche oder nix ;-)
#
# --- Variablen (bei Bedarf ?ndern) -----------------------------------------------------------
#
# # Parameter f?r rsync
para="-av"
# # Ordner die gesichert werden sollen
quelle_1="$HOME/Bilder"
quelle_2="$HOME/Dokumente"
quelle_3="$HOME/Downloads"
quelle_4="$HOME/Musik"
quelle_5="$HOME/?ffentlich"
quelle_6="$HOME/Videos"
quelle_7="$HOME/Vorlagen"
quelle_8="$HOME/XY-Akte"
quelle_9=""
# # Standard-Ziel Ordner 1
ziel_ordner_1="$HOME/Backup/2010-2011_Mint-Linux"
# # Datei-Auswahl Ordner 2
ziel_ordner_2="/media/Linux 250GB Ext3"
#
# ---------------------------------------------------------------------------------------------
# --- Script Anfang ---------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#
ziel=$ziel_ordner_1
#
# --- Ordner wurden ?bergebenen ---------------------------------------------------------------
#
if [ "$quelle" ]
  then
  #
  quelle_1="$1"
  quelle_2="$2"
  quelle_3="$3"
  quelle_4="$4"
  quelle_5="$5"
  quelle_6="$6"
  quelle_7="$7"
  quelle_8="$8"
  quelle_9="$9"
  #
  ziel=$ziel_ordner_2
  #
fi
#
# --- Text f?r den ersten Dialog --------------------------------------------------------------
#
if [ "$quelle_1" ]; then alle_quellen=$alle_quellen"\n"$quelle_1; fi
if [ "$quelle_2" ]; then alle_quellen=$alle_quellen"\n"$quelle_2; fi
if [ "$quelle_3" ]; then alle_quellen=$alle_quellen"\n"$quelle_3; fi
if [ "$quelle_4" ]; then alle_quellen=$alle_quellen"\n"$quelle_4; fi
if [ "$quelle_5" ]; then alle_quellen=$alle_quellen"\n"$quelle_5; fi
if [ "$quelle_6" ]; then alle_quellen=$alle_quellen"\n"$quelle_6; fi
if [ "$quelle_7" ]; then alle_quellen=$alle_quellen"\n"$quelle_7; fi
if [ "$quelle_8" ]; then alle_quellen=$alle_quellen"\n"$quelle_8; fi
if [ "$quelle_9" ]; then alle_quellen=$alle_quellen"\n"$quelle_9; fi
#
# --- Standard Backup starten, anderes Ziel w?hlen oder Abbruch? ------------------------------
#
yad --title "GBackup" \
    --image=dialog-question \
    --text "Backup von (Quelle):\n$alle_quellen\n\nnach (Ziel):\n\n$ziel\n" \
    --button="Anderes Ziel w?hlen:0" \
    --button="Abbrechen:1" \
    --button="Starten:2"
dumm=$?
#
# --- Ein anderes Ziel f?r das Backup w?hlen oder Abbruch -------------------------------------
#
case $dumm in
  #
  0) dumm=`zenity --file-selection \
                  --title="W?hlen Sie ein anderes Ziel f?r das Backup" \
                  --directory \
                  --filename=$ziel_ordner_2`
     case $? in
       #
       0) ziel=$dumm;; # ein anderes Ziel wurde gew?hlt
       1) ziel="";; # Programm Abbruch
       #
     esac;;
  1) ziel="";; # Programm Abbruch
  2) ;; # das Standard Ziel wird benutzt
  *) ziel="";; # Unbekannte Option, Programm Abbruch
  #
esac
#
if [ "$ziel" ]
  then
  #
  # --- Das Backup wurde gestartet ------------------------------------------------------------
  #
  le_ordner="$HOME/Backup Infos"
  datum="`date +'%d.%m.%y - %H:%M:%S'`"
  #
  if [ ! -d "$le_ordner $datum" ]
    then
    #
    mkdir "$le_ordner $datum"
    #
  fi
  #
  while [ "$backup_x" -le "$max_quellen" ]
    do
    #
    case "$backup_x" in
      #
      1) quelle="$quelle_1";;
      2) quelle="$quelle_2";;
      3) quelle="$quelle_3";;
      4) quelle="$quelle_4";;
      5) quelle="$quelle_5";;
      6) quelle="$quelle_6";;
      7) quelle="$quelle_7";;
      8) quelle="$quelle_8";;
      9) quelle="$quelle_9";;
      #
    esac
    #
    backup_x="$((backup_x+1))"
    #
    if [ "$quelle" ]
      then
      #
      quelle_ordner="${quelle##*/}"
      #
      log_datei="$le_ordner $datum/LOG $quelle_ordner.txt"
      error_datei="$le_ordner $datum/ERROR $quelle_ordner.txt"
      #
      echo "Backup von $quelle nach $ziel" > "$log_datei"
      echo "" >> "$log_datei"
      #
      (rsync "$para" "$quelle" "$ziel" | tee -a "$log_datei") 2>>"$error_datei"
      #
      if [ -s "$error_datei" ]
        then
        #
        fehler="$fehler\n$quelle"
        #
      fi
      #
    fi
    #
  done
  #
  if [ "$fehler" ]
    then
    #
    zenity --error \
           --title "GBackup" \
           --text="Fehler beim Backup von (Quelle):\n$fehler\n\nnach (Ziel):\n\n$ziel\n\nInfos stehen im Ordner \"$le_ordner ...\" in den \"ERROR ...\" Dateien.\n"
    #
  else
    #
    zenity --info \
           --title="GBackup" \
           --text="Backup von (Quelle):\n$alle_quellen\n\nnach (Ziel):\n\n$ziel\n\nwurde erstellt.\n\nInfos stehen im Ordner \"$le_ordner ...\" in den \"LOG ...\" Dateien.\n"
    #
  fi
  #
else
  #
  # --- Das Backup wurde abgebrochen ----------------------------------------------------------
  #
  dumm="nix in else dann geht auch nix!"
  #
fi
#
# ---------------------------------------------------------------------------------------------
# --- Skript Ende -----------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#

Gru?, Hermann
Gru?, Hermann

Schneller laufen hilft nicht wenn man in die falsche Richtung l?uft.

Offline Skipper

  • Foren-Gott
  • *******
  • Beiträge: 2185
  • Geschlecht: Männlich
  • Sic volo, sic iubeo!
  • Betriebssystem: GENTOO+LinuxMint
  • Grafische Oberfläche: XFCE4
  • Hardware: MSI X370 GPC, AMD R 7 2700X, Noktua NH-D15, GSKILL 16GB, 2xGTX 1050
Re: Backup Script
« Antwort #4 am: 26.Oktober 2011, 17:37:39 »
Hey,

Gott sei Dank f?hren ja viele Wege nach Rom, sagt ein Sprichwort und ich bin froh, dass das gerade f?r Linux gilt:

Dein debian bringt schon ein Programm mit, welches nach belieben Deine Scripte zeitbestimmt ausf?hrt! Lese hier: http://www.lug-viersen.de/howtos/cronjobs.html


Skipper
Wer fragt, ist ein Narr für fünf Minuten. Wer nicht fragt, bleibt für immer ein Narr! (Chinesisches Sprichwort )