#!/bin/bash host=$1 user=$2 password=$3 echo '' > $0.queue databases=$(mysql -h $host -u $user -p$password -e "show databases" -sN | grep -v information_schema | grep -v mysql | grep -v sys) for database in $databases; do for table in $(mysql -h $host -u $user -p"$password" -N -B -e "show tables from \`$database\`"); do echo $database $table >> $0.queue done done xargs -P20 -a $0.queue -n2 -I{} -t bash -c "mysqldump --compress -h $host -u $user -p'$password' {} > /dev/null" | tee $0.log