Probleme, Fragen, nichts geht mehr > Debian
Backup Script
(1/1)
Darky:
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 `]'
--- Ende Zitat ---
und mein Script:
--- Code: ---#!/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!
--- Ende Code ---
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
Linuxtal:
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
Darky:
hi,
danke schon mal. Die ] gehört nicht zu dem tgz file. Also noch ein Leerzeichen rein?
naubaddi:
--- Zitat von: Darky am 11.Oktober 2011, 18:44:47 ---...wie kann ich noch ne Zeitsteuerung einbauen?...
--- Ende Zitat ---
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:
--- Code: ---#!/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 -----------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#
--- Ende Code ---
für Gnome:
--- Code: ---#!/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 -----------------------------------------------------------------------------
# ---------------------------------------------------------------------------------------------
#
--- Ende Code ---
Gruß, Hermann
Skipper:
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
Navigation
[0] Themen-Index
Zur normalen Ansicht wechseln