[-]
[+]
|
Changed |
automysqlbackup.spec
|
|
[-]
[+]
|
Added |
automysqlbackup.sh.multihost_per_environment.patch
^
|
@@ -0,0 +1,27 @@
+--- automysqlbackup.sh.2.5.orig 2009-05-23 17:58:36.000000000 +0200
++++ automysqlbackup.sh.2.5 2009-05-23 18:00:01.000000000 +0200
+@@ -25,19 +25,19 @@
+ #=====================================================================
+
+ # Username to access the MySQL server e.g. dbuser
+-USERNAME=dbuser
++USERNAME:=dbuser
+
+ # Username to access the MySQL server e.g. password
+-PASSWORD=password
++PASSWORD:=password
+
+ # Host name (or IP address) of MySQL server e.g localhost
+-DBHOST=localhost
++DBHOST:=localhost
+
+ # List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
+-DBNAMES="DB1 DB2 DB3"
++DBNAMES:="DB1 DB2 DB3"
+
+ # Backup directory location e.g /backups
+-BACKUPDIR="/backups"
++BACKUPDIR:="/backups/${DBHOST}"
+
+ # Mail setup
+ # What would you like to be mailed to you?
|
[-]
[+]
|
Changed |
automysqlbackup.sh.2.5
^
|
@@ -25,19 +25,19 @@
#=====================================================================
# Username to access the MySQL server e.g. dbuser
-USERNAME=dbuser
+USERNAME:=dbuser
# Username to access the MySQL server e.g. password
-PASSWORD=password
+PASSWORD:=password
# Host name (or IP address) of MySQL server e.g localhost
-DBHOST=localhost
+DBHOST:=localhost
# List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3"
-DBNAMES="DB1 DB2 DB3"
+DBNAMES:="DB1 DB2 DB3"
# Backup directory location e.g /backups
-BACKUPDIR="/backups"
+BACKUPDIR:="/backups/${DBHOST}"
# Mail setup
# What would you like to be mailed to you?
|
[-]
[+]
|
Added |
automysqlbackup.sh.2.5.orig
^
|
@@ -0,0 +1,688 @@
+#!/bin/bash
+#
+# MySQL Backup Script
+# VER. 2.5 - http://sourceforge.net/projects/automysqlbackup/
+# Copyright (c) 2002-2003 wipe_out@lycos.co.uk
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+#=====================================================================
+#=====================================================================
+# Set the following variables to your system needs
+# (Detailed instructions below variables)
+#=====================================================================
+
+# Username to access the MySQL server e.g. dbuser
+USERNAME=dbuser
+
+# Username to access the MySQL server e.g. password
+PASSWORD=password
+
+# 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"
+DBNAMES="DB1 DB2 DB3"
+
+# Backup directory location e.g /backups
+BACKUPDIR="/backups"
+
+# 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="stdout"
+
+# 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="user@domain.com"
+
+
+# ============================================================
+# === 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
+
+# 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"
+
+#=====================================================================
+# Options documantation
+#=====================================================================
+# Set USERNAME and PASSWORD of a user that has at least SELECT permission
+# to ALL databases.
+#
+# Set the DBHOST option to the server you wish to backup, leave the
+# default to backup "this server".(to backup multiple servers make
+# copies of this file and set the options for that server)
+#
+# Put in the list of DBNAMES(Databases)to be backed up. If you would like
+# to backup ALL DBs on the server set DBNAMES="all".(if set to "all" then
+# any new DBs will automatically be backed up without needing to modify
+# this backup script when a new DB is created).
+#
+# If the DB you want to backup has a space in the name replace the space
+# with a % e.g. "data base" will become "data%base"
+# NOTE: Spaces in DB names may not work correctly when SEPDIR=no.
+#
+# You can change the backup storage location from /backups to anything
+# you like by using the BACKUPDIR setting..
+#
+# The MAILCONTENT and MAILADDR options and pretty self explanitory, use
+# these to have the backup log mailed to you at any email address or multiple
+# email addresses in a space seperated list.
+# (If you set mail content to "log" you will require access to the "mail" program
+# on your server. If you set this to "files" you will have to have mutt installed
+# on your server. If you set it to "stdout" it will log to the screen if run from
+# the console or to the cron job owner if run through cron. If you set it to "quiet"
+# logs will only be mailed if there are errors reported. )
+#
+# MAXATTSIZE sets the largest allowed email attachments total (all backup files) you
+# want the script to send. This is the size before it is encoded to be sent as an email
+# so if your mail server will allow a maximum mail size of 5MB I would suggest setting
+# MAXATTSIZE to be 25% smaller than that so a setting of 4000 would probably be fine.
+#
+# Finally copy automysqlbackup.sh to anywhere on your server and make sure
+# to set executable permission. You can also copy the script to
+# /etc/cron.daily to have it execute automatically every night or simply
+# place a symlink in /etc/cron.daily to the file if you wish to keep it
+# somwhere else.
+# NOTE:On Debian copy the file with no extention for it to be run
+# by cron e.g just name the file "automysqlbackup"
+#
+# Thats it..
+#
+#
+# === Advanced options doc's ===
+#
+# The list of MDBNAMES is the DB's to be backed up only monthly. You should
+# always include "mysql" in this list to backup your user/password
+# information along with any other DBs that you only feel need to
+# be backed up monthly. (if using a hosted server then you should
+# probably remove "mysql" as your provider will be backing this up)
+# NOTE: If DBNAMES="all" then MDBNAMES has no effect as all DBs will be backed
+# up anyway.
+#
+# If you set DBNAMES="all" you can configure the option DBEXCLUDE. Other
+# wise this option will not be used.
+# This option can be used if you want to backup all dbs, but you want
+# exclude some of them. (eg. a db is to big).
+#
+# Set CREATE_DATABASE to "yes" (the default) if you want your SQL-Dump to create
+# a database with the same name as the original database when restoring.
+# Saying "no" here will allow your to specify the database name you want to
+# restore your dump into, making a copy of the database by using the dump
+# created with automysqlbackup.
+# NOTE: Not used if SEPDIR=no
+#
+# The SEPDIR option allows you to choose to have all DBs backed up to
+# a single file (fast restore of entire server in case of crash) or to
+# seperate directories for each DB (each DB can be restored seperately
+# in case of single DB corruption or loss).
+#
+# To set the day of the week that you would like the weekly backup to happen
+# set the DOWEEKLY setting, this can be a value from 1 to 7 where 1 is Monday,
+# The default is 6 which means that weekly backups are done on a Saturday.
+#
+# COMP is used to choose the copmression used, options are gzip or bzip2.
+# bzip2 will produce slightly smaller files but is more processor intensive so
+# may take longer to complete.
+#
+# COMMCOMP is used to enable or diable mysql client to server compression, so
+# it is useful to save bandwidth when backing up a remote MySQL server over
+# the network.
+#
+# LATEST is to store an additional copy of the latest backup to a standard
+# location so it can be downloaded bt thrid party scripts.
+#
+# If the DB's being backed up make use of large BLOB fields then you may need
+# to increase the MAX_ALLOWED_PACKET setting, for example 16MB..
+#
+# When connecting to localhost as the DB server (DBHOST=localhost) sometimes
+# the system can have issues locating the socket file.. This can now be set
+# using the SOCKET parameter.. An example may be SOCKET=/private/tmp/mysql.sock
+#
+# Use PREBACKUP and POSTBACKUP to specify Per and Post backup commands
+# or scripts to perform tasks either before or after the backup process.
+#
+#
+#=====================================================================
+# Backup Rotation..
+#=====================================================================
|
[-]
[+]
|
Added |
multimysqlbackup.conf
^
|
@@ -0,0 +1,9 @@
+# sample automysqlbackup config file
+# define hosts , access data and databases
+#
+# format:
+# host;user;password;databases_separated_by_spaces
+# samples:
+# localhost;root;;all
+# localhost;root;password;mysql my_first_database my_second_database
+
|
[-]
[+]
|
Added |
multimysqlbackup.sh
^
|
@@ -0,0 +1,54 @@
+#!/bin/bash
+#
+# Name: multimysqlbackup
+# Summary: wrapper for automysqlbackup to backup multiple hosts
+# Version: 0.1
+# Author: Carsten Schoene <cs@linux-administrator.com>
+# Last change: 23-05-2009
+#
+###############################################################################
+
+# path to host,db definitions
+CONFPATH=/etc/multimysqlbackup.conf
+
+# path to mysql backup script
+AUTOMYSQLBACKUP=/usr/sbin/automysqlbackup
+
+# lock each job
+LOCKJOB=1
+
+###############################################################################
+if [ -s ${CONFPATH} ] ; then
+
+ # set new IFS
+ IFS="\t\n"
+
+ for LINE in `cat ${CONFPATH} | grep -v ^#` ; do
+
+ # format: host;user;password;databases_separated_by_spaces
+
+ export DBHOST=`echo ${LINE} | awk -F\; '{print $1}'`
+ export USERNAME=`echo ${LINE} | awk -F\; '{print $2}'`
+ export PASSWORD=`echo ${LINE} | awk -F\; '{print $3}'`
+ export DBNAMES=`echo ${LINE} | awk -F\; '{print $4}'`
+
+ if [ ! -f /var/lock/${DBHOST}.lock && "${LOCKJOB}" == "1" ] ; then
+
+ touch /var/lock/${DBHOST}.lock
+ ${AUTOMYSQLBACKUP}
+ rm -f /var/lock/${DBHOST}.lock
+
+ elif [ "${LOCKJOB}" == "0" ] ; then
+ ${AUTOMYSQLBACKUP}
+ else
+ echo "LOCKJOB is enabled and /var/lock/${DBHOST}.lock file was found, please check. Script skips backup for host: ${DBHOST}"
+ exit 2
+ fi
+ done
+
+else
+
+ echo "Config file not found: ${CONFPATH}"
+ exit 1
+fi
+
|