Beiträge von master_d

    Es kann durchaus sein, dass gewisse Prozesse von außen beendet werden.
    Es wäre daher ebenfalls interessant, auf was für einem System die TS3-Server betrieben werden.
    Handelt es sich um vServer?
    Welche Virtualisierungstechnologie wird ggf. verwendet?
    Leistungsdaten des Systems, etc.

    Normalerweise solltest du einfach den TS3-Server abschalten, und dann kannst du ein Filebackup machen.


    Also einfach den Ordner auf einen neuen Server übernehmen.
    Ansonsten bitte die entsprechenden Fehlermeldungen hier mal posten, dann kann man das Problem vielleicht lösen.

    Stimmt, wäre auch eine Möglichkeit. Ich war wohl wieder im "WhatsApp-Bashing-Mode" ;)


    Wäre wirklich die einfachste Möglichkeit, da außer 1-2 XMPP-Accounts keine weitere Einrichtung nötig ist. Das Protokoll ist frei nutzbar, und es lässt sich alles selbst betreiben, falls wirklich erforderlich.

    Ich sehe dahingehend kein Problem, so etwas zu realisieren.


    Wenn bereits ein erster Ansatz mit einem Script/Bot da ist, so muss dieser nur um eine Benachrichtigung auf dem entsprechenden Weg erweitert werden.


    Persönlich würde ich das ganze als Nachricht per "Telegram" lösen. Die Telegram-Bot-API ist dahingehend einfach verwendbar.

    Bei dem was du hier beschrieben hast, und dem was ich selbst getestet habe, würde ich einfach mal auf ein Firewall-Problem tippen.


    Schau dir doch bitte mal die Ausgabe von "iptables -L -nv" an, und prüfe, ob die entsprechenden Ports für Teamspeak3 auch wirklich freigegeben sind.


    Das wären:
    9987/udp
    10011/tcp
    30033/tcp
    jeweils eingehend.

    Weil du auch hier wieder nur "murx" versucht hast, der nicht funktionieren kann.
    Der obere Bereich ist schon mal ganz komisch, und für mich nicht wirklich benötigt.


    Besser wäre es, einfach initial alle Daten einzulesen, und danach nur noch stur die nötigen Befehle zu senden


    So könnte es durchaus besser funktionieren:


    Und bitte, wenn du Code irgendwo postest, bitte ähnlich wie hier, mit entsprechenden Einrückungen. Macht den Code einfach lesbarer.

    Teile dein Script in 2 Bereiche.


    Erst alle nötigen Daten einlesen, und dann im zweiten Teil wieder durch die gelesenen Daten iterieren, und die entsprechenden Infos setzen.


    Also erst eine Schleife mit der Datenbank-Verbindung. Danach dann eine Schleife mit "while(true)", in welcher dann durch die Daten iteriert wird, und auf jedem Server die entsprechenden Befehle abgearbeitet werden.

    Dahingehend auf jeden Fall prüfen, ob die nötigen Daten jeweils zur Verfügung stehen.


    Die Funktion "var_dump" kann dabei durchaus behilflich sein, um die vorhandenen Daten einfach darstellen zu können.


    //Edith:
    OK, mit korrekter Einrückung kann man es besser sehen.
    Natürlich wird in deinem Script nur immer der erste Server funktionieren, denn aus dem while(1) kommt man die wieder raus.
    Das "kann so gar nicht" funktionieren.

    Bei deinem derzeitigen Code wird mindestens einmal alles ausgeführt.


    Ich empfehle daher, vor dem lesen von Ergebnissen aus MySQL, die Anzahl der gelesenen "Zeilen" aus der Datenbank zu prüfen. Wenn diese Zahl == 0 ist, dann braucht keine Verarbeitung stattfinden. Also füge im Bereich "Zeile 6" eine entsprechende Prüfung ein.
    Alternative wäre eine Prüfung, ob überhaupt Daten vorhanden sind, als eine Prüfung im Bereich "Zeile 9", ob das Array die nötigen Daten enthält, und nur dann zu verarbeiten, wenn Daten da sind.

    Solche Problemstellungen lassen sich nur durch einen "Daemon" lösen.
    Dieser kann auch als PHP-Script implementiert werden.


    Einfach ein Script erstellen, welches in einer Dauerschleife die entsprechenden Prüfungen durchführt.
    Dazu legt man normalerweise ein "PID-File" an, welches die Prozess-ID des aktiven Scripts enthält (natürlich automatisiert), und dann kannst du minütlich prüfen, ob diese Prozess-ID existiert, und wenn nicht, das Script erneut starten.

    mir fällt dabei erst einmal nur ein, ein Script zu schreiben, welches nach den UUID's im aktuellen TS3-Server sucht, und diese dann in die entsprechenden Gruppen schiebt.


    Das Problem ist halt, dass die Speicherung anhand von cldbid's geschieht, also die Nutzer zumindest einmal auf dem Server gewesen sein müssen.


    Im konkreten Fall könnte ich meine Hilfe anbieten, ein entsprechendes Script zu erarbeiten.

    ZU aller-erst sei dir gesagt, dass die derzeitige Teamspeak3-Version mit VisualStudio 2015 kompiliert ist.
    Dies könnte später zu Problemen mit deinen Plugins führen.


    Ansonsten weist der Fehler auf eine Definition eines Variablentyps hin. Ich müsste den Typ einmal genau prüfen, wo der definiert ist, aber das kann ich erst gegen Abend.

    Es fehlt die Berechtigung zum "ausführen" der Datei.


    Folgende Befehle sollten helfen:

    Code
    chmod +x ts3server
    chmod +x ts3server_minimal_runscript.sh
    chmod +x ts3server_startscript.sh


    // Edit by Sebbo: Leerzeichen in Dateinamen entfernt

    Ja, genau das ist das Problem.


    Anscheinend ist dein TS3-Client nicht in der Lage, eine DNS-Auflösung des zu betretenden Servers durchzuführen.


    Bitte gib doch einmal den Inhalt des Client-Logs hier an, in dem ein solcher Versuch dokumentiert wird. Benutze dafür einfach den TS3-Plublic-Server, dann stehen darin potentiell keine zu maskierenden Daten.

    Dann lass es dir von mir erläutern.


    Channel-Rechte werden, wenn nicht anders eingestellt, auch an die "Subchannel" weitergegeben.
    Daher wird einfach dem entsprechenden Benutzer in den Channeln "Gilde1" und "Gilde3" die entsprechende Channel-Gruppe zugewiesen. Somit hat er Rechte in diesen beiden Channeln, sowie deren Subchannel, aber nicht im Channel "Gilde2", und kann diesen somit nicht betreten.


    Wenn eine detaillierte Einführung nötig ist, würde ich auch für ein persönliches Gespräch zur Verfügung stehen.