diff --git a/README.md b/README.md index 955f6ff..a5b6f8e 100644 --- a/README.md +++ b/README.md @@ -34,6 +34,8 @@ this option sets the transaction isolation mode to REPEATABLE READ and sends a S compress dump using gzip **-x, --xz** compress dump using xz +**--xz-threads** +number of worker threads to use by xz **-m, --master** set master data in dump **-q, --quiet** diff --git a/mysql_backup.sh b/mysql_backup.sh index b9975e7..01585f6 100755 --- a/mysql_backup.sh +++ b/mysql_backup.sh @@ -17,6 +17,7 @@ usage() echo "-s | --single-transaction" echo "-z | --gzip :: compress dump using gzip" echo "-x | --xz :: compress dump using xz" + echo "--xz-threads :: xz threads (0 - all CPUs)" echo "-m | --master :: set master data" echo "-q | --quiet :: silent mode" echo "--pid-file :: pid file default ${pidfile}" @@ -56,6 +57,9 @@ while [ "${1}" != "" ]; do ;; -x | --xz ) xz=1 ;; + --xz-threads ) shift + xz_threads=${1} + ;; -m | --master ) master=1 -q | --quiet ) quiet=1 ;; @@ -76,6 +80,11 @@ then copies=10 fi +if [ "${xz_threads}" = "" ] || [ ! -n "${xz_threads}" ] || [ "${xz_threads}" -le "0" ] ; +then + xz_threads=2 +fi + if [ "${dir}" = "" ] || [ ! -d ${dir} ] ; then error "Directory '${dir}' does not exists!" ; @@ -163,7 +172,7 @@ else echo "Compressing dump by xz (`date +\"%H:%M:%S\"`)..." ; fi - xz -T2 ${dump_file_name} ; + xz --threads=${xz_threads} ${dump_file_name} ; fi fi