Changes of Revision 7
[-] | Changed | automysqlbackup.spec |
x 1
2 Name: automysqlbackup 3 -Version: 2.6.8 4 +Version: 2.6.9 5 Release: 1 6 Group: System/Backup 7 Summary: MySQL backup script 8
9 Source1: multimysqlbackup.sh 10 Source2: multimysqlbackup.conf 11 Source3: automysqlbackup.8 12 -Requires: bzip2 mysql mutt 13 +Requires: bzip2 mutt 14 +Requires: /usr/bin/mysqldump 15 Provides: multimysqlbackup = %{version} 16 Provides: ix-automysqlbackup = %{version} 17 Provides: psa-automysqlbackup = %{version} 18 |
||
[+] | Added | automysqlbackup-2.6.9.sh ^ |
@@ -0,0 +1,1099 @@ +#!/bin/bash +# +# MySQL Backup Script +# VER. 2.6.8 - 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) +#===================================================================== +#set -x +CONFIGFILE="/etc/automysqlbackup/automysqlbackup.conf" + +if [ -r ${CONFIGFILE} ]; then + # Read the configfile if it's existing and readable + source ${CONFIGFILE} +else + # do inline-config otherwise + # To create a configfile just copy the code between "### START CFG ###" and "### END CFG ###" + # to /etc/automysqlbackup/automysqlbackup.conf. After that you're able to upgrade this script + # (copy a new version to its location) without the need for editing it. + ### START CFG ### + # Username to access the MySQL server e.g. dbuser + USERNAME=`echo ${USERNAME:=dbuser}` + + # Password to access the MySQL server e.g. password + PASSWORD=`echo ${PASSWORD:=password}` + + # Host name (or IP address) of MySQL server e.g localhost + DBHOST=`echo ${DBHOST:=localhost}` + + # Port where MYSQL Server is listening + DBPORT=`echo ${DBPORT:=3306}` + + # List of DBNAMES for Daily/Weekly Backup e.g. "DB1 DB2 DB3" + DBNAMES=`echo ${DBNAMES:="DB1 DB2 DB3"}` + + # Backup directory location e.g /backups + BACKUPDIR=`echo ${BACKUPDIR:="/backup/mysql/${DBHOST}"}` + + # 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="quiet" + + # 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=`echo ${MAILADDR:="maintenance@example.com"}` + + # Email Address to send mail from? (root@host.tld) + FROMADDR="automysqlbackup@`hostname -f`" + + # ============================================================ + # === ADVANCED OPTIONS ( Read the doc's below for details )=== + #============================================================= + + # List of DBBNAMES for Monthly Backups. + MDBNAMES="${DBNAMES}" + + # List of DBNAMES to EXLUCDE if DBNAMES are set to all (must be in " quotes) + DBEXCLUDE=`echo ${DBEXCLUDE:=""}` + + # List of tables to exclude. Space-separated, with db name, e.g. "db1.table1 d2.table2" + TABLEEXCLUDE=`echo ${TABLEEXCLUDE:=""}` + + # 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=`echo ${COMP:="bzip2"}` + + # Use pipe compress + PIPECOMP=yes + + # 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= + + # Backup databases per table work if SEPDIR set to `yes' + PERTABLE=yes + + # 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" + + # doesn't show messages about rotating backups + QUIETROTA=`echo ${QUIETROTA:="no"}` + ### END CFG ### +fi + +#===================================================================== +# Options documantation +#===================================================================== +# Set USERNAME and PASSWORD of a user that has the appropriate permissions +# to backup ALL databases. (See mysql documentation for details) +# NEW in 2.5.1: +# - If USERNAME is set to "debian" and PASSWORD is unset or "" obtain +# them from the file /etc/mysql/debian.cnf +# - First command line option "-c" for configfile +# - Interpretable Exit-States: +# 1: given configfile is not readable or does not exist +# 2: unknown option +# +# 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 | ||
[+] | Changed | multimysqlbackup.conf ^ |
@@ -5,5 +5,5 @@ # host;user;password;databases_separated_by_spaces;exclude_databases;exclude_tables # samples: # localhost;root;;all; -# localhost:port;root;password;mysql my_first_database my_second_database;exclude1_db exclude2_db;exclude3_db.exclude_table1 exclude4_db.exclude_table2 +# localhost:port;root;password;mysql my_first_database my_second_database;exclude1_db exclude2_db;exclude3_db.exclude_table1 exclude4_db.exclude_table2;bzip2;no | ||
[+] | Changed | multimysqlbackup.sh ^ |
@@ -2,17 +2,24 @@ # # Name: multimysqlbackup # Summary: wrapper for automysqlbackup to backup multiple hosts -# Version: 0.2 +# Version: 0.3 # Author: Carsten Schoene <cs@linux-administrator.com> -# Last change: 21-10-2011 +# Last change: 23-08-2021 # ############################################################################### # path to host,db definitions CONFPATH="/etc/multimysqlbackup.conf" +if [ $# -gt 0 ]; then + # include custom config + if [ -f "$1" ] ; then + CONFPATH="$1" + fi +fi + # path to mysql backup script -AUTOMYSQLBACKUP="/usr/sbin/automysqlbackup" +AUTOMYSQLBACKUP="$(which automysqlbackup 2>/dev/null)" # lock each job LOCKJOB=1 @@ -38,6 +45,8 @@ export DBNAMES=`echo ${LINE} | awk -F\; '{print $4}'|sed -e s@"%20%"@" "@g` export DBEXCLUDE=`echo ${LINE} | awk -F\; '{print $5}'|sed -e s@"%20%"@" "@g` export TABLEEXCLUDE=`echo ${LINE} | awk -F\; '{print $6}'|sed -e s@"%20%"@" "@g` + export COMP=`echo ${LINE} | awk -F\; '{print $7}'|sed -e s@"%20%"@" "@g` + export QUIETROTA=`echo ${LINE} | awk -F\; '{print $8}'|sed -e s@"%20%"@" "@g` if [ ! -f /var/lock/${DBHOST}.lock ] && [ "${LOCKJOB}" == "1" ] ; then @@ -69,6 +78,8 @@ export DBNAMES="all" export DBEXCLUDE="" export TABLEEXCLUDE="" + export COMP="bzip2" + export QUIETROTA="no" if [ ! -f /var/lock/${DBHOST}.lock ] && [ "${LOCKJOB}" == "1" ] ; then touch /var/lock/${DBHOST}.lock |