Python Servermanager

05/01/2013 00:19 Spartan#117#1
Hi Leute! :D

Ich arbeite gerade an einem Servermanager in Python. Anfangs sollte er nur dieses - meiner Meinung nach - schlecht durchdachte start.sh/shut.sh Zeugs, also die ganzen verschiedenen Shell-Scripts ablösen & alles in einem Script vereinen.

Nun habe ich das Script jedoch noch erweitert mit der Funktion, dass Befehle an den Server gesendet werden können und beispielsweise die aktuelle Anzahl der User in Echtzeit ausgegeben kann. (mittels der sogenannten "API" oder Handshake in der Game-Datei)

Ich habe vor dieses Projekt hier auf ePvP zu releasen (falls dieses Release unnötig wäre, bitte per PN oder in diesen Thread mit Begründung), jedoch brauche ich von euch noch einige Ideen, welche Funktionen ich noch einbauen sollte.

Deshalb, schreibt doch bitte was ihr euch denn beim Verwalten eures Servers schon immer gewünscht habt, oder was euch momentan fehlt. Ich werde dann schauen ob es realisierbar ist und es danach so gut wie möglich einfügen.

Ich habe hier noch eine Liste mit Sachen, die ich evtl. noch reinpacken werde:
  • Backup per Befehl
  • Automatisches Backup
  • Logfiles löschen/leeren
  • Aktuelle Userzahlen ausgeben
  • Notice an den Server senden (evtl. mit Cronjob für regelmässige Nachrichten)

Ich bin für Vorschläge offen, also nicht zögern mit den Ideen! :)

Viel Spaß beim Überlegen & freundliche Grüße
Spartan#117
05/01/2013 05:53 NiiceOne#2
befehle ausführen über des panel.

wie z.b. dc, block_chat, events starten/stoppen usw..

ox steuern wenn möglich.
05/01/2013 12:14 ButterToast™#3
Zeitgestuerte Restarts , Ingame an kündigungen machen können , Ban Log reader
05/01/2013 12:14 .PolluX#4
ox steuern braucht man nicht unbedingt, Wozu gibts das Auto-Ox?
Aber wäre natürlich nice to have^^

Ansonsten, nett dass du sowas für uns machst, wenn ich dir irgendwie helfen kann tu ich das gerne (Ideen hab ich aber grade keine parat :D)
05/01/2013 14:59 Spartan#117#5
Quote:
Originally Posted by NiiceOne View Post
befehle ausführen über des panel.

wie z.b. dc, block_chat, events starten/stoppen usw..

ox steuern wenn möglich.
DC hab ich getestet, funktioniert leider nicht.. (Der Char wird nicht gekickt, es wird nur der Name zurückgegeben falls dieser online ist)
BLOCK_CHAT habe ich auch getestet, dieser Befehl funktioniert jedoch einwandfrei, daher werde ich ihn einbauen.

Man kann damit Eventflags ändern, sollten die Events nur davon abhängig sein, wäre es machbar. Aber auf Quests(mit denen manche Events gesteuert werden) kann man nicht zugreifen.

Quote:
Originally Posted by ButterToast™ View Post
Zeitgestuerte Restarts , Ingame an kündigungen machen können , Ban Log reader
Zu den zeitgesteuerten Restarts:
Mir erschließt sich leider noch immer kein Sinn dahinter. :o

Ingame Ankündigungen schreiben (Notice) ist eingebaut. :)

Welchen Ban Log meinst du denn?

Quote:
Originally Posted by [SA]PolluX View Post
ox steuern braucht man nicht unbedingt, Wozu gibts das Auto-Ox?
Aber wäre natürlich nice to have^^

Ansonsten, nett dass du sowas für uns machst, wenn ich dir irgendwie helfen kann tu ich das gerne (Ideen hab ich aber grade keine parat :D)
Soweit ich weiß lässt sich das OX nicht ausschließlich über Eventflags steuern, deshalb ist das nicht machbar. :(
05/01/2013 17:09 .PolluX#6
ok, dann ist aber tag/nacht ändern machbar, oder? :D
05/01/2013 17:13 ButterToast™#7
Quote:
Originally Posted by Spartan#117 View Post

Zu den zeitgesteuerten Restarts:
Mir erschließt sich leider noch immer kein Sinn dahinter. :o

Ingame Ankündigungen schreiben (Notice) ist eingebaut. :)

