29
Paź

Simple php TeamSpeak 3 status

Witajcie po długiej przerwie, nie będę dokończał już tutorial’a jak zrobić na linux’ie bota muzycznego, gdyż jest już tego dużo w sieci, są też fajne płatne rozwiązania.

Dziś zajmiemy się  prostym statusem napisanym w PHP. Jest to mój autorski pomysł na napisanie tego jak że prostego skryptu. Dodając jest to moja pierwsza styczność z PHP, oraz jakakolwiek z pisaniem w różnych językach.

W tym linku, gotowe zastosowanie statusu serwera, wraz z css. (dwonload)

Tutaj przykład że status działa, Farmer.AnDrIx.pl

Wymagania:

  • Serwer obsługujący minumum PHP 5.2.1.
  • TeamSpeak 3 PHP Framework (download)

Zaczynamy, poniżej skrypt PHP który należny uzupełnić odpowiednimi danym. Nie będę tu tłumaczyć jak plik zamieścić na serwerze itp. zakładam że każdy opanował tą wiedzie i nie będzie miał z tym problemu.

<?php
//Simple PHP TeamSpeak 3 Viewer 
//Autor: Adrian Młyński @2014
//URL: http://andrix.pl


// load framework library
require_once("path/libraries/TeamSpeak3/TeamSpeak3.php"); // path to teamspeak framework

// data logging
	$ts3_login="login"; 		// Login 
	$ts3_password="password";	// Password
	$ts3_host="IP_adres";		// Server IP adress
	$ts3_queryport="10011";		// query port (default 10011)
	$ts3_voiceport="9987";		// voice port (default 9987)


try{
  // connect to server, authenticate and grab info
  $ts3_connect = TeamSpeak3::factory("serverquery://$ts3_login:$ts3_password@$ts3_host:$ts3_queryport/?server_port=$ts3_voiceport");
  
  // variable
	$server_status = $ts3_connect->virtualserver_status;
	$server_name = $ts3_connect->virtualserver_name;
	$server_adress = $ts3_connect->getAdapterHost();
	$server_uptame = TeamSpeak3_Helper_Convert::seconds($ts3_connect->virtualserver_uptime);
	$server_actuallyusers = $ts3_connect->virtualserver_clientsonline - $ts3_connect->virtualserver_queryclientsonline;
	$server_maxusers= $ts3_connect->virtualserver_maxclients;
	$server_channels = $ts3_connect->virtualserver_channelsonline;
	$server_download = TeamSpeak3_Helper_Convert::bytes($ts3_connect->connection_filetransfer_bytes_received_total + $ts3_connect->connection_bytes_received_total);
	$server_upload = TeamSpeak3_Helper_Convert::bytes($ts3_connect->connection_filetransfer_bytes_sent_total + $ts3_connect->connection_bytes_sent_total);
  
  // show server as online
	echo "<table>";
	echo "<tr>";
	echo "<td>Server Status:</td><td class='server_online'>$server_status</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>Server Name</td><td class='server_name'>$server_name</td>" ;
	echo "</tr>";
	echo "<tr>";
	echo "<td>Server Adress:</td><td class='server_adress'>$server_adress</td>" ;
	echo "</tr>";
	echo "<tr>";
	echo "<td>Server Uptime:</td><td class='server_uptame'>$server_uptame</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>Users:</td><td class='server_users'>$server_actuallyusers/$server_maxusers slotów</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>Channels:</td><td class='server_channels'>$server_channels</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>Download:</td><td class='server_download'>$server_download</td>";
	echo "</tr>";
	echo "<tr>";
	echo "<td>Upload:</td><td class='server_upload'>$server_upload</td>";
	echo "</tr>";
	echo "</table>";
	}

// check error

	catch(Exception $e){
	echo "<p class='server_error'> ERROR: </p>" , $e->getMessage(), "\n";
	}
?>
25
Wrz

TeamSpeak 3 Music BOT na Linux cześć 1/3

Witajcie, w tym poradniku będzie można zobaczyć w jaki sposób można uruchomić BOTA, muzycznego dla TeamSpeak 3.

Specyfikacja techniczna na której uruchomiamy BOT’a, krótko mówiąc wymagania:

Serwer VPS (xen) lub serwer dedykowany,  Linux: 64 lub 32 bit. (w tym przypadku jest to 64 bitowy Debian 7), podstawowa znajomość linuxa oraz obsługiwania się za pomocą klienta ssh.

1# W pierwszej kolejności wykonujemy aktualizacje naszego systemu.

aptitude update && aptitude safe-upgrade

2# Edytujemy  plik sources.list za pomocą dowolnego edytora i wklejamy poniższy tekst.

