• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Bräuchte bitte Profi Meinung zu Backupscript:

revealed

Guru
Hallo ich hab kürzlich weil ich gefragt worden bin gedacht ich bastel einen Script für die MySQL.

Dabei ist was rausgekommen, meine ich. Aber ich weiss nicht ob das in dieser Art sinnvoll ist.

Im Vorraus meine Datenbank ist sehr klein. Also der ganzen MySQL Inhalt besteht vielleicht aus einer kleinen unkonfigurierten Joomla.

Ich würde also gern eine fachliche Meinung zu diesem Script haben, wenn jemand so nett währe:

Code:
#!/bin/sh
##
# Dieser Script soll die MySQL Prüfen und Ergebnisse berichten.
# Außerdem soll er MyISAMchk ausführen und gefundenes gleich reparieren.
#
# Im Anschlusß soll ein Dump der Datenbank im Backupziel abgelegt werden!
# Bitte beachten, dass am Ende des File der Backuppart mit je Einer Zeile
# für jedes Schema angelegt werden muss und dass der Benutzername der
# verwendet wird mit entsprechender Berechtigung ausgestattet sein muss!
#
## Variablen:
#
# Username und Passwort für die Datenbanken
password=" ";
username=" ";
# Verzeichnis welches die Datenbanken beinhaltet:
mysqlverzeichnis="/var/lib/mysql" # /*/*.MYI;
# Backup (DUMP) Zielverzeichnis
DUMPDIR="/windows/E/cron_backup/MySQL/dump";
# location of MySQL BINARY:
MYSQLBIN="/usr/bin/";

## Zunächst MyISAMchk n Repair:
echo "# MySQL check N repair!! ::

# diese Befehlsabfolge soll der täglichen Wartung und Prüfung der MySQL Datenbanken
# mittels myisamchk sowei mysqlcheck dienen... es führt außerdem eine Optimierung der
# Datenbank durch! Falls die Ausgabe fehler aufweisen sollte müsste bitte die Ausgabe 
# sicherheitshalber geprüft werden.
"
myisamchk --silent --force --fast --update-state --key_buffer_size=64M --sort_buffer_size=64M --read_buffer_size=1M --write_buffer_size=1M $mysqlverzeichnis/*/*.MYI
echo "# myisam ChekNrepair abgeschlossen!         [OK]
"

### Zur MySQL
## Analyse: (chk)
echo "# Starte Analyse der MySQL ...              [OK]
"
mysqlcheck --silent --analyze --all-databases -u $username --password=$password
## Automatische Optimierung: (chk)
echo "# Optimiere MySQL Datenbanken! ...          [OK]
"
mysqlcheck --silent -o --all-databases -u $username --password=$password
## Automatische Reparatur:
echo "# starte Automatische Reparatur ...         [OK]
"
mysqlcheck --silent --auto-repair --all-databases -u $username --password=$password
## DUMP -- (Backupteil)
#
# MySQL Backup Script
#
# dumps spezified Databases 
# and truncates binary logs
# to spezified folder:
#
# Achtung nur die hier angegebenen Datenbanschemata werden gedumpt...
if test -x $MYSQLBIN/mysqldump
 then
 echo "Dumping Database mysql...                 [done]"
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt mysql > $DUMPDIR/mysql

 echo "Dumping Database information_schema...    [done]"
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt information_schema > $DUMPDIR/information_schema

 echo "Dumping Database joomla...                [done]"
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt joomla > $DUMPDIR/joomla

  else
    echo "Backup failed"
fi

echo "
Alle Vorgänge abgeschlossen!                [OK]"

## Vorgänge abgeschlossen!
## /EOF

Vielen Dank im Vorraus und Grüße,

R
 

Dr. Glastonbury

Advanced Hacker
Sorry, leider keine Antwort von mir,
aber ich glaube ich verschiebe das mal ins Datenbank-Forum, da sind doch hoffentlich eher die Profis für sowas ;)
 
OP
revealed

revealed

Guru
Danke!

ich verpeil das ab und an zur Zeit, wohin sowas gehört. Irgendwie hängt das ja voll zusammen, MySQL und Webserver...

Gruß

R
 
OP
revealed

revealed

Guru
Hmm ich poste mal einfach eine neuere Version:

Code:
#!/bin/sh
##
# Dieser Script soll die MySQL Prüfen und Ergebnisse berichten.
# Außerdem soll er MyISAMchk ausführen und gefundenes gleich reparieren.
#
# Im Anschlusß soll ein Dump der Datenbank im Backupziel abgelegt werden!
# Bitte beachten, dass am Ende des File der Backuppart mit je Einer Zeile
# für jedes Schema angelegt werden muss und dass der Benutzername der
# verwendet wird mit entsprechender Berechtigung ausgestattet sein muss!
#
## Variablen:
#
# Username und Passwort für die Datenbanken
password=" ";
username=" ";
# Verzeichnis welches die Datenbanken beinhaltet:
mysqlverzeichnis="/var/lib/mysql" # /*/*.MYI;
# Backupziel:
TARGET="/windows/E/cron_backup/MySQL/MySQL_dump.tar"
# Temporäres Backup (DUMP) Zielverzeichnis
DUMPDIR="/tmp/dump";
# location of MySQL BINARY:
MYSQLBIN="/usr/bin/";

