Browse Source

ts3server: added backup feature

pull/30/head
Daniel Gibbs 12 years ago
parent
commit
065eda88cf
  1. 54
      TeamSpeak3/ts3server

54
TeamSpeak3/ts3server

@ -21,6 +21,7 @@ servicename="ts3-server"
rootdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
filesdir="${rootdir}/serverfiles"
ini="${servicename}.ini"
backupdir="${rootdir}/backups"
# Logging
logdays="7"
@ -99,6 +100,53 @@ fn_load(){
load=$(uptime | awk -F 'load average' '{ print $2 }')
}
fn_backupserver(){
fn_rootcheck
fn_syscheck
backupname="${servicename}-$(date '+%Y-%m-%d-%H%M%S')"
echo ""
echo "${gamename} Backup"
echo "============================"
echo ""
echo "The following backup will be created."
echo ""
echo "${backupdir}/${backupname}.tar.gz"
echo ""
while true; do
read -p "Continue? [y/N]" yn
case $yn in
[Yy]* ) break;;
[Nn]* ) echo Exiting; return 1 ;;
* ) echo "Please answer yes or no.";;
esac
done
fn_status
if [ "$ts3status" = "Server is running" ]; then
echo -e "\e[0;31mWARNING!\e[0;39m ${servicename} is currently running"
while true; do
read -p "Would you like to stop ${servicename} while running the backup? [y/N]" yn
case $yn in
[Yy]* ) fn_stopserver;break;;
[Nn]* ) break;;
* ) echo "Please answer yes or no.";;
esac
done
fi
echo -en "[ .... ] Starting ${servicename}: ${servername} backup"
echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Starting ${servername} backup" >> ${scriptlog}
sleep 0.5
echo -en "\r[\e[0;32m OK \e[0;39m] Starting ${servicename}: ${servername} backup"
echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: Started ${servername} backup" >> ${scriptlog}
sleep 1
echo -en "\n"
cd ${rootdir}
mkdir ${backupdir} > /dev/null 2>&1
tar -cvzf ${backupdir}/${backupname}.tar.gz --exclude ${backupdir} ${rootdir}
echo -en "\r${servicename} backup complete"
echo -e "$(date '+%b %d %H:%M:%S') ${servicename}: backup complete" >> ${scriptlog}
}
fn_emailnotification(){
fn_distro
fn_uptime
@ -271,12 +319,14 @@ case "$1" in
fn_stopserver;;
restart)
fn_restartserver;;
backup)
fn_backupserver;;
monitor)
fn_monitorserver;;
fn_monitorserver;;
email-test)
fn_emailtest;;
*)
echo "Usage: $0 {start|stop|restart|monitor|email-test}"
echo "Usage: $0 {start|stop|restart|backup|monitor|email-test}"
exit 1;;
esac
exit
Loading…
Cancel
Save