3 # mkmysqldump -- dump MySQL (master) data
4 # Copyright (c)2015 Alexander Barton <alex@barton.de>
13 OUTFILE="$(hostname -s)-$(date "+%Y%m%d-%H%M%S").sql"
18 echo "$NAME [<options> ...]"
20 echo " --host|-h <host>"
21 echo " MySQL server hostname [\"$MYHOST\"]."
22 echo " --user|-u <user>"
23 echo " MySQL server user [\"$MYUSER\"]."
24 echo " --password|-p <password>"
25 echo " MySQL server password [\"$MYPW\"]".
26 echo " --outfile|-o <file>"
27 echo " Path and name of SQL dump file [\"$OUTFILE\"]."
28 echo " --outdir|-d <directory>"
29 echo " Directory for automatically named dump files."
31 echo " Display file and file system status summary."
33 echo " Compress SQL dump file using gzip(1)"
35 echo " Compress SQL dump file using bzip2(1)"
37 echo " Compress SQL dump file using xz(1)"
48 echo "-----> THERE HAVE BEEN ERRORS! <-----"
52 for cmd in mysql mysqldump; do
53 if ! which "$cmd" >/dev/null 2>&1; then
54 echo "$NAME: \"$cmd\" command not found!"
59 while [ $# -gt 0 ]; do
83 OUTFILE="$2/$(hostname -s)-$(date "+%Y%m%d-%H%M%S").sql"
111 echo "Dumping MySQL server on \"$MYHOST\" (user \"$MYUSER\"):"
112 echo "Started: $(date)"
115 [ -n "$MYPW" ] && PWSWITCH="--password='$MYPW'" || PWSWITCH=""
117 echo "Getting list of databases from server ..."
119 mysql -h "$MYHOST" -u "$MYUSER" $PWSWITCH -e 'show databases' \
120 | grep "^\| " | cut -d' ' -f2 | grep -v "Database" \
121 | grep -v "information_schema" \
122 | grep -v "performance_schema" \
125 if [ $? -ne 0 ]; then
126 echo "Failed to get list of databases! Aborting!"
131 echo "Dumping SQL data to file \"$OUTFILE\" ..."
137 --databases $DATABASES"
139 echo "Start date: $(date)"
141 $CMD >"$OUTFILE"; r=$?
142 if [ -n "$COMPRESS" -a -s "$OUTFILE" -a $r -eq 0 ]; then
143 echo "Dump done: $(date)"
144 echo "Compressing dump file ($COMPRESS) ..."
150 if [ -n "$STATS" ]; then
152 for f in "$OUTFILE"*; do
156 df -h "$(dirname "$OUTFILE")"
160 if [ $r -eq 0 ]; then
161 echo "Dump command exited with code 0, success."
163 echo "Dump command FAILED with code $r!" >&2