Bash - Sicherungsscript

BrainBug

New Member
Hallo zusammen

Hab heute mit dem Bash skripten angefangen.
Mein erstes Programm hab ich aus stücken gemacht die ich gefunden hab und mal zusammen gesetzt.

Es sollte dienen zum wichtige Dateien zu kopieren. z.b. auf dem Server.
Zum später bequem alle Dateien per Ftp aus einem Verzeichnis herunter zu laden.

Würde gern mal eure meinung dazu hören.Ob es gut ist
oder ob man paar sachen verbessern
könnte.

#!/bin/bash
clear
echo "System Daten Sicherung"
sleep 2
echo "Sicherung beginnen (j/n)"
read JaNein
if [ "${JaNein/J/j}" != "j" ]; then
exit 1
fi
VZ=sds
VZ1="sds$(date +%d%m%y)"
VZ2=/"$VZ"/"$VZ1"
#Erzeugt das Zielverzeichnis
clear
echo "Erzeuge Verzeichnis $VZ1"
sleep 3
clear
cd /
sleep "2"
mkdir $VZ
chmod 777 $VZ
cd /sds/
mkdir $VZ1
cd
chown -Rv test:users "$VZ2"
sleep 1
cp /etc/apache2/httpd.conf "$VZ2"
cp /etc/ssh/sshd_config "$VZ2"
cp /etc/sudoers "$VZ2"
cp /etc/crontab "$VZ2"
cp /etc/X11/xorg.conf "$VZ2"
cp /etc/cups/printers.conf "$VZ2"
cp /etc/sysconfig/SuSEfirewall2 "$VZ2"
echo "Dateien wurden kopiert"
sleep 2
clear
echo "Zeige Dateien des Verzeichnis $VZ2"
cd "$VZ2"
ls
sleep 2

Freu mich über antworten.
 
Naja über den Sinn dieses Scriptes möcht ich mal nicht sprechen. ;)
Ich würde aber die sleeps weglassen, schade um die Zeit die da drauf geht.
Die Sicherheitsabfrage zu Beginn würd ich auch weglassen, weil wenn ich das Script ausführ will ich selbstverständlich die Sicherung beginnen, sonst würd ichs ja nicht ausführen.
Und ich würd die Verzeichniswechsel weglassen, direkt mitm vollen Pfad arbeiten.

Edit: Die clears zwischen drin würd ich auch weglassen, dazu die Schritte am Anfang vieleicht durchnummerieren und schon sieht das auch ganz nett aus.
Und man kann eventuell auftrettende Fehler zwischen drin noch nachlesen. ;)

Edit2: Weiterer Verbesserungsvorschlag: Warum nicht direkt packen und archivieren? ;)
 
Last edited by a moderator:
Danke für die antwort.
Die sleeps und clears hab ich mal zum test mit eingebracht.
Konnt ich auch gleich den ablauf besser verstehen falls ein fehler vorkam.
Damit ich auch wusste wo der liegt.
Sleeps und echos hätte ich weglassen können.
Dann ist es auch schnell kopiert.
Der Sinn in dem Prog ist, das ich einzelne Dateien am Heimischen rechner öfter mal sicher.
Xorg z.b. falls mir mal die Grafik wieder versagt.
Damit ich nicht in jedes Verz. von Hand anwählen muss ;-)

Möchte mich so ein wenig damit einarbeiten und as lernen.
 
Last edited by a moderator:
Du solltest die Verzeichnisse nicht direkt im Root anlegen. Sondern in einem User-Home oder in /tmp.
Und schau dir mal die Option -p für mkdir an.
 
Und noch ein Tipp: man test

Beispiele:
Code:
# Vor überschreiben schützen:
[ -e $TARGET ] && { echo "Ziel existiert bereits"; exit 1 }
do_something > $TARGET

# Binary (executable) suchen:
for name in apachectl apache2ctl; do
  [ -x `which $name` ] && BIN=`which $name`
done
$BIN graceful

Tests machen Shellscripts erst so richtig gut. Weil man nicht einfach nur irgendwas abfeuert und hofft, dass es nichts trifft außer das anvisierte Ziel.
 
Back
Top