Backuplösung für Rootserver: Difference between revisions

From Q
Jump to navigation Jump to search
No edit summary
Tgurr (talk | contribs)
No edit summary
 
(18 intermediate revisions by 2 users not shown)
Line 1: Line 1:
=Teil 1: MYSQL Backup erstellen=
=Konzept=


{{Box File|backup-mysql.sh|
=Verzeichnisstruktur=
 
{{Code|Verzeichnisstruktur|
<pre>
<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=
==MySQL==
<source lang="bash">
#!/bin/bash
#!/bin/bash
date=`date -I`
date=`date -I`
Line 24: 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>
}}






=Teil 2: Verschlüsselung=
=Verschlüsselung=
{{Box File|backup-mysql.sh|
==MySQL==
<pre>
{{File|backup-mysql.sh|
<pre lang="bash">
#!/bin/bash
#!/bin/bash
date=`date -I`
date=`date -I`
Line 42: Line 56:


# encryption variables
# encryption variables
PGPMAILUSERPUB="a.backup.user@deltaquadrant.org"
PGPMAILUSERPUB="backupuser@deltaquadrant.org"


OPTS="--opt --allow-keywords --flush-logs --hex-blob --master-data --max_allowed_packet=16M --quote-names"
OPTS="--opt --allow-keywords --flush-logs --hex-blob \
OPTS_FULLBACKUP="--all-databases --opt --allow-keywords --flush-logs --hex-blob --master-data --max_allowed_packet=16M --quote-names"
        --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
# 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'`"
DBNAMES="`mysql --user=$USERNAME --password=$PASSWORD --host=$DBHOST \
for i in $DBNAMES
        --batch --skip-column-names -e "show databases"| sed 's/ /%/g'`"
do
  for i in $DBNAMES
mysqldump $i --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS | bzip2 -c | \
    do
gpg --armor --encrypt --trust-model always --recipient $PGPMAILUSERPUB - > $BACKUPDIR/$i-$date.SQL.bz2.gpg
    mysqldump $i --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS | bzip2 -c | \
done
        gpg --armor --encrypt --trust-model always \
        --recipient $PGPMAILUSERPUB - > $BACKUPDIR/$i-$date.SQL.bz2.gpg
    done


# 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 | \
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
        gpg --armor --encrypt --trust-model always \
        --recipient $PGPMAILUSERPUB - > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2.pgp
</pre>
</pre>
}}
}}


=Cron Jobs=
==MySQL==


 
=Dateiübertragung=
=Teil 3: Dateiübertragung=
==Konzept 1==
work in progress
* ftp
- scponly & keyauth
==Konzept 2==
* scponly & keyauth

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