Backuplösung für Rootserver: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (16 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
= | =Konzept= | ||
{{ | =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 | ||
</ | </source> | ||
= | =Verschlüsselung= | ||
{{ | ==MySQL== | ||
<pre> | {{File|backup-mysql.sh| | ||
<pre lang="bash"> | |||
#!/bin/bash | #!/bin/bash | ||
date=`date -I` | date=`date -I` | ||
| Line 55: | Line 69: | ||
do | do | ||
mysqldump $i --user=$USERNAME --password=$PASSWORD --host=$DBHOST $OPTS | bzip2 -c | \ | 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 | --recipient $PGPMAILUSERPUB - > $BACKUPDIR/$i-$date.SQL.bz2.gpg | ||
done | done | ||
| Line 61: | Line 75: | ||
# 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 | --recipient $PGPMAILUSERPUB - > $BACKUPDIR/FULLBACKUP-MYSQL-ALL-$date.SQL.bz2.pgp | ||
</pre> | </pre> | ||
}} | }} | ||
=Cron Jobs= | |||
==MySQL== | |||
=Dateiübertragung= | |||
= | ==Konzept 1== | ||
* ftp | |||
==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