From 1a0c1b984fc6acfdb9f0969cdecfd5c67badfc67 Mon Sep 17 00:00:00 2001 From: Janek Bevendorff Date: Fri, 18 Nov 2016 00:02:35 +0100 Subject: [PATCH] Add logging --- install.sh | 7 ++++- server/etc/events_synology | 5 ++++ server/usr/bin/rs-logger | 59 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 server/etc/events_synology create mode 100755 server/usr/bin/rs-logger diff --git a/install.sh b/install.sh index 9edf281..5fe58da 100755 --- a/install.sh +++ b/install.sh @@ -143,7 +143,7 @@ if [[ $MODE == "install" ]]; then $MKDIR "$BKP_DIR"/usr/share/perl5 fi - # Append fstab entries + # Apply distro-specific configurations if [[ "$DISTRIBUTION" == "Synology" ]]; then # Synology DSM restores default /etc/fstab upon reboot, # so we better put mount commands in /etc/rc @@ -156,6 +156,11 @@ if [[ $MODE == "install" ]]; then cat $tmp_name > /etc/rc rm $tmp_name fi + + # Add our own syslog template + if ! grep -q "^# rs-backup-suite$" /usr/syno/synosdk/texts/enu/events; then + cat ./server/etc/events_synology >> /usr/syno/synosdk/texts/enu/events + fi else if ! grep -q "^# BEGIN: rs-backup-suite" /etc/fstab; then if [[ "$DISTRIBUTION" == "Ubuntu" ]]; then diff --git a/server/etc/events_synology b/server/etc/events_synology new file mode 100644 index 0000000..aa4a960 --- /dev/null +++ b/server/etc/events_synology @@ -0,0 +1,5 @@ + +[99000000] +# rs-backup-suite +99000001 = "@1" + diff --git a/server/usr/bin/rs-logger b/server/usr/bin/rs-logger new file mode 100755 index 0000000..bd3416a --- /dev/null +++ b/server/usr/bin/rs-logger @@ -0,0 +1,59 @@ +#!/usr/bin/env bash +## +# Copyright (C) 2013-2016 Janek Bevendorff +# Website: http://www.refining-linux.org/ +# +# Log to appropriate syslog facility. +# +# The MIT License (MIT) +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +# THE SOFTWARE. +## + +if [ "$2" == "" ] ; then + echo "Usage: $(basename $0) " + exit +fi + +if [ "$1" != "info" ] && [ "$1" != "warn" ] && [ "$1" != "err" ]; then + echo "Invalid log priority '$1'. Choose from ." + exit 1 +fi + +distribution=$(rs-detect-distribution) + +if [[ "Synology" == "${distribution}" ]]; then + # Use Synology's crappy synologd if we're on DSM + synologset1 sys $1 0x99000001 "$2" +else + # Any other distribution + command -v logger > /dev/null + if [ $? -eq 0 ]; then + logger -p $1 -t rs-backup-server "$2" + else + # Log to STDOUT/STDERR if we have no syslog facility + if [ "$1" == "err" ]; then + echo "ERROR: $2" >&2 + elif [ "$1" == "warn" ]; then + echo "WARNING: $2" >&2 + else + echo "INFO: $2" + fi + fi +fi