#!/bin/bash #### xctb.sh #### XCTB - X Compression Tool Benchmarker # #### included compressor : # pigz gzip bzip2 pbzip2 lrzip rzip64 zstd pixz plzip xz # # apt-get install -y pigz gzip bzip2 pbzip2 lrzip rzip zstd pixz plzip # ####### set -x result=x_benchmark.csv source=$1 compressor_list=("pigz -f" "gzip -f" "bzip2 -f" "pbzip2 -f" "lrzip -f -D" "rzip -f" "zstd -f --rm" "pixz " "plzip -f" "xz -f") ext_file=("gz" "gz" "bz2" "bz2" "lrz" "rz" "zst" "xz" "lz" "xz") # clean slate rm $result i=0 echo \"Compression Tool\",\"Compress Time \(sec\)\",\"Compress Size \(MB\)\",\"Decompress Time \(sec\)\" >> $result for compress in "${compressor_list[@]}" do #### testing compression echo '\r\r Testing compression tool : $compress \r' #### record compression time start=`date +%s` $compress $source end=`date +%s` compress_time=$((end-start)) #### record compression size compress_size=$(ls -s --block-size=M $source.* | cut -f1 -d "M") #### record decompression time start=`date +%s` $compress -d $source.${ext_file[$i]} end=`date +%s` decompress_time=$((end-start)) echo \"$compress\",\"$compress_time\",\"$compress_size\",\"$decompress_time\" >> $result ((i=i+1)) done