Skip to content

Instantly share code, notes, and snippets.

@Bluscream
Last active June 8, 2018 07:11
Show Gist options
  • Select an option

  • Save Bluscream/ef2091610760b5a151c66b17ff9e040b to your computer and use it in GitHub Desktop.

Select an option

Save Bluscream/ef2091610760b5a151c66b17ff9e040b to your computer and use it in GitHub Desktop.
TeaSpeak scripts
#!/usr/bin/expect -f
set passwd "serveradmin-passwd"
set sid 1
spawn telnet 127.0.0.1 10011
expect "command."
send "login serveradmin $passwd\n"
expect "error id=0 msg=ok"
send "use sid=$sid\n"
expect "error id=0 msg=ok"
send "serversnapshotcreate\n"
expect -re "hash(.*)"
exec echo "hash$expect_out(1,string)" > lastdump.ts3
expect "error id=0 msg=ok"
send "quit\n"
#!/bin/bash
cd common
cp config.bak.yml config.bak2.yml
cp config.yml config.bak.yml
nano config.yml
#!/bin/bash
# dirname=$(ls -t /home/*/ | head -1)
echo "Make sure to use \". latest.sh\""
versionurl="latest"
if [ $# -ne 0 ]
then
if [ "$1" = "build" ]
then
versionurl="buildIndex.txt"
version=$(curl -k https://repo.teaspeak.de/${versionurl})
dirname="TeaSpeak-${version}"
cd "${dirname}"
fi
fi
cd "${dirname::-1}"
#!/bin/sh
tail -fn0 /home/TeaSpeak-1.1.29-beta-2/logs/log_general.log | while read line ; do
echo "$line" | grep "cl->state == ConnectionState::DISCONNECTED && cl->getExternalType() == ClientType::CLIENT_VOICE"
if [ $? = 0 ]
then
killall screen
sh /home/TeaSpeak-1.1.29-beta-2/teastart_autorestart.sh start
fi
done
#!/bin/bash
tail -f common/last.log | grep -o 'Password: [[:digit:]]\{7\}' | read -t 1200 dummy_var
[ $? -eq 0 ] && echo 'ok' || echo 'server not up'
#!/usr/bin/expect -f
set passwd "serveradmin-passwd"
set sid 1
spawn telnet 127.0.0.1 10011
expect "command."
send "login serveradmin $passwd\n"
expect "error id=0 msg=ok"
send "use sid=$sid\n"
expect "error id=0 msg=ok"
send "serversnapshotcreate\n"
expect -re "hash(.*)"
exec echo "hash$expect_out(1,string)" > lastdump.ts3
expect "error id=0 msg=ok"
send "quit\n"
#!/bin/bash
echo "# getting version"
versionurl="latest"
if [ $# -ne 0 ]
then
if [ "$1" = "build" ]
then
versionurl="buildIndex.txt"
else
echo "# ony build is an valid agument"
exit 1
fi
fi
echo "# version url ${versionurl}"
version=$(curl -k https://repo.teaspeak.de/${versionurl})
echo "# newest version is ${version}"
requesturl="https://repo.teaspeak.de/server/linux/x64/TeaSpeak-${version}.tar.gz"
echo "# requesting from ${requesturl}"
wget --no-check-certificate "$requesturl"
dirname="teaspeak"
filename="TeaSpeak-${version}.tar.gz"
echo "# unzip and moving $filename"
tar -xzf $filename -C ${dirname}
rm $filename
cd ${dirname}
echo "# making scripts executable"
chmod +x *.sh
./teastart_minimal.sh
./teastart_autorestart.sh start
echo "# now updated to ${version}"
#!/bin/bash
TS3_QUERY_PASS="JYfOBBD"
# python3 update.py
# exit
echo "# installing requirements"
apt install sudo
sudo apt install ffmpeg youtube-dl curl wget screen tar gzip
echo "# getting latest version"
version=$(curl -k https://repo.teaspeak.de/latest)
echo "# newest version is ${version}"
requesturl="https://repo.teaspeak.de/server/linux/x64/TeaSpeak-${version}.tar.gz"
echo "# requesting from ${requesturl}"
wget --no-check-certificate "$requesturl"
if [ $# -eq 0 ]
then
dirname="TeaSpeak-${version}"
if [ -d "$dirname" ]; then
while :
do
echo "Folder $dirname already exists!"
read -t10 -p "Do you want to continue anyway? (Y/N): "
if [ $? -gt 128 ]; then
echo "timed out waiting for user response"
exit
fi
case $REPLY in
[yY]*)
echo "continuing"
break
;;
[nN]*)
echo "exiting"
exit
;;
*) echo "Please enter Y or N"
;;
esac
done
fi
else
dirname="$1"
fi
filename="TeaSpeak-${version}.tar.gz"
echo "# stopping old server"
# { echo "login serveradmin pass"; echo "serverprocessstop reasonmsg=Server\supdate\sto\s${version}!"; sleep 1; } | telnet 127.0.0.1 10011
screen -x TeaSpeak
# end now
# pkill -f TeaSpeak
echo "# backing up old files"
cp common/config.yml common/config.pre_update.yml
cp common/TeaData.sqlite common/TeaData.pre_update.sqlite
# olddir=$(find . -type d -maxdepth 1 -print | grep -m1 'TeaSpeak-')
# tar -zcvf $olddir.tar.gz $olddir/
# rm -rf $olddir
echo "# unzip and moving $filename"
mkdir ${dirname}
tar -xzf $filename -C ${dirname}
mv $filename "${dirname}/$filename"
echo "# creating symlinks for common files"
cd ${dirname}
ln -s /home/common/teaspeak/config.yml "config.yml"
ln -s /home/common/teaspeak/TeaData.sqlite "TeaData.sqlite"
# ln -s /home/common/files/ "files/"
./teastart_minimal.sh
echo "# making scripts executable"
chmod +x *.sh
# cp logs/log_*_general.log /home/common/last.log
./teastart_autorestart.sh start
# ../restore.sh "${dirname}"
echo "# now updated to ${version}"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment