blob: b89adb6bae17567a27db47a46fa463024d64ab20 [file] [log] [blame]
#!/bin/bash
function abs_path() {
SOURCE="${BASH_SOURCE[0]}"
while [ -h "$SOURCE" ]; do
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
SOURCE="$(readlink "$SOURCE")"
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE"
done
echo "$( cd -P "$( dirname "$SOURCE" )" && pwd )"
}
BIN=`abs_path`
TOP=`dirname $BIN`
cd $BIN
if [ -n "$JAVA_HOME" ]; then
JAVA="$JAVA_HOME"/bin/java
else
JAVA=java
fi
function parse_interval() {
INTERVAL="${1//\\/} ${2//\\/} ${3//\\/} ${4//\\/} ${5//\\/}"
}
for((i=1;i<=$#;i+=2));
do
current=`eval echo '${'$i'}'`
case "$current" in
"--url")
URL=`eval echo '${'$(($i+1))'}'`
URL_ARG="--url "$URL
;;
"--graph")
GRAPH=`eval echo '${'$(($i+1))'}'`
GRAPH_ARG="--graph "$GRAPH
;;
"--user")
USERNAME=`eval echo '${'$(($i+1))'}'`
USERNAME_ARG="--user "$USERNAME
;;
"--password")
PASSWORD=`eval echo '${'$(($i+1))'}'`
PASSWORD_ARG="--password "$PASSWORD
;;
"--timeout")
TIMEOUT=`eval echo '${'$(($i+1))'}'`
TIMEOUT_ARG="--timeout "$TIMEOUT
;;
"--interval")
position=$(($i+1))
INTERVAL=${@:$position:5}
INTERVAL=${INTERVAL//\\/}
let i+=4
;;
"--backup-num")
NUM=`eval echo '${'$(($i+1))'}'`
;;
"--directory"|"-d")
DIR=`eval echo '${'$(($i+1))'}'`
;;
*)
echo "Invalid argument: $current"
bash $BIN/hugegraph
exit 1
esac
done
if [ -z "$DIR" ]; then
echo "Must provide backup directory"
exit 1
else
if [ ${DIR:0:1} != "/" ]; then
DIR=$TOP"/"$DIR
fi
fi
DIR=`dirname $DIR`/`basename $DIR`
if [ -z "$GRAPH" ]; then
GRAPH="hugegraph"
fi
GRAPH_DIR=$DIR/$GRAPH
if [ -d $GRAPH_DIR -o -f $GRAPH_DIR ]; then
echo "Error: Directory/file $GRAPH already exists in $DIR"
exit 1
fi
mkdir "$GRAPH_DIR"
if [ $? -ne 0 ]; then
echo "Failed to create directory $GRAPH_DIR"
exit 1
fi
if [ -z "$NUM" ]; then
NUM=3
elif [ ! "$NUM" -gt 0 ] 2>/dev/null ;then
echo "Number of backups must be positive number."
exit 1
fi
if [ -z "$INTERVAL" ]; then
INTERVAL="0 0 * * *"
fi
CRONTAB_JOB="$INTERVAL export JAVA_HOME=$JAVA_HOME && bash $BIN/backup.sh $URL_ARG $GRAPH_ARG $USERNAME_ARG $PASSWORD_ARG $TIMEOUT_ARG backup -t all -d $GRAPH_DIR --backup-num $NUM"
. $BIN/util.sh
crontab_append "$CRONTAB_JOB"