deb http://ftp.pl.debian.org/debian stable main contrib non-free
deb-src http://ftp.pl.debian.org/debian stable main contrib non-free
deb http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ wheezy-updates main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free

3# Jeszcze raz wykonujemy aktualizacje naszego systemu.

aptitude update && aptitude safe-upgrade

4# Instalujemy potrzebne narzędzia:

apt-get install wget gnome nano gedit vnc4server

5# Akceptujemy, ściągamy i czekamy aż się zainstalują.

6# Wpierw uruchamiamy nasz serwer VNC, zostaniemy poproszeni o wpisanie hasła. Wpisujemy swoje hasło dwukrotnie. 

vnc4server :1

7# Wyłączamy nasz serwer VNC

vnc4server -kill :1

8# Edytujemy plik konfiguracyjny serwera VNC, dodajemy na końcu wpis: gnome-session &

nano /root/.vnc/xstartup

Plik powinien wyglądać następująco:

#!/bin/sh

# Uncomment the following two lines for normal desktop:
# unset SESSION_MANAGER
# exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
x-window-manager &
gnome-session &

9# Uruchamiamy nasz serwer VNC

vnc4server :1

10# Jeżeli wszstko zrobiliśmy dobrze, sciągamy klienta VNC i logujemy się do naszego serwera za pomocą zdalnego pulpitu.

nasze_IP:1

Wkrótce dalsza cześć.

30
Sty

TeamSpeak 3

Miło mi poinformować że nasz serwer głosowy przeszedł reorganizacje 🙂
Postawiony całkowicie na nowej maszynie oraz nowej serwerowni, która mieści się w Gdańsku i jest wpięta do największych węzłów ruchu sieciowego. Co pozwoli na zapewnienie najniższych pingów.

Farmer.AnDrIx.pl

25
Lis

Kolejki Fifo i Sygnały w Bash’u

client.sh

#!/bin/bash
number=$1
server_home=$2
#sprawdza czy wyrażenia są równe oraz czy plik jest łączem nazwanym, jeżei nie wyświetla komunikat.
if [ ! -p /home/studinf/$server_home/tmp/serwerfifo ]
then
  echo "Błąd połączenia"
fi
if [ ! -p ~/tmp/klientfifo ]
then
  mkfifo ~/tmp/klientfifo
fi
#zapisuje dane do pliku
echo $HOME:$number > /home/studinf/$server_home/tmp/serwerfifo
wynik=`cat < ~/tmp/klientfifo`
#wyświetla obliczony wynik
echo "Wynik to: $wynik"

serwer.sh

#!/bin/bash
while true
do
#pobiera dane
  client_msg=`cat < ~/tmp/serwerfifo`
  IFS=":"
  tokeny=($client_msg)
  client_home=${tokeny[0]}
  number=${tokeny[1]}
#polecenie uruchamiające plik odpowiedzialny za obliczenie pewnej funkcji arytmetycznej
  ./reply.sh $number $client_home &
done
reply.sh
#!/bin/bash
number=$1
client_home=$2
# mnożenie wyniku oraz odejmowanie od niego liczby dwa np. 3*3 - 2
let wynik=number*number+2
#zapisuje wynik
echo $wynik > $client_home/tmp/klientfifo
25
Lis

Finder

Poszukiwacz pików, działa na zasadzie współbieżnych, rekurencyjnych wywołań dla wszystkich podkatalogów danego katalogu.
#!/bin/bash

directory=$1
filename=$2
declare -a pids
declare -i status=0

if [ -d $directory ]					 # Jesli folder istnieje
then
	if [ -e $directory/$filename ]		 # jesli plik w danym folderze istnieje
	then
		echo -e "\033[42;37;1m $directory/$filename \033[0m"
		status=1
	fi
	echo -e "$directory/ "

	for subDirectory in $directory/*					
	  do
		if [ -d $subDirectory ]
		then
			./finder.sh $subDirectory $filename 1 & # Rekurencyjne wywołanie funkcji 
			pid=$$
			pids=( ${pids[@]-} $(echo "$pid") )
		fi
	done
	for i in $pids
	do
		wait $!					# Czekamy na ostatni proces potomny
		if [  $? -eq 1 ]		
		then 
			status=1			
		fi
	done

else
	echo -e "\033[41;37;1m Can't find '\033[44;37;1m$directory\033[0m\033[41;37;1m' folder!!!! \033[0m"
fi

if [ -e $3 ] && [ $status -eq 0 ] 		# Jeśli istnieje trzeci argument i zwrócony status wynosi 0, tzn ze nie znaleziono pliku.
then 
	echo -e "\033[41;37;1m File not found \033[0m"
fi
exit $status