echo " MySQL server password [\"$MYPW\"]".
echo " --outfile|-o <file>"
echo " Path and name of SQL dump file [\"$OUTFILE\"]."
+ echo " --outdir|-d <directory>"
+ echo " Directory for automatically named dump files."
echo " --summary|-s"
echo " Display file and file system status summary."
echo
OUTFILE="$2"
shift 2
;;
+ "--outdir"|"-d")
+ [ $# -ge 2 ] || Usage
+ OUTFILE="$2/$(hostname -s)-$(date "+%Y%m%d-%H%M%S").sql"
+ shift 2
+ ;;
"--summary"|"-s")
STATS=1
shift
done
echo "Dumping MySQL server on \"$MYHOST\" (user \"$MYUSER\"):"
+echo "Started: $(date)"
umask 0077
[ -n "$MYPW" ] && PWSWITCH="--password='$MYPW'" || PWSWITCH=""
DATABASES=$(
mysql -h "$MYHOST" -u "$MYUSER" $PWSWITCH -e 'show databases' \
| grep "^\| " | cut -d' ' -f2 | grep -v "Database" \
- | grep -v "information_schema" | grep -v "mysql"
+ | grep -v "information_schema" \
+ | grep -v "performance_schema" \
+ | grep -v "mysql"
)
if [ $? -ne 0 ]; then
echo "Failed to get list of databases! Aborting!"
-h $MYHOST \
-u $MYUSER \
$PWSWITCH \
- --single-transaction \
+ --master-data=1 \
--databases $DATABASES"
-echo "Start: $(date)"
+echo "Start date: $(date)"
echo $CMD
$CMD >"$OUTFILE"; r=$?
echo "End: $(date)"
-
-[ $r -eq 0 ] \
- && echo "Dump command exited with code 0, success." \
- || echo "Dump command FAILED with code $r!" >&2
+echo
if [ -e "$OUTFILE" -a -n "$STATS" ]; then
- echo
echo "SQL dump file"
ls -lh "$OUTFILE"
echo
echo
fi
+[ $r -eq 0 ] \
+ && echo "Dump command exited with code 0, success." \
+ || echo "Dump command FAILED with code $r!" >&2
+
+echo
exit $r