Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: sourceserver.info. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

  • DeaD_EyE

    Administrator

    Sie müssen sich registrieren, um eine Verbindung mit diesem Benutzer herzustellen.

13

ESL-Config Downloader

Bewertung:

Von DeaD_EyE, Dienstag, 8. März 2011, 20:10

Ich hab mal ein kleines Python-Script geschrieben, welches die ESL-Configs nur herunterlädt, wenn diese auf dem ESL-Server neuer sind, als die gespeicherten. Das Script lädt die cssconfig.zip in dem Verzeichnis herunter, in dem sich auch das Script befindet. Nach dem Download wird das Zip-Archiv entpackt und ein Shell-Script ausgeführt, dass sich im gleichen Verzeichnis befindet.


Hier der Code:

configdownloader.py

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/usr/bin/python
import urllibzipfileossysshlexsubprocess

cssconfigurl 'http://gfx.esl.eu/gfx/media/de/css/cfg/cssconfig.zip'
timestampfile 'cssconfig.zip.txt'
programm_after_download './config_update.sh'

os.chdir(os.path.split(os.path.abspath(sys.argv[0]))[0])

def getfile_extract(url):
    file url.split('/')[-1]
    urllib.urlretrieve(urlfile)
    file_zip zipfile.ZipFile(file)
    file_zip.extractall()
    file_zip.close()

def gettimestamp_server(file):
    timestamp_fp open(file,'r')
    configdate_server timestamp_fp.read()
    timestamp_fp.close()
    return configdate_server

def settimestamp_server(file,timestamp):
    timestamp_fp open(file,'w')
    timestamp_fp.write(timestamp)
    timestamp_fp.close()
    return

def programm_start(programm):
    start subprocess.Popen(shlex.split(programm), shell=False)
    return

configdate_esl str(urllib.urlopen(cssconfigurl).headers.getdate('Last-Modified'))
configdate_server None

if os.path.isfile(timestampfile):
    configdate_server gettimestamp_server(timestampfile)
    if not configdate_server == configdate_esl:
        getfile_extract(cssconfigurl)
        settimestamp_server(timestampfile,configdate_esl)
        programm_start(programm_after_download)
else:
    getfile_extract(cssconfigurl)
    settimestamp_server(timestampfile,configdate_esl)
    programm_start(programm_after_download)


Nach erfolgtem Update wird ein Shellscript ausgeführt. Als Beispiel habe ich mal eins erstellt, dass './config_update.sh' heißt.

config_update.sh

PHP-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash
serverbasepath="/home/server/"
#Basisverzeichnis der Server
servers="testserver"
#Serververzeichnisse Mit einem Leerzeichen trennen
addpath="orangebox/cstrike/cfg"
#so belassen, wenn es Configs für CS:S sind
configdir="server"
#so belassen, wenn es cssconfigs.zip ist

if [ ! -"$configdir]; then exit; fi

for server in $servers; do
        if [ ! -"$serverbasepath/$server/$addpath/" ]; then continue; fi
        cp -u $configdir/* $serverbasepath/$server/$addpath/
done

Das Script aktualisiert alle eingetragenen Server. Ihr könnt dies auch nach belieben anpassen. Manche stehen eher auf die konventionelle Weise und tragen alle Server einzeln ein:

PHP-Quelltext

1
2
3
4
#!/bin/bash
cp -u server/* /home/server/warserver1/orangebox/cstrike/cfg/
cp -u server/* /home/server/warserver2/orangebox/cstrike/cfg/
cp -u server/* /home/server/warserver2/orangebox/cstrike/cfg/


Was noch eingebaut wird:
  • Programmabbruch, wenn der Server nicht erreichbar ist.

Dieser Artikel wurde bereits 413 304 mal gelesen.

Tags: Configs, Downloader, ESL

Kategorien: SRCDS


Kommentare (11)

Blog Navigation

Nächster Artikel

Backupscript für Webserver und MySQL

Von DeaD_EyE (Montag, 21. März 2011, 23:05)

Vorheriger Artikel

Waffen der Spieler entfernen...

Von DeaD_EyE (Freitag, 25. Februar 2011, 13:38)