## Zunächst MyISAMchk n Repair:
echo "##
# MySQL check N repair!! ::
#
# diese Befehlsabfolge soll der Wartung, Pflege und Reparatur der MySQL
# Datenbanken mittels myisamchk sowie mysqlcheck dienen. Es startet 
# weiter eine Optimierung der Datenbank! Falls die Ausgabe Fehler aufweisen
# sollte, muss die Ausgabe bitte sicherheitshalber manuell ggf. repariert werden.
##
"
echo -n "MyISAM ChekNrepair ..."
myisamchk --silent --force --fast --update-state --key_buffer_size=64M --sort_buffer_size=64M --read_buffer_size=1M --write_buffer_size=1M $mysqlverzeichnis/*/*.MYI
echo "        			[done]"
### Zur MySQL
## Analyse: (chk)
echo -n "Starte Analyse der MySQL ... "
mysqlcheck --silent --analyze --all-databases -u $username --password=$password
echo  "        		[done]"
## Automatische Optimierung: (chk)
echo -n "Optimierung der MySQL!     ..."
mysqlcheck --silent -o --all-databases -u $username --password=$password
echo  "        		[done]"
## Automatische Reparatur:
echo -n "Automatische Reparatur      ..."
mysqlcheck --silent --auto-repair --all-databases -u $username --password=$password
echo "        		[done]"
## DUMP -- (Backupteil)
#
# MySQL Backup Script
#
# dumps spezified Databases 
# and truncates binary logs
# to spezified folder:
#
# Achtung nur die hier angegebenen Datenbankschemata werden gedumpt...
echo "
##
# Achtung! nur die hier angegebenen Datenbankschemata werden gedumpt!..
##
"
# Temporäres Verzeichnis erstellen:
cd /
mkdir $DUMPDIR

if test -x $MYSQLBIN/mysqldump
 then
 echo -n "Dumping Database mysql..."
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt mysql > $DUMPDIR/mysql
 echo "                    	[done]"
 echo -n "Dumping Database information_schema..."
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt information_schema > $DUMPDIR/information_schema
 echo "     	[done]"
 echo -n "Dumping Database joomla..."
 $MYSQLBIN/mysqldump -u $username --password=$password --flush-logs --opt joomla > $DUMPDIR/joomla
 echo "                     	[done]"
  else
    echo "Backup failed"
fi

echo "
##
# Sichern im Zielpfad:
##
"

# Verpacken der dump und verschieben and den zielspeicherort:
tar -cf $TARGET $DUMPDIR
#"/windows/E/cron_backup/MySQL/dump"
echo "
##
# Cleanup:
##
"
cd /
rm -rf $DUMPDIR --verbose

echo "
##
#Alle Vorgaenge erfolgreich abgeschlossen!	[OK!]
##

##
# Falls hier Fehler gelistet wurden, bitte Eingreifen!!!
##
"

## Vorgänge abgeschlossen!
## /EOF

Ausgabe:
wild-thing:/var/lib/mysql # sh MySQLcheckNrepair.sh
Code:
##
# MySQL check N repair!! ::
#
# diese Befehlsabfolge soll der Wartung, Pflege und Reparatur der MySQL
# Datenbanken mittels myisamchk sowie mysqlcheck dienen. Es startet
# weiter eine Optimierung der Datenbank! Falls die Ausgabe Fehler aufweisen
# sollte, muss die Ausgabe bitte sicherheitshalber manuell ggf. repariert werden.
##

MyISAM ChekNrepair ...                          [done]
Starte Analyse der MySQL ...                    [done]
Optimierung der MySQL!     ...                  [done]
Automatische Reparatur      ...                 [done]

##
# Achtung! nur die hier angegebenen Datenbankschemata werden gedumpt!..
##

Dumping Database mysql...                       [done]
Dumping Database information_schema...          [done]
Dumping Database joomla...                      [done]

##
# Sichern im Zielpfad:
##

tar: Entferne führende „/“ von Elementnamen

##
# Cleanup:
##

„/tmp/dump/information_schema“ entfernt
„/tmp/dump/mysql“ entfernt
„/tmp/dump/joomla“ entfernt
Verzeichnis wurde entfernt: „/tmp/dump“

##
#Alle Vorgaenge erfolgreich abgeschlossen!      [OK!]
##

##
# Falls hier Fehler gelistet wurden, bitte Eingreifen!!!
##



Gruß

R
 
Oben