blob: 50829570b7e7827919dd744b6db7a91c6bec472b [file] [log] [blame]
Thomas Vachuska58bf4912017-10-31 12:00:32 -07001#!/bin/bash
2# -----------------------------------------------------------------------------
3# ONOS utility to produce a backup archive of all persistent data.
4# -----------------------------------------------------------------------------
5
6ONOS_HOME=${ONOS_HOME:-$(cd $(dirname $0)/.. >/dev/null 2>&1 && pwd)}
7ONOS_DEFAULT_ARCHIVE=$(dirname $ONOS_HOME)/onos-data.tar.gz
Thomas Vachuska369e3fb2019-01-02 16:38:37 -08008ONOS_KARAF=$ONOS_HOME/apache-karaf-4.2.2
Thomas Vachuska58bf4912017-10-31 12:00:32 -07009
10# Fetch the name of the archive or use a default if none is specified
11archive=${1:-$ONOS_DEFAULT_ARCHIVE}
12archive=$(cd "$(dirname "$archive")"; pwd)/$(basename "$archive")
13
14# Make sure that the apache karaf data directory exists
15[ ! -d $ONOS_KARAF/data ] && echo "ONOS data directory not found" && exit 1
16
17# Make sure that the archive lies outside of $ONOS_HOME for safety
18[[ "$archive" =~ ^$ONOS_HOME/.* ]] && \
19 echo "Archive cannot be in $ONOS_HOME directory tree" && exit 1
20
21# Make sure that the archive file does not already exist
22[ -f $archive ] && echo "Archive $archive already exists" && exit 1
23
24# Make sure we can write the archive
25! touch $archive 2>/dev/null && \
26 echo "No permission to write archive $archive" && exit 1
27rm -f $archive
28
29# Now produce the archive using the subset of the data directory tree
30cd $ONOS_KARAF
31tar zcf $archive data/db data/log