(

Server restarts um die CPU zu entlasten?
05/01/2013 17:32 Spartan#117#8
Quote:
Originally Posted by [SA]PolluX View Post
ok, dann ist aber tag/nacht ändern machbar, oder? :D
Das wäre mit einem Cronjob ganz leicht realisierbar, gerade getestet & funktioniert. :)

Quote:
Originally Posted by ButterToast™ View Post
Server restarts um die CPU zu entlasten?
Inwiefern wird denn dadurch die CPU entlastet? :p
05/01/2013 19:16 ButterToast™#9
Quote:
Originally Posted by Spartan#117 View Post
Das wäre mit einem Cronjob ganz leicht realisierbar, gerade getestet & funktioniert. :)


Inwiefern wird denn dadurch die CPU entlastet? :p
Wenn Die Prozesse Gekillt werden ? ist doch normal xD
05/01/2013 20:21 .PolluX#10
noch ideen:
mysql / apache / sshd neu starten

Weil man das ja wenn großartig über cd blablubb && lksjdflk machen muss und via script wäre das ja dann vieeel einfacher^^
05/01/2013 20:22 Spartan#117#11
Quote:
Originally Posted by ButterToast™ View Post
Wenn Die Prozesse Gekillt werden ? ist doch normal xD
Normalerweise sollte auf einem Produktionsserver nur das laufen, was auch benötigt wird. Wenn man diese Prozesse beendet, muss man sie beim Start des Servers sowieso starten bzw sie werden gestartet, weil sie nunmal gebraucht werden. Das macht für den Prozessor keinen Unterschied ob die jetzt kurz neugestartet werden oder nicht, spätestens nach dem Reboot laufen alle Prozesse wieder und der Prozessor hat die gleiche Last.

Daher versteh ich den Sinn dahinter nicht, außerdem sollte ein Server ja das Ziel haben möglichst immer online zu sein. Für geplante Wartungsarbeiten könnte ich mir dies jedoch noch vorstellen...
05/01/2013 20:24 mrapc#12
Ich hab mal eine Frage, ist der Script dann später InGame? und wenn ja wie hast du für die Sicherheit gesorgt nicht das plötzlich ein Spieler sein Unwesen in der Datenbank etc. treibt dann wären wir wieder im Zeitalter des API-Tools :D
05/01/2013 22:21 .PolluX#13
ich glaube das wird allein serverside das script, clientside bau ich eh nix ein was iwie sicherheit gefährdet xD
05/01/2013 23:52 Spartan#117#14
Quote:
Originally Posted by [SA]PolluX View Post
noch ideen:
mysql / apache / sshd neu starten

Weil man das ja wenn großartig über cd blablubb && lksjdflk machen muss und via script wäre das ja dann vieeel einfacher^^
Kann ich einbauen.. :)

Quote:
Originally Posted by mrapc View Post
Ich hab mal eine Frage, ist der Script dann später InGame? und wenn ja wie hast du für die Sicherheit gesorgt nicht das plötzlich ein Spieler sein Unwesen in der Datenbank etc. treibt dann wären wir wieder im Zeitalter des API-Tools :D
Das Script läuft serverside über die Shell. Kann also wie diese start.sh/stop.sh per PuTTY oder ähnlichem bedient werden. Unabsichtliche Sicherheitslücken wären erst möglich, wenn ein potentieller Angreifer SSH Zugriff hat, dann würde ich mir aber nicht nur wegen diesem Script sorgen machen. :rolleyes:

Quote:
Originally Posted by [SA]PolluX View Post
ich glaube das wird allein serverside das script, clientside bau ich eh nix ein was iwie sicherheit gefährdet xD
Da hast du recht. :p