Backuplösung für Rootserver: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| (24 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 23: | 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== | |||
{{File|backup-mysql.sh| | |||
<pre lang="bash"> | |||
#!/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 | |||
</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