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