diff --git a/hanatool.sh b/hanatool.sh index 589382d..6ed4ada 100644 --- a/hanatool.sh +++ b/hanatool.sh @@ -30,6 +30,13 @@ DRY_RUN=false NTFY_TOKEN="" IMPORT_REPLACE=false +# Detect pigz for parallel compression +if command -v pigz &>/dev/null; then + USE_PIGZ=true +else + USE_PIGZ=false +fi + # --- Help/Usage Function --- usage() { echo "SAP HANA Schema and Tenant Management Tool" @@ -228,9 +235,17 @@ case "$ACTION" in TAR_EXIT_CODE=0 if [[ "$DRY_RUN" == "true" ]]; then - echo "[DRY RUN] Would execute tar: tar -czf \"$ARCHIVE_FILE\" -C \"$backup_target_dir\" ." + if [[ "$USE_PIGZ" == "true" ]]; then + echo "[DRY RUN] Would execute tar (pigz): tar -I \"pigz -p $THREADS\" -cf \"$ARCHIVE_FILE\" -C \"$backup_target_dir\" ." + else + echo "[DRY RUN] Would execute tar: tar -czf \"$ARCHIVE_FILE\" -C \"$backup_target_dir\" ." + fi else - tar -czf "$ARCHIVE_FILE" -C "$backup_target_dir" . + if [[ "$USE_PIGZ" == "true" ]]; then + tar -I "pigz -p $THREADS" -cf "$ARCHIVE_FILE" -C "$backup_target_dir" . + else + tar -czf "$ARCHIVE_FILE" -C "$backup_target_dir" . + fi TAR_EXIT_CODE=$? fi @@ -304,9 +319,17 @@ case "$ACTION" in TAR_EXIT_CODE=0 if [[ "$DRY_RUN" == "true" ]]; then - echo "[DRY RUN] Would execute tar: tar -czf \"$ARCHIVE_FILE\" -C \"$(dirname "$EXPORT_DIR")\" \"$(basename "$EXPORT_DIR")\"" + if [[ "$USE_PIGZ" == "true" ]]; then + echo "[DRY RUN] Would execute tar (pigz): tar -I \"pigz -p $THREADS\" -cf \"$ARCHIVE_FILE\" -C \"$(dirname "$EXPORT_DIR")\" \"$(basename "$EXPORT_DIR")\"" + else + echo "[DRY RUN] Would execute tar: tar -czf \"$ARCHIVE_FILE\" -C \"$(dirname "$EXPORT_DIR")\" \"$(basename "$EXPORT_DIR")\"" + fi else - tar -czf "$ARCHIVE_FILE" -C "$(dirname "$EXPORT_DIR")" "$(basename "$EXPORT_DIR")" + if [[ "$USE_PIGZ" == "true" ]]; then + tar -I "pigz -p $THREADS" -cf "$ARCHIVE_FILE" -C "$(dirname "$EXPORT_DIR")" "$(basename "$EXPORT_DIR")" + else + tar -czf "$ARCHIVE_FILE" -C "$(dirname "$EXPORT_DIR")" "$(basename "$EXPORT_DIR")" + fi TAR_EXIT_CODE=$? fi