henere
Goto Top

DB-Backup mit AutomySQLBackup

Hallo zusammen,

kann hier mal bitte jemand drüberschauen und mir sagen, ob ich das so richtig konfiguriert habe ?

root@www:/# more /etc/default/automysqlbackup
# By default, the Debian version of automysqlbackup will use:
# mysqldump --defaults-file=/etc/mysql/debian.cnf
# but you might want to overwrite with a specific user & pass.
# To do this, simply edit bellow.

# Username to access the MySQL server e.g. dbuser
#USERNAME=`grep user /etc/mysql/debian.cnf | tail -n 1 | cut -d"=" -f2 | awk '{print $1}'` 

# Username to access the MySQL server e.g. password
#PASSWORD=`grep password /etc/mysql/debian.cnf | tail -n 1 | cut -d"=" -f2 | awk '{print $1}'` 

# Host name (or IP address) of MySQL server e.g localhost
DBHOST=localhost

# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3" 
# Note that it's absolutely normal that the db named "mysql" is not in this 
# list, as it's added later by the script. See the MDBNAMES directives below 
# in this file (advanced options).
# This is ONLY a convenient default, if you don't like it, don't complain 
# and write your own.
# The following is a quick hack that will find the names of the databases by
# reading the mysql folder content. Feel free to replace by something else.
# DBNAMES=`find /var/lib/mysql -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f5 | grep -v ^mysql\$ | tr \\\r\\\n ,\ ` 
# This one does a list of dbs using a MySQL statement.
DBNAMES=`mysql --defaults-file=/etc/mysql/debian.cnf --execute="SHOW DATABASES" | awk '{print $1}' | grep -v ^Database$ | grep -v ^mysql$ | grep -v ^performance_schema$ | gre  
p -v ^information_schema$ | tr \\\r\\\n ,\ `

# Backup directory location e.g /backups
# Folders inside this one will be created (daily, weekly, etc.), and the
# subfolders will be database names. Note that backups will be owned by
# root, with Unix rights 0600.
BACKUPDIR="/backup/sql"  

# Mail setup
# What would you like to be mailed to you?
# - log   : send only log file
# - files : send log file and sql files as attachments (see docs)
# - stdout : will simply output the log to the screen if run manually.
# - quiet : Only send logs if an error occurs to the MAILADDR.
MAILCONTENT="log"  

# Set the maximum allowed email size in k. (4000 = approx 5MB email [see
# docs])
MAXATTSIZE="4000"  

# Email Address to send mail to? (user@domain.com)
MAILADDR="root"  

# ============================================================
# === ADVANCED OPTIONS ( Read the doc's below for details )=== 
#=============================================================

# List of DBBNAMES for Monthly Backups.
MDBNAMES="mysql $DBNAMES"  

# List of DBNAMES to EXLUCDE if DBNAMES are set to all (must be in " quotes) 
DBEXCLUDE=""  

# Include CREATE DATABASE in backup?
CREATE_DATABASE=yes

# Separate backup directory and file for each DB? (yes or no)
SEPDIR=yes

# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
#DOWEEKLY=6

#########################################
# Which day do you want monthly backups? (01 to 31)
# If the chosen day is greater than the last day of the month, it will be done
# on the last day of the month.
# Set to 0 to disable monthly backups.
CONFIG_do_monthly="01"  
# Which day do you want weekly backups? (1 to 7 where 1 is Monday)
# Set to 0 to disable weekly backups.
CONFIG_do_weekly="7"  
# Set rotation of daily backups. VALUE*24hours
# If you want to keep only today's backups, you could choose 1, i.e. everything older than 24hours will be removed. 
CONFIG_rotation_daily=7
# Set rotation for weekly backups. VALUE*24hours
CONFIG_rotation_weekly=14
# Set rotation for monthly backups. VALUE*24hours
CONFIG_rotation_monthly=30
########################################

# Choose Compression type. (gzip or bzip2)
COMP=gzip

# Compress communications between backup server and MySQL server?
COMMCOMP=no

# Additionally keep a copy of the most recent backup in a seperate
# directory.
LATEST=no

#  The maximum size of the buffer for client/server communication. e.g. 16MB
#  (maximum is 1GB)
MAX_ALLOWED_PACKET=

#  For connections to localhost. Sometimes the Unix socket file must be
#  specified.
SOCKET=

# Command to run before backups (uncomment to use)
#PREBACKUP="/etc/mysql-backup-pre" 

# Command run after backups (uncomment to use)
#POSTBACKUP="/etc/mysql-backup-post" 

# Backup of stored procedures and routines (comment to remove)
ROUTINES=yes

Dazu habe ich dann ein kleines Script geschrieben, das ich mit chmod ug+x ausführbar gemacht habe:

root@www:/# more /usr/local/bin/backupscript
#!/bin/sh
/usr/sbin/automysqlbackup
chown root.root /backup/* -R
find /backup/sql -type f -exec chmod 400 {} \;
find /backup/sql -type d -exec chmod 700 {} \;

Und in die Crontab eingetragen:

00 4 * * * /usr/local/bin/backupscript

Das Ding soll dann täglich um 4:00 Uhr laufen.

Wenn ich das backupscript manuell ausführe, dann legt er die Dateien an und schickt mir brav eine Email.
Was mich allerdings wundert, wenn ich es nochmal ausführe, löscht er das vorherige Backup. Laut der Doku und config sollte er das doch 1 Woche aufheben ?
Das steht dazu in der mail:

Daily Backup of Database ( GIKL-Forum )
Rotating last weeks Backup...
»/backup/sql/daily/GIKL-Forum/GIKL-Forum_2016-03-29_03h00m.Dienstag.sql.gz“ wurde entfernt

Danke vorab

Grüße, Henere

Content-Key: 300279

Url: https://administrator.de/contentid/300279

Ausgedruckt am: 29.03.2024 um 02:03 Uhr