mirror of
https://github.com/deajan/obackup.git
synced 2024-12-04 12:43:42 +01:00
Some sanity code cleanup
This commit is contained in:
parent
e18ebd1115
commit
5c74224dcd
@ -1,4 +1,4 @@
|
|||||||
Copyright (c) 2013-2015, Orsiris "Ozy" de Jong. ozy@netpower.fr
|
Copyright (c) 2013-2016, Orsiris "Ozy" de Jong. ozy@netpower.fr
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use in source and binary forms, with or without
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -8,7 +8,7 @@ PROGRAM_VERSION=2.0-pre
|
|||||||
PROGRAM_BUILD=2016030302
|
PROGRAM_BUILD=2016030302
|
||||||
IS_STABLE=no
|
IS_STABLE=no
|
||||||
|
|
||||||
## FUNC_BUILD=2016031001
|
## FUNC_BUILD=2016031101
|
||||||
## BEGIN Generic functions for osync & obackup written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
## BEGIN Generic functions for osync & obackup written in 2013-2016 by Orsiris de Jong - http://www.netpower.fr - ozy@netpower.fr
|
||||||
|
|
||||||
## type -p does not work on platforms other than linux (bash). If if does not work, always assume output is not a zero exitcode
|
## type -p does not work on platforms other than linux (bash). If if does not work, always assume output is not a zero exitcode
|
||||||
@ -200,6 +200,7 @@ function SendAlert {
|
|||||||
fi
|
fi
|
||||||
if type mutt > /dev/null 2>&1 ; then
|
if type mutt > /dev/null 2>&1 ; then
|
||||||
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mutt) -x -s \"$subject\" $DESTINATION_MAILS $attachment_command"
|
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mutt) -x -s \"$subject\" $DESTINATION_MAILS $attachment_command"
|
||||||
|
Logger "Mail cmd: $cmd" "DEBUG"
|
||||||
eval $cmd
|
eval $cmd
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot send alert email via $(type -p mutt) !!!" "WARN"
|
Logger "Cannot send alert email via $(type -p mutt) !!!" "WARN"
|
||||||
@ -218,10 +219,12 @@ function SendAlert {
|
|||||||
attachment_command=""
|
attachment_command=""
|
||||||
fi
|
fi
|
||||||
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mail) $attachment_command -s \"$subject\" $DESTINATION_MAILS"
|
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mail) $attachment_command -s \"$subject\" $DESTINATION_MAILS"
|
||||||
|
Logger "Mail cmd: $cmd" "DEBUG"
|
||||||
eval $cmd
|
eval $cmd
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot send alert email via $(type -p mail) with attachments !!!" "WARN"
|
Logger "Cannot send alert email via $(type -p mail) with attachments !!!" "WARN"
|
||||||
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mail) -s \"$subject\" $DESTINATION_MAILS"
|
cmd="echo \"$MAIL_ALERT_MSG\" | $(type -p mail) -s \"$subject\" $DESTINATION_MAILS"
|
||||||
|
Logger "Mail cmd: $cmd" "DEBUG"
|
||||||
eval $cmd
|
eval $cmd
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot send alert email via $(type -p mail) without attachments !!!" "WARN"
|
Logger "Cannot send alert email via $(type -p mail) without attachments !!!" "WARN"
|
||||||
@ -237,6 +240,7 @@ function SendAlert {
|
|||||||
|
|
||||||
if type sendmail > /dev/null 2>&1 ; then
|
if type sendmail > /dev/null 2>&1 ; then
|
||||||
cmd="echo -e \"Subject:$subject\r\n$MAIL_ALERT_MSG\" | $(type -p sendmail) $DESTINATION_MAILS"
|
cmd="echo -e \"Subject:$subject\r\n$MAIL_ALERT_MSG\" | $(type -p sendmail) $DESTINATION_MAILS"
|
||||||
|
Logger "Mail cmd: $cmd" "DEBUG"
|
||||||
eval $cmd
|
eval $cmd
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Cannot send alert email via $(type -p sendmail) !!!" "WARN"
|
Logger "Cannot send alert email via $(type -p sendmail) !!!" "WARN"
|
||||||
|
36
install.sh
36
install.sh
@ -3,10 +3,10 @@
|
|||||||
PROGRAM=obackup
|
PROGRAM=obackup
|
||||||
PROGRAM_BINARY=$PROGRAM".sh"
|
PROGRAM_BINARY=$PROGRAM".sh"
|
||||||
PROGRAM_BATCH=$PROGRAM"-batch.sh"
|
PROGRAM_BATCH=$PROGRAM"-batch.sh"
|
||||||
SCRIPT_BUILD=2015102701
|
SCRIPT_BUILD=2016031401
|
||||||
|
|
||||||
## osync / obackup daemon install script
|
## osync / obackup daemon install script
|
||||||
## Tested on RHEL / CentOS 6 & 7 and Mint 17
|
## Tested on RHEL / CentOS 6 & 7, Fedora 23, Debian 7 & 8, Mint 17 and FreeBSD 8 & 10
|
||||||
## Please adapt this to fit your distro needs
|
## Please adapt this to fit your distro needs
|
||||||
|
|
||||||
CONF_DIR=/etc/$PROGRAM
|
CONF_DIR=/etc/$PROGRAM
|
||||||
@ -30,48 +30,48 @@ else
|
|||||||
echo "Config directory [$CONF_DIR] exists."
|
echo "Config directory [$CONF_DIR] exists."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ./sync.conf ]; then
|
if [ -f "./sync.conf" ]; then
|
||||||
cp ./sync.conf /etc/$PROGRAM/sync.conf.example
|
cp "./sync.conf" "/etc/$PROGRAM/sync.conf.example"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ./host_backup.conf ]; then
|
if [ -f "./host_backup.conf" ]; then
|
||||||
cp ./host_backup.conf /etc/$PROGRAM/host_backup.conf.example
|
cp "./host_backup.conf" "/etc/$PROGRAM/host_backup.conf.example"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ./exlude.list.example ]; then
|
if [ -f "./exlude.list.example" ]; then
|
||||||
cp ./exclude.list.example /etc/$PROGRAM
|
cp "./exclude.list.example" "/etc/$PROGRAM"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
cp ./$PROGRAM_BINARY "$BIN_DIR"
|
cp "./$PROGRAM_BINARY" "$BIN_DIR"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
echo "Cannot copy $PROGRAM_BINARY to [$BIN_DIR]."
|
echo "Cannot copy $PROGRAM_BINARY to [$BIN_DIR]."
|
||||||
else
|
else
|
||||||
echo "Copied $PROGRAM_BINARY to [$BIN_DIR]."
|
echo "Copied $PROGRAM_BINARY to [$BIN_DIR]."
|
||||||
fi
|
fi
|
||||||
cp ./$PROGRAM_BATCH /usr/local/bin
|
cp "./$PROGRAM_BATCH" "/usr/local/bin"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
echo "Cannot copy $PROGRAM_BATCH to [$BIN_DIR]."
|
echo "Cannot copy $PROGRAM_BATCH to [$BIN_DIR]."
|
||||||
else
|
else
|
||||||
echo "Copied $PROGRAM_BATCH to [$BIN_DIR]."
|
echo "Copied $PROGRAM_BATCH to [$BIN_DIR]."
|
||||||
fi
|
fi
|
||||||
cp ./ssh_filter.sh /usr/local/bin
|
cp "./ssh_filter.sh" "/usr/local/bin"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
echo "Cannot copy ssh_filter.sh to [$BIN_DIR]."
|
echo "Cannot copy ssh_filter.sh to [$BIN_DIR]."
|
||||||
else
|
else
|
||||||
echo "Copied ssh_filter.sh to [$BIN_DIR]."
|
echo "Copied ssh_filter.sh to [$BIN_DIR]."
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -f ./osync-srv ]; then
|
if [ -f "./osync-srv" ]; then
|
||||||
cp ./osync-srv "$SERVICE_DIR"
|
cp "./osync-srv" "$SERVICE_DIR"
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
echo "Cannot copy osync-srv to [$SERVICE_DIR]."
|
echo "Cannot copy osync-srv to [$SERVICE_DIR]."
|
||||||
else
|
else
|
||||||
echo "Created osync-srv service in [$SERVICE_DIR]."
|
echo "Created osync-srv service in [$SERVICE_DIR]."
|
||||||
chmod 755 /etc/init.d/osync-srv
|
chmod 755 "/etc/init.d/osync-srv"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
chmod 755 /usr/local/bin/$PROGRAM_BINARY
|
chmod 755 "/usr/local/bin/$PROGRAM_BINARY"
|
||||||
chmod 755 /usr/local/bin/$PROGRAM_BATCH
|
chmod 755 "/usr/local/bin/$PROGRAM_BATCH"
|
||||||
chmod 755 /usr/local/bin/ssh_filter.sh
|
chmod 755 "/usr/local/bin/ssh_filter.sh"
|
||||||
chown root:root /usr/local/bin/ssh_filter.sh
|
chown root:root "/usr/local/bin/ssh_filter.sh"
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
SUBPROGRAM=obackup
|
SUBPROGRAM=obackup
|
||||||
PROGRAM="$SUBPROGRAM-batch" # Batch program to run osync / obackup instances sequentially and rerun failed ones
|
PROGRAM="$SUBPROGRAM-batch" # Batch program to run osync / obackup instances sequentially and rerun failed ones
|
||||||
AUTHOR="(L) 2013-2015 by Orsiris \"Ozy\" de Jong"
|
AUTHOR="(L) 2013-2016 by Orsiris de Jong"
|
||||||
CONTACT="http://www.netpower.fr - ozy@netpower.fr"
|
CONTACT="http://www.netpower.fr - ozy@netpower.fr"
|
||||||
PROGRAM_BUILD=2015111801
|
PROGRAM_BUILD=2016031301
|
||||||
|
|
||||||
## Runs an osync /obackup instance for every conf file found
|
## Runs an osync /obackup instance for every conf file found
|
||||||
## If an instance fails, run it again if time permits
|
## If an instance fails, run it again if time permits
|
||||||
@ -43,10 +43,8 @@ function Logger {
|
|||||||
|
|
||||||
if [ "$level" == "CRITICAL" ]; then
|
if [ "$level" == "CRITICAL" ]; then
|
||||||
_logger "$prefix\e[41m$value\e[0m"
|
_logger "$prefix\e[41m$value\e[0m"
|
||||||
ERROR_ALERT=1
|
|
||||||
elif [ "$level" == "ERROR" ]; then
|
elif [ "$level" == "ERROR" ]; then
|
||||||
_logger "$prefix\e[91m$value\e[0m"
|
_logger "$prefix\e[91m$value\e[0m"
|
||||||
ERROR_ALERT=1
|
|
||||||
elif [ "$level" == "WARN" ]; then
|
elif [ "$level" == "WARN" ]; then
|
||||||
_logger "$prefix\e[93m$value\e[0m"
|
_logger "$prefix\e[93m$value\e[0m"
|
||||||
elif [ "$level" == "NOTICE" ]; then
|
elif [ "$level" == "NOTICE" ]; then
|
||||||
@ -85,7 +83,7 @@ function CheckEnvironment {
|
|||||||
|
|
||||||
function Batch {
|
function Batch {
|
||||||
## Get list of .conf files
|
## Get list of .conf files
|
||||||
for i in $(ls $CONF_FILE_PATH/*.conf)
|
for i in $CONF_FILE_PATH/*.conf
|
||||||
do
|
do
|
||||||
if [ "$RUN" == "" ]; then
|
if [ "$RUN" == "" ]; then
|
||||||
RUN="$i"
|
RUN="$i"
|
||||||
@ -104,7 +102,7 @@ function Batch {
|
|||||||
wait $!
|
wait $!
|
||||||
if [ $? != 0 ]; then
|
if [ $? != 0 ]; then
|
||||||
Logger "Run instance $(basename $i) failed" "ERROR"
|
Logger "Run instance $(basename $i) failed" "ERROR"
|
||||||
if [ "RUN_AGAIN" == "" ]; then
|
if [ "$RUN_AGAIN" == "" ]; then
|
||||||
RUN_AGAIN="$i"
|
RUN_AGAIN="$i"
|
||||||
else
|
else
|
||||||
RUN_AGAIN=$RUN_AGAIN" $i"
|
RUN_AGAIN=$RUN_AGAIN" $i"
|
||||||
@ -138,23 +136,17 @@ function Usage {
|
|||||||
exit 128
|
exit 128
|
||||||
}
|
}
|
||||||
|
|
||||||
_SILENT=0
|
|
||||||
_DRY=0
|
|
||||||
_VERBOSE=0
|
|
||||||
opts=""
|
opts=""
|
||||||
for i in "$@"
|
for i in "$@"
|
||||||
do
|
do
|
||||||
case $i in
|
case $i in
|
||||||
--silent)
|
--silent)
|
||||||
_SILENT=1
|
|
||||||
opts=$opts" --silent"
|
opts=$opts" --silent"
|
||||||
;;
|
;;
|
||||||
--dry)
|
--dry)
|
||||||
_DRY=1
|
|
||||||
opts=$opts" --dry"
|
opts=$opts" --dry"
|
||||||
;;
|
;;
|
||||||
--verbose)
|
--verbose)
|
||||||
_VERBOSE=1
|
|
||||||
opts=$opts" --verbose"
|
opts=$opts" --verbose"
|
||||||
;;
|
;;
|
||||||
--no-maxtime)
|
--no-maxtime)
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
##### osync / obackup ssh command filter build 2015102701
|
##### osync / obackup ssh command filter
|
||||||
##### This script should be located in /usr/local/bin in the remote system to sync / backup
|
##### This script should be located in /usr/local/bin in the remote system to sync / backup
|
||||||
##### It will filter the commands that can be run remotely via ssh.
|
##### It will filter the commands that can be run remotely via ssh.
|
||||||
##### Please chmod 755 and chown root:root this file
|
##### Please chmod 755 and chown root:root this file
|
||||||
|
|
||||||
##### Obackup needed commands: rsync find du mysql mysqldump (sudo)
|
##### Obackup needed commands: rsync find du mysql mysqldump (sudo)
|
||||||
##### Osync needed commands: rsync find du echo mkdir rm if df (sudo)
|
##### Osync needed commands: rsync find du echo mkdir rm if df (sudo)
|
||||||
|
SCRIPT_BUILD=2016031401
|
||||||
|
|
||||||
## If enabled, execution of "sudo" command will be allowed.
|
## If enabled, execution of "sudo" command will be allowed.
|
||||||
SUDO_EXEC=yes
|
SUDO_EXEC=yes
|
||||||
## Paranoia option. Don't change this unless you read the documentation and still feel concerned about security issues.
|
## Paranoia option. Don't change this unless you read the documentation and still feel concerned about security issues.
|
||||||
RSYNC_EXECUTABLE=rsync
|
RSYNC_EXECUTABLE=rsync
|
||||||
## Enable other commands, useful for remote execution hooks like remotely creating snapshots.
|
## Enable other commands, useful for remote execution hooks like remotely creating snapshots.
|
||||||
CMD1=
|
CMD1=""
|
||||||
CMD2=
|
CMD2=""
|
||||||
CMD3=
|
CMD3=""
|
||||||
|
|
||||||
LOG_FILE=~/.ssh/ssh_filter.log
|
LOG_FILE=~/.ssh/ssh_filter.log
|
||||||
|
|
||||||
@ -25,7 +26,7 @@ function Log {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Go {
|
function Go {
|
||||||
eval $SSH_ORIGINAL_COMMAND
|
eval "$SSH_ORIGINAL_COMMAND"
|
||||||
}
|
}
|
||||||
|
|
||||||
case ${SSH_ORIGINAL_COMMAND%% *} in
|
case ${SSH_ORIGINAL_COMMAND%% *} in
|
||||||
@ -47,16 +48,19 @@ case ${SSH_ORIGINAL_COMMAND%% *} in
|
|||||||
Go ;;
|
Go ;;
|
||||||
"$CMD1")
|
"$CMD1")
|
||||||
if [ "$CMD1" != "" ]; then
|
if [ "$CMD1" != "" ]; then
|
||||||
Go ;;
|
Go
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
"$CMD2")
|
"$CMD2")
|
||||||
if [ "$CMD2" != "" ]; then
|
if [ "$CMD2" != "" ]; then
|
||||||
Go ;;
|
Go
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
"$CMD3")
|
"$CMD3")
|
||||||
if [ "$CMD3" != "" ]; then
|
if [ "$CMD3" != "" ]; then
|
||||||
Go ;;
|
Go
|
||||||
fi
|
fi
|
||||||
|
;;
|
||||||
"sudo")
|
"sudo")
|
||||||
if [ "$SUDO_EXEC" == "yes" ]; then
|
if [ "$SUDO_EXEC" == "yes" ]; then
|
||||||
if [[ "$SSH_ORIGINAL_COMMAND" == "sudo $RSYNC_EXECUTABLE"* ]]; then
|
if [[ "$SSH_ORIGINAL_COMMAND" == "sudo $RSYNC_EXECUTABLE"* ]]; then
|
||||||
@ -65,20 +69,15 @@ case ${SSH_ORIGINAL_COMMAND%% *} in
|
|||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo find"* ]]; then
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo find"* ]]; then
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo mkdir"* ]]
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo mkdir"* ]]; then
|
||||||
then
|
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo rm"* ]]
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo rm"* ]]; then
|
||||||
then
|
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo echo"* ]]
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo echo"* ]]; then
|
||||||
then
|
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo df"* ]]
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo df"* ]]; then
|
||||||
then
|
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo mv"* ]]
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo mv"* ]]; then
|
||||||
then
|
|
||||||
Go
|
Go
|
||||||
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo $CMD1"* ]]; then
|
elif [[ "$SSH_ORIGINAL_COMMAND" == "sudo $CMD1"* ]]; then
|
||||||
if [ "$CMD1" != "" ]; then
|
if [ "$CMD1" != "" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user