mirror of
https://github.com/uroni/urbackup_backend.git
synced 2025-10-26 11:36:50 +00:00
114 lines
2.7 KiB
Bash
114 lines
2.7 KiB
Bash
#!/bin/sh
|
|
|
|
NAME="urbackup_client"
|
|
PREFIX=/usr/local
|
|
DAEMON=$PREFIX/sbin/urbackup_client
|
|
if ! test -x $DAEMON
|
|
then
|
|
PREFIX=/usr
|
|
DAEMON=$PREFIX/sbin/urbackup_client
|
|
fi
|
|
|
|
DAEMON_DIR="/usr/local/var"
|
|
if ! test -e $DAEMON_DIR/urbackup/backup_client.db.template
|
|
then
|
|
DAEMON_DIR="/var"
|
|
if ! test -e $DAEMON_DIR/urbackup/backup_client.db.template
|
|
then
|
|
DAEMON_DIR="/usr/var"
|
|
fi
|
|
fi
|
|
|
|
DAEMON_ARGS="--workingdir $DAEMON_DIR --server false --no-server"
|
|
S_DAEMON="--daemon"
|
|
|
|
print_help()
|
|
{
|
|
echo "UrBackup Client wrapper script. Starts UrBackup Client daemon process."
|
|
echo "Parameters:"
|
|
echo "--logfile {file} Specifies the log file name. Default: urbackup_client.log"
|
|
echo "--loglevel {debug|info|warn|error} Specifies the log level. Possible values: debug, info, warn, error. Default: warn"
|
|
echo "--no_daemon Do not start as a daemon"
|
|
echo "--pidfile {file} Save pid of daemon in file"
|
|
echo ""
|
|
echo "Have a nice day!"
|
|
exit 0
|
|
}
|
|
|
|
print_version()
|
|
{
|
|
echo "UrBackup Client v1.5"
|
|
echo "Copyright (C) 2011-2014 Martin Raiber"
|
|
echo "This is free software; see the source for copying conditions. There is NO"
|
|
echo "warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
|
|
exit 0
|
|
}
|
|
|
|
RUN_IN_GDB=0
|
|
RUN_IN_VALGRIND=0
|
|
|
|
GETOPT=getopt
|
|
|
|
if test -x $PREFIX/bin/getopt
|
|
then
|
|
GETOPT=$PREFIX/bin/getopt
|
|
fi
|
|
|
|
if `$GETOPT -T > /dev/null 2>&1`; [ $? = 4 ]; then
|
|
LOGFILE="urbackup_client.log"
|
|
LOGLEVEL="warn"
|
|
PIDFILE="/var/run/urbackup_client.pid"
|
|
INTERNETONLY=""
|
|
TEMP=`$GETOPT -o f:h:l:v -n start_urbackup_client --long version,no_daemon,help,logfile:,loglevel:,pidfile:,run_in_gdb,run_in_valgrind,internetonly -- "$@"`
|
|
eval set -- "$TEMP"
|
|
while true ; do
|
|
case "$1" in
|
|
-l|--logfile) LOGFILE="$2"; shift 2 ;;
|
|
-v|--loglevel) LOGLEVEL="$2"; shift 2 ;;
|
|
--pidfile) PIDFILE="$2"; shift 2 ;;
|
|
--no_daemon) S_DAEMON=""; shift ;;
|
|
--run_in_gdb) RUN_IN_GDB=1; shift ;;
|
|
--run_in_valgrind) RUN_IN_VALGRIND=1; shift ;;
|
|
--internetonly) INTERNETONLY="--internet_only_mode true"; shift ;;
|
|
--help) print_help ;;
|
|
--version) print_version ;;
|
|
--) shift; break ;;
|
|
*) echo "error!" ; exit 1 ;;
|
|
esac
|
|
done
|
|
|
|
if [ "x$RUN_IN_GDB" = "x1" ]
|
|
then
|
|
S_DAEMON=""
|
|
fi
|
|
|
|
if [ "x$RUN_IN_VALGRIND" = "x1" ]
|
|
then
|
|
S_DAEMON=""
|
|
fi
|
|
|
|
DAEMON_ARGS="$DAEMON_ARGS --logfile /var/log/$LOGFILE --loglevel $LOGLEVEL --pidfile $PIDFILE $INTERNETONLY"
|
|
else
|
|
DAEMON_ARGS="$*"
|
|
fi
|
|
|
|
|
|
# Exit if the package is not installed
|
|
if [ ! -x $DAEMON ]
|
|
then
|
|
echo "Client binary not found"
|
|
fi
|
|
|
|
ulimit -n 10000 > /dev/null 2>&1
|
|
|
|
cd $DAEMON_DIR
|
|
if [ "x$RUN_IN_GDB" = "x1" ]
|
|
then
|
|
gdb --args $DAEMON $S_DAEMON $DAEMON_ARGS
|
|
elif [ "x$RUN_IN_VALGRIND" = "x1" ]
|
|
then
|
|
valgrind --leak-check=full --track-origins=yes $DAEMON $S_DAEMON $DAEMON_ARGS --leak_check true
|
|
else
|
|
exec $DAEMON $S_DAEMON $DAEMON_ARGS
|
|
fi
|