Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/sh
- MYDUMPER=/usr/bin/mydumper
- _MYDUMPER_OPTS=""
- pre() {
- :
- }
- post() {
- :
- }
- _yesno() {
- [ -z "${1}" ] && return 1
- case "${1}" in
- [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|[Oo][Nn]|1) return 0;;
- [Nn][Oo]|[Ff][Aa][Ll][Ss][Ee]|[Oo][Ff][Ff]|0) return 1;;
- esac
- return 1
- }
- _add_opts() {
- local args="${*}"
- _MYDUMPER_OPTS="${_MYDUMPER_OPTS:+${_MYDUMPER_OPTS}} ${args}"
- echo "DEBUG: ${_MYDUMPER_OPTS}"
- }
- die() {
- echo $* >&2
- exit 1
- }
- # Try to parse a default config
- [ -e "/etc/mydumper-backup.conf" ] && {
- . "/etc/mydumper-backup.conf" || die "Error: Parsing /etc/mydumper-backup.conf failed!"
- }
- # Parse additional configs first, other options than "c" will be preserved.
- while getopts :C: name; do
- case $name in
- C)
- . "${OPTARG}" || die "Error: Parsing ${OPTARG} failed!"
- shift $(($OPTIND - 1))
- continue
- ;;
- esac
- done
- OPTIND=1 # Reset OPTIND
- # Commandline opts will override the settings from the default/additional
- # confgis.
- while getopts B:T:o:x:L:h:P:S:u:p:t:bc name; do
- case $name in
- B) MD_DATABASE=${OPTARG}; echo "EHEHEHE"; continue;;
- T) MD_TABLES="${OPTARG}"; continue;;
- o) MD_OUTPUTDIR=$OPTARG; continue;;
- x) MD_REGEX=$OPTARG; continue;;
- L) MD_LOGFILE=$OPTARG; continue;;
- h) MD_HOST=$OPTARG; continue;;
- P) MD_PORT=$OPTARG; continue;;
- S) MD_SOCKET=$OPTARG; continue;;
- u) MD_USER=$OPTARG; continue;;
- p) MD_PASSWORD=$OPTARG; continue;;
- t) MD_THREADS=$OPTARG; continue;;
- b) MD_BINLOGS=1; continue;;
- c) MD_COMPRESS=1; continue;;
- esac
- done
- shift $(($OPTIND - 1))
- # Try to use the MySQL socket by default
- [ -z "${MD_HOST}" -a -z "${MD_PORT}" -a -z "${MD_SOCKET}" -a -e /var/run/mysqld.sock ] && _add_opts "--socket /var/run/mysqld.sock"
- [ -n "${MD_DATABASE}" ] && _add_opts "--database ${MD_DATABASE}"
- [ -n "${MD_TABLES}" ] && _add_opts "--table-list ${MD_TABLES}"
- [ -n "${MD_OUTPUTDIR}" ] && _add_opts "--outputdir ${MD_OUTPUTDIR}"
- [ -n "${MD_REGEX}" ] && _add_opts "--regex ${MD_REGEX}"
- [ -n "${MD_LOGFILE}" ] && _add_opts "--logfile ${MD_LOGFILE}"
- [ -n "${MD_HOST}" ] && _add_opts "--host ${MD_HOST}"
- [ -n "${MD_PORT}" ] && _add_opts "--port ${MD_PORT}"
- [ -n "${MD_SOCKET}" ] && _add_opts "--socket ${MD_SOCKET}"
- [ -n "${MD_THREADS}" ] && _add_opts "--threads ${MD_THREADS}"
- [ -n "${MD_USER}" ] && _add_opts "--user ${MD_USER}"
- [ -n "${MD_PASSWORD}" ] && _add_opts "--password ${MD_PASSWORD}"
- [ -n "${MYDUMPER_OPTS}" ] && _add_opts ${MYDUMPER_OPTS}
- if _yesno ${MD_COMPRESS}; then
- _add_opts "--compress"
- fi
- if _yesno ${MD_BINLOGS}; then
- _add_opts "--binlogs"
- fi
- pre || die "Error: running pre() failed!"
- echo "_MYDUMPER_OPTS: ${_MYDUMPER_OPTS}"
- echo "REST: $*"
- #echo $MYDUMPER $_MYDUMPER_OPTS $*
- post || die "Error: running post() failed!"
Add Comment
Please, Sign In to add comment