@@ -110,23 +110,48 @@ fn_backup_create_lockfile() {
110110 trap fn_backup_trap INT
111111}
112112
113+ fn_select_compression () {
114+ if command -v zstd > /dev/null 2>&1 ; then
115+ compress_prog=" zstd"
116+ compress_ext=" tar.zst"
117+ compress_flag=" --zstd"
118+ elif command -v pigz > /dev/null 2>&1 ; then
119+ compress_prog=" pigz"
120+ compress_ext=" tar.gz"
121+ compress_flag=" --use-compress-program=pigz"
122+ elif command -v gzip > /dev/null 2>&1 ; then
123+ compress_prog=" gzip"
124+ compress_ext=" tar.gz"
125+ compress_flag=" --gzip"
126+ else
127+ compress_prog=" "
128+ compress_ext=" tar"
129+ compress_flag=" "
130+ fi
131+ }
132+
113133# Compressing files.
114134fn_backup_compression () {
115- # Tells how much will be compressed using rootdirduexbackup value from info_distro and prompt for continue.
135+ fn_select_compression
136+
116137 fn_print_info " A total of ${rootdirduexbackup} will be compressed."
117- fn_script_log_info " A total of ${rootdirduexbackup} will be compressed: ${backupdir} /${backupname} .tar.gz "
118- fn_print_dots " Backup (${rootdirduexbackup} ) ${backupname} .tar.gz , in progress ..."
119- fn_script_log_info " Backup ${rootdirduexbackup} ${backupname} .tar.gz , in progress"
138+ fn_script_log_info " A total of ${rootdirduexbackup} will be compressed: ${backupdir} /${backupname} .${compress_ext} "
139+ fn_print_dots " Backup (${rootdirduexbackup} ) ${backupname} .${compress_ext} , in progress ..."
140+ fn_script_log_info " Backup ${rootdirduexbackup} ${backupname} .${compress_ext} , in progress"
120141 excludedir=$( fn_backup_relpath)
121142
122- # Check that excludedir is a valid path.
123143 if [ ! -d " ${excludedir} " ]; then
124144 fn_print_fail_nl " Problem identifying the previous backup directory for exclusion."
125145 fn_script_log_fail " Problem identifying the previous backup directory for exclusion"
126146 core_exit.sh
127147 fi
128148
129- tar --use-compress-program=pigz -hcf " ${backupdir} /${backupname} .tar.gz" -C " ${rootdir} " --exclude " ${excludedir} " --exclude " ${lockdir} " --exclude " ${tmpdir} " ./.
149+ if [ -n " ${compress_flag} " ]; then
150+ tar ${compress_flag} -hcf " ${backupdir} /${backupname} .${compress_ext} " -C " ${rootdir} " --exclude " ${excludedir} " --exclude " ${lockdir} " --exclude " ${tmpdir} " ./.
151+ else
152+ tar -hcf " ${backupdir} /${backupname} .${compress_ext} " -C " ${rootdir} " --exclude " ${excludedir} " --exclude " ${lockdir} " --exclude " ${tmpdir} " ./.
153+ fi
154+
130155 exitcode=$?
131156 if [ " ${exitcode} " -ne 0 ]; then
132157 fn_print_fail_eol
@@ -136,8 +161,8 @@ fn_backup_compression() {
136161 fn_script_log_fail " Starting backup"
137162 else
138163 fn_print_ok_eol
139- fn_print_ok_nl " Completed: ${italic}${backupname} .tar.gz ${ default} , total size $( du -sh " ${backupdir} /${backupname} .tar.gz " | awk ' {print $1}' ) "
140- fn_script_log_pass " Backup created: ${backupname} .tar.gz , total size $( du -sh " ${backupdir} /${backupname} .tar.gz " | awk ' {print $1}' ) "
164+ fn_print_ok_nl " Completed: ${italic}${backupname} .${compress_ext}${ default} , total size $( du -sh " ${backupdir} /${backupname} .${compress_ext} " | awk ' {print $1}' ) "
165+ fn_script_log_pass " Backup created: ${backupname} .${compress_ext} , total size $( du -sh " ${backupdir} /${backupname} .${compress_ext} " | awk ' {print $1}' ) "
141166 alert=" backup"
142167 alert.sh
143168 fi
0 commit comments