Backuplösung für Rootserver: Difference between revisions

From Q
Jump to navigation Jump to search
Tgurr (talk | contribs)
No edit summary
Tgurr (talk | contribs)
No edit summary
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
=Konzept=
=Konzept=


=Verzeichnisstruktur=
{{Code|Verzeichnisstruktur|
<pre>
\root
\root\backup
\root\backup\bin    (Verzeichnis der Backupskripte etc)
\root\backup\htdocs  (Verzeichnis htdocs Backup)
\root\backup\mysql  (Verzeichnis MySQL Backup)
\root\backup\system  (Verzeichnis root Backup)
</pre>
}}


=Backup erstellen=
=Backup erstellen=
==MySQL==
==MySQL==
{{Box File|backup-mysql.sh|
<source lang="bash">
<pre>
#!/bin/bash
#!/bin/bash
date=`date -I`
date=`date -I`
Line 27: Line 38:
# backup all databases into one big file
# backup all databases into one big file
mysqldump --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS_FULLBACKUP | bzip2 -c > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2
mysqldump --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS_FULLBACKUP | bzip2 -c > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2
</pre>
</source>
}}




Line 34: Line 44:
=Verschlüsselung=
=Verschlüsselung=
==MySQL==
==MySQL==
{{Box File|backup-mysql.sh|
{{File|backup-mysql.sh|
<pre>
<pre lang="bash">
#!/bin/bash
#!/bin/bash
date=`date -I`
date=`date -I`
Line 70: Line 80:
}}
}}


 
=Cron Jobs=
==MySQL==


=Dateiübertragung=
=Dateiübertragung=

Latest revision as of 15:16, 27 July 2011

Konzept

Verzeichnisstruktur

Code: Verzeichnisstruktur
\root
\root\backup
\root\backup\bin     (Verzeichnis der Backupskripte etc)
\root\backup\htdocs  (Verzeichnis htdocs Backup)
\root\backup\mysql   (Verzeichnis MySQL Backup)
\root\backup\system  (Verzeichnis root Backup)

Backup erstellen

MySQL

#!/bin/bash
date=`date -I`

# configuration variables
USERNAME="backupuser"
PASSWORD="password"
DBHOST="localhost"
BACKUPDIR="/root/backups"

OPTS="--opt --allow-keywords --flush-logs --hex-blob --master-data --max_allowed_packet=16M --quote-names"
OPTS_FULLBACKUP="--all-databases --opt --allow-keywords --flush-logs --hex-blob --master-data --max_allowed_packet=16M --quote-names"

# backup each database into an individual file
DBNAMES="`mysql --user=$USERNAME --password=$PASSWORD --host=$DBHOST --batch --skip-column-names -e "show databases"| sed 's/ /%/g'`"
for i in $DBNAMES
do
mysqldump $i --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS | bzip2 -c > $BACKUPDIR/$i-$date.SQL.bz2
done

# backup all databases into one big file
mysqldump --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS_FULLBACKUP | bzip2 -c > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2


Verschlüsselung

MySQL

File: backup-mysql.sh
#!/bin/bash
date=`date -I`

# configuration variables
USERNAME="backupuser"
PASSWORD="password"
DBHOST="localhost"
BACKUPDIR="/root/backups"

# encryption variables
PGPMAILUSERPUB="backupuser@deltaquadrant.org"

OPTS="--opt --allow-keywords --flush-logs --hex-blob \
        --master-data --max_allowed_packet=16M --quote-names"
OPTS_FULLBACKUP="--all-databases --opt --allow-keywords --flush-logs --hex-blob \
        --master-data --max_allowed_packet=16M --quote-names"

# backup each database into an individual file
DBNAMES="`mysql --user=$USERNAME --password=$PASSWORD --host=$DBHOST \
        --batch --skip-column-names -e "show databases"| sed 's/ /%/g'`"
   for i in $DBNAMES
    do
     mysqldump $i --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS | bzip2 -c | \
        gpg --armor --encrypt --trust-model always \
        --recipient $PGPMAILUSERPUB - > $BACKUPDIR/$i-$date.SQL.bz2.gpg
    done

# backup all databases into one big file
mysqldump --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS_FULLBACKUP | bzip2 -c | \
        gpg --armor --encrypt --trust-model always \
        --recipient $PGPMAILUSERPUB - > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2.pgp

Cron Jobs

MySQL

Dateiübertragung

Konzept 1

  • ftp

Konzept 2

  • scponly & keyauth