X-Git-Url: https://arthur.barton.de/gitweb/?p=MkMySqlDump.git;a=blobdiff_plain;f=bin%2Fmkmysqldump;h=cd0fac48db470ce56546782fbfdcbd0654620344;hp=4093768d81b7064fdf9ac9460742c699ba6ed28a;hb=b98b6092852e200f60e5b381763326d8f420e7cf;hpb=628a147148ccbea232c9881b1231dadd84924300 diff --git a/bin/mkmysqldump b/bin/mkmysqldump index 4093768..cd0fac4 100755 --- a/bin/mkmysqldump +++ b/bin/mkmysqldump @@ -12,6 +12,7 @@ MYUSER="root" MYPW="" OUTFILE="$(hostname -s)-$(date "+%Y%m%d-%H%M%S").sql" STATS="" +COMPRESS="" Help() { echo "$NAME [ ...]" @@ -28,6 +29,12 @@ Help() { echo " Directory for automatically named dump files." echo " --summary|-s" echo " Display file and file system status summary." + echo " --gzip" + echo " Compress SQL dump file using gzip(1)" + echo " --bzip2" + echo " Compress SQL dump file using bzip2(1)" + echo " --xz" + echo " Compress SQL dump file using xz(1)" echo } @@ -36,6 +43,12 @@ Usage() { exit 2 } +ErrorNotice() { + echo + echo "-----> THERE HAVE BEEN ERRORS! <-----" + echo +} + for cmd in mysql mysqldump; do if ! which "$cmd" >/dev/null 2>&1; then echo "$NAME: \"$cmd\" command not found!" @@ -70,6 +83,18 @@ while [ $# -gt 0 ]; do OUTFILE="$2/$(hostname -s)-$(date "+%Y%m%d-%H%M%S").sql" shift 2 ;; + "--gzip") + COMPRESS="gzip -v" + shift + ;; + "--bzip2") + COMPRESS="bzip2 -v" + shift + ;; + "--xz") + COMPRESS="xz -v" + shift + ;; "--summary"|"-s") STATS=1 shift @@ -99,6 +124,7 @@ DATABASES=$( ) if [ $? -ne 0 ]; then echo "Failed to get list of databases! Aborting!" + ErrorNotice exit 1 fi @@ -113,20 +139,30 @@ CMD="mysqldump \ echo "Start date: $(date)" echo $CMD $CMD >"$OUTFILE"; r=$? +if [ -n "$COMPRESS" -a -s "$OUTFILE" -a $r -eq 0 ]; then + echo "Dump done: $(date)" + echo "Compressing dump file ($COMPRESS) ..." + $COMPRESS "$OUTFILE" +fi echo "End: $(date)" echo -if [ -e "$OUTFILE" -a -n "$STATS" ]; then +if [ -n "$STATS" ]; then echo "SQL dump file" - ls -lh "$OUTFILE" + for f in "$OUTFILE"*; do + ls -lh "$f"* + done echo - df -h "$OUTFILE" + df -h "$(dirname "$OUTFILE")" echo fi -[ $r -eq 0 ] \ - && echo "Dump command exited with code 0, success." \ - || echo "Dump command FAILED with code $r!" >&2 +if [ $r -eq 0 ]; then + echo "Dump command exited with code 0, success." +else + echo "Dump command FAILED with code $r!" >&2 + ErrorNotice +fi echo exit $r