backup Script für umija.org

Backup Script

Wie auf Backup beschrieben dient das Script zur täglichen Datensicherung. Dabei werden folgende Schritte nacheinander ausgeführt: * Export der MySQL daten in ein SQL Datei * Komprimierung der SQL Datei * Komprimierung der Bilder aus /home/tiki_img * Komprimierung der TikiWiki Dateien aus /home/tiki_files * Erstellung der Dpkg Liste mit allen installierten Paketen (für maschinelle Verwendung) * Komprimierung dieser Liste * Erstellung der Dpkg Liste mit allen installierten Paketen (Ausführliche Datei für Menschen verständlich) * Komprimierung dieser Liste * UPLOAD der Komprimierten Dateien auf Hal

NEW

  • report_error() eingefügt
  • mWIKI DB wird gesichert
  • FTP upload Script gibt einen Status aus --> bei fehlerhaftem upload eMail

Script

{CODE(colors=>bash)}

!/bin/sh

Backup Script

angefertigt fuer umija.org ( UMIJA )

Stand: 2006-02-16

getestet am 2006-02-16 von umija.org/EdMa

ftp_up=/root/bin/ftp_upload tar=/bin/tar dpkg=/usr/bin/dpkg mysqldump=/usr/bin/mysqldump eMAIL=Eduard_Mann@web.de datum=date +%Y-%m-%d error_file=/tmp/$datum"_umija_backup_error.txt" ftp_error=/tmp/$datum"_ftp_up_error"

report_error(){

if test -e /tmp/$datum"_umija_backup_error.txt";

if test -e $error_file then #fuege zur Error-Datei hinzu echo -e $1 >> $error_file else #erstelle Error-Datei echo -e $1 > $error_file fi }

MySQL

Exportiere die Tiki-Datenbank

if ! $mysqldump -u tiki -pPASSWORD tiki >/tmp/$datum"_umija_tiki_mysql.sql"; then report_error "$mysqldump for tiki DB cause $?\n" fi

Komprimiere die exportierten Daten

if ! $tar --remove-files -cjf /tmp/$datum"_umija_tiki_mysql.tar.bz2" /tmp/$datum"_umija_tiki_mysql.sql" > /dev/null; then report_error "compressing the tiki DB cause $?\n" fi

exportiere MediaWiki DB

if ! $mysqldump -u mediawiki -pPASSWORD mediawiki >/tmp/$datum"_mwiki_mysql.sql"; then report_error "$mysqldump for mwiki DB cause $?\n" fi

komprimiere MediaWiki DB

if ! $tar --remove-files -cjf /tmp/$datum"_mwiki_mysql.tar.bz2" /tmp/$datum"_mwiki_mysql.sql" > /dev/null; then report_error "compressing the mwiki DB cause $?\n" fi

aktuell installierte liste

$dpkg --get-selections > /tmp/$datum"umija_packages_list.txt" $dpkg -l > /tmp/$datum"_umija_packages_verb_list.txt" if ! $tar --remove-files -cjf /tmp/$datum"_umija_packages.tar.bz2" /tmp/$datum"_umija_packages"* > /dev/null; then report_error "compressing the packages list cause $?\n" fi

/etc/

if ! $tar -cjf /tmp/$datum"_umija_etc.tar.bz2" /etc/* > /dev/null; then report_error "compressing the /etc path cause $?\n" fi

UPLOAD

if test -e /tmp/$datum"_umija_backup_error.txt"; then /bin/cat /tmp/$datum"_umija_backup_error.txt" | /usr/bin/mail -s "UMIJA Backup failed" $eMAIL else cd /tmp/ for file in /usr/bin/find /tmp/$datum*.bz2 do if $ftp_up /usr/bin/basename $file; then /bin/rm $file else echo -e "ftp upload for $file failed" > $ftp_error /bin/cat $ftp_error | /usr/bin/mail -s "upload backup files for umija.org failed" $eMAIL rm $ftp_error exit fi done fi