Raketenskripter: Ein paar weitere Funktionen ...

Beitrag lesen

#! /bin/bash
### file /Path/To/backup.sh
### code in utf-8

host="localhost";
port="3306"
user="test";
passwort="HalloJosch";

# siehe mysqldump --help
moreDumpOptions='--add-drop-database --add-drop-table --allow-keywords --extended-insert=TRUE'; 

#Wer bekommt die Mails?
mailto='bürgerlicher Name <user@host>';

### Verzeichnis für den Output
directory="/tmp/"; 

### Schemas("Datenbanken") nicht dumpen (Trenner ist GENAU ein PIPE "|", 'Database' muss stehen bleiben):
nodump="information_schema|mysql|OSM"; 

# showMessages=1 zeigt Nachrichten (bei cronjob vermeiden)
showMessages=1;

# Pfade zu Programmen

mysql_bin=`which mysql`;
mysqldump_bin=`which mysqldump`;
mail_bin=`which mail`;

#mysql_bin="/usr/bin/mysql";
#mysqldump_bin="/usr/bin/mysqldump";
#mail_bin="/usr/bin/mail";

# Es ist "ein wenig schwierig", automatisch zu ermitteln, ob für die Ermittlung der Datenbanken 'show schemas' oder 'show databases' benutzt werden muss:
#schemasName="databases";
schemasName="schemas";

### Programm: ###

mailto=`echo "${mailto}" | iconv -f UTF-8 -t ASCII//TRANSLIT`;

err=0;
counter=0;
datetime=`date +%Y-%m-%d_%H:%M:%S`;
databases=`echo "show ${schemasName};" | $mysql_bin --host="${host}" --port="${port}" --user="${user}" --password="${passwort}" --column-names=FALSE | grep -vP "${nodump}"`;

for database in $databases; do
	outFile="${directory}/${datetime}_${database}.sql.gz";
	logFile="${directory}/${datetime}.log";
   
	if [ 1 -eq $showMessages ]; then
		echo -n "Dumpe Schema: '${database}'.";
	fi

	$mysqldump_bin --host="${host}" --port="${port}" --user="${user}" --password="${passwort}" $moreDumpOptions -B $databases | gzip -c > "${outFile}" 2>> "${logFile}" ;
   
	if [ 0 -eq $? ]; then
		counter=$(($counter+1));
		if [ 1 -eq $showMessages ]; then
			echo "Schema \"${database}\" wurde gesichert." >> "${logFile}";
			echo -e "\b -> fertig.";
		fi
	else
		if [ 1 -eq $showMessages ]; then
			echo -e "\b -> FEHLER!";
		fi
		err=1;
	fi
done

if [ 1 -eq $err ]; then
	cat "${directory}/${datetime}.log" | $mail_bin -s "Fehler beim Datenbank-Backup von ${host}:${port}" "${mailto}";
fi

fileList=`ls -alh ${directory}/${datetime}*`;
echo -en "${counter} Schemas wurden gesichert.\nAngelegte Dateien:\n\n${fileList}" | $mail_bin --subject="Erfolgtes Datenbank-Backup von ${host}:${port}" "${mailto}";


Einen echten Fehler habe ich gefunden: Beim Ermitteln der $fileList fehlte ${directory}.

Weitere Veränderungen betreffen die "Schönheit", z.B. die bequeme Angabe von Optionen.

0 75

Datenbanken sichern

Jörg
  • datenbank
  • php
  • sicherheit
  1. 0
    Raketentester
    1. 0

      Noch ein Hinweis

      Raketentester
    2. 0

      Letzte Hinweise

      Raketentester
      1. 0
        Jörg
    3. 0
      Jörg
      1. 0
        Raketentester
        1. 0
          Jörg
          1. 0
            Raketentester
            1. 0
              Jörg
              1. 0
                Jörg
                1. 0
                  Raketentestpilot
  2. 0

    Das willst Du auch nicht...

    Raktentester
    1. 0
      Jörg
      1. 0
        Raketentester
        1. 0

          Das willst Du auch nicht... / Nachfrage

          Jörg
          1. 0
            Raketentestpilot
            1. 0
              Jörg
              1. 0
                Raketentestpilot
              2. 0
                Rolf B
                1. 0
                  Jörg
                  1. 0
                    Rolf B
                    1. 0
                      Jörg
                      1. 0
                        Der Martin
                    2. 0
                      Jörg
                      1. 0
                        Jörg
                        1. 0
                          Raketenskripter
                          1. 0
                            Rolf B
                            1. 0
                              Raketenrechtgeber
                          2. 0
                            Jörg
                            1. 0

                              „Tut“ leider nicht

                              Raketenskripter
                              1. 0
                                Jörg
                  2. 0

                    Warum denn einfach wenn es kpmpliziert geht ...

                    Raketenskripter
                    1. 0
                      Rolf B
                      1. 0
                        Raketenskripter
                        1. 0
                          Rolf B
                          1. 0
                            Raketenskripte
                    2. 0

                      Ein paar weitere Funktionen ...

                      Raketenskripter
                      1. 0
                        Rolf B
                        1. 0
                          Raketenskripter
                          1. 0
                            Jörg
                            1. 0
                              Raketenskripter
                      2. 0
                        Jörg
                        1. 0
                          Raketenskripter
                          1. 0
                            Jörg
                            1. 0
                              Raketenskripter
                              1. 0
                                Raketenskripter
                              2. 0
                                Jörg
                          2. 0
                            Jörg
                            1. 0
                              Raketenskripter
                              1. 0
                                Raketenskripter
                              2. 0
                                Jörg
                                1. 0
                                  Raktenskripter
                                  1. 0
                                    Raketenskripter
                                    1. 0
                                      Jörg
                                      1. 0
                                        Raketenskripter
                                2. 0
                                  Jörg
                                  1. 0
                                    Raketenskripter
                                    1. 0
                                      Jörg
                                      1. 0

                                        Shellscripting

                                        Jörg
                                        1. 0
                                          Raketenskripter
                                          1. 0
                                            Jörg
                                            1. 0
                                              Jörg
                                              1. 0
                                                Raketenskripter
                                                1. 0
                                                  Jörg
                                                  1. 0
                                                    Raketenwilli
                                                    1. 0
                                                      Jörg
                  3. 0

                    Statt Support

                    Raketentestpilot
                    1. 0
                      Jörg
  3. 0

    Datenbanken sichern / Nochmal mit Kommentaren

    Jörg
    1. 0
      Jörg
      1. 0
        MudGuard
        1. 0
          Jörg
    2. 0
      dedlfix
      1. 0
        Jörg