FileWave Automation Scripts

This article contains the scripts used by the Downloads page. The scripts are here for documentation purposes. Note that you don't need to directly deal with this page aside from reference documentation. Each download page has the right 1-liner for upgrading to that version.

FileWave provides supported upgrade scripts to help you safely upgrade FileWave components on Debian-based systems. These scripts automate required checks, ensure compatibility, and guide you through the correct upgrade path for your environment.

The scripts have been used internally and by customers for many releases. This page explains what they do, how they behave, and what to expect during an upgrade.

What the Upgrade Scripts Do

At a high level, each upgrade script:

The scripts are designed to be safe to re-run and will stop early if an unsupported upgrade or downgrade is detected.

Interactive and Unattended Use

The scripts support both interactive and unattended operation:

The scripts work correctly when run:

Running upgrades inside a screen session is strongly recommended.


FileWave Server: Important Upgrade Behavior (16.3.0 and Later)

Starting with FileWave Server 16.3.0, significant changes were introduced, including:

Because of these changes, the FileWave Server upgrade script includes additional safety logic.

Staged Upgrade Requirement (Older Versions)

If your system is running a very old FileWave Server version (prior to 16.0.0):

This staged approach is required to ensure database compatibility and prevent data loss.

Why This Is Necessary

The upgrade script automatically enforces this safe upgrade path and clearly explains what is happening when a staged upgrade is required.


Operating System Upgrades

The script will only perform a Debian OS upgrade when required by the target FileWave version.


Logging and Troubleshooting

Each script writes a detailed log file that can be used for troubleshooting or when opening a support case:

If you contact FileWave Support, include the relevant log file along with a brief description of what you were upgrading to.


Best Practices


Scripts

FileWave Server Upgrade

fwxserver_upgrade.sh - This script is used by the Download page fro FileWave Server upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=fwxserver_upgrade_$ts; tmp=/tmp/fwxserver_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/411; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

FileWave Booster Upgrade

fwbooster_upgrade.sh - This script is used by the Download page fro FileWave Booster upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=fwbooster_upgrade_$ts; tmp=/tmp/fwbooster_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/412; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

FileWave IVS Upgrade

ivs_upgrade.sh - This script is used by the Download page for IVS upgrades on Debian. Some details;

To run this script, use the following 1-liner for example:

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=ivs_upgrade_$ts; tmp=/tmp/ivs_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/408; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v 16.3.0 -r 1 -p -y"'

Universal One Liner

You can also use this more universal one liner that doesn't hard code anything and you can just enter what you want to do.

sudo DEBIAN_FRONTEND=noninteractive bash -c 'set -e; read -p "Component (Server/Booster/IVS): " c; case "${c,,}" in server) att=411; name=fwxserver ;; booster) att=412; name=fwbooster ;; ivs) att=408; name=ivs ;; *) echo "Invalid component"; exit 1 ;; esac; read -p "Version (e.g. 16.3.0): " v; [[ "$v" =~ ^[0-9]+\.[0-9]+\.[0-9]+$ ]] || { echo "Invalid version format"; exit 1; }; read -p "Release (Prod/Dev/Beta): " r; case "${r,,}" in prod) f=-p ;; dev) f=-d ;; beta) f=-b ;; *) echo "Invalid release type"; exit 1 ;; esac; apt-get update -y; apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" screen wget; ts=$(date +%Y%m%d%H%M%S); scr=${name}_upgrade_$ts; tmp=/tmp/${name}_upgrade_$ts.sh; wget -qO "$tmp" https://kb.filewave.com/attachments/$att; chmod +x "$tmp"; echo "Starting upgrade in screen session: $scr"; echo "Detach with Ctrl-A then D, reattach with: sudo screen -r $scr"; exec screen -S "$scr" bash -lc "\"$tmp\" -v $v -r 1 $f -y"'

 


Revision #101
Created 2024-11-13 18:18:03 UTC by Josh Levitsky
Updated 2026-01-09 20:49:01 UTC by Josh Levitsky