Halle ich suche etwas (warscheinlich programierbar mit cronjob weiß da aber nicht wie das geht) das die automatisch erstellten Source TV demo daten vom war server auf einen webspace (der auf dem gleichen server liegt) verschiebt und sie vom war server löscht. ka ob es sowas giebt. wer nett wen ihr mir helfen könnt
Source TV demo
-
-
Vorbereitung
Lftp besorgen. Mit Debian geht das als root so:
Lftp ist in der Lage Username und Passwort von der Kommandozeile zu übernehmen.
Desweiteren gibt es eine mirror-Frunktionlftp sollte einmal gestartet werden und dann help mirror eingegeben werden, damit die Funktionsweise Verstanden wird.
Ich nutze folgende Optionen für mirror: e, r, R, i
Mittels quit kann man lftp wieder verlassen.Shell-Script schreiben
demo.shBash
Alles anzeigen#!/bin/bash if [ ! -f demo.cfg ]; then echo "Die Konfigurationsdatei fastdl.cfg wurde nicht gefunden"; exit; fi source demo.cfg if [ -z "$ftp_host" ]; then echo "FTP-Host fehlt in der Konfigdatei"; exit; fi if [ -z "$ftp_user" ]; then echo "FTP-Benutzer fehlt in der Konfigdatei"; exit; fi if [ -z "$ftp_password" ]; then echo "FTP-Passwort fehlt in der Konfigdatei"; exit; fi if [ -z "$dir_local" ]; then echo "Lokales Verzeichnis fehlt in der Konfigdatei"; exit; fi if [ -z "$dir_remote" ]; then echo "Verzeichnis auf dem Webserver fehlt in der Konfigdatei"; exit; fi echo -e "Beginne mit dem Spiegeln\n" echo "Host: $ftp_host" echo "User: $ftp_user" echo "Passwort: ****" echo echo "Lokales Verzeichnis: $dir_local" echo "Verzeichnis auf dem Webserver: $dir_remote" echo lftp -e "mirror -eRr -i $extension $dir_local $dir_remote; quit" -u $ftp_user:$ftp_password $ftp_host
Shell-Script ausführbar machen
chmod u+x demo.shConfig-Datei für das Script erstellen
Achtung: Als ASCII im Unix-Fortmat speichern!demo.cfg
Code
Alles anzeigen# Beispiel: # #ftp_host=sourceserver.info #ftp_user=user123 #ftp_password=passwort123 #dir_local=/home/gs/server/war1_css/srcds/cstrike/ #dir_remote=/subdomains/maps/httpdocs/xyz/demos/ #extension=".*\.dem$" (regular expression. In diesem Beispiel alle Dateien mit der Endung .dem) # #Alle Angaben sind noetig, damit daas Script die Dateien und Verzeichnisse Spiegeln kann. ftp_host= ftp_user= ftp_password= dir_local= dir_remote= extension=".*\.dem$"
Script testen
Cronjob
Leere Zeile am Ende der Datei nicht vergessenFalls du auf den Webserver Shell-Zugang hast, könntest du auch rsync nutzen. Ich habe hier das Beispiel mit lftp gemacht, da es universell einsetzbar ist und man für den Webserver keinen Shell-Zugang benötigt.
Falls es Probleme gibt, kannst du dich ja mal melden. Ich glaub ich werde diesen Artikel mal in unserem Wiki ausführlicher schreiben.
Ggf. könnte ich in das Script noch die Funktion einbauen die Dateien mit bzip2, zip, gzip oder rar vor dem Abgleich zu komprimieren. Die Demos lassen sich dadurch stark verkleinern. Der Traffic wird dadurch auch geschont.
-
ok danke ich werd es am we ma versuchen
-
im Prinzip ganz easy find ich..
cp -r /pfad zum Gameserver source tv/ /pfad/zum/wepspace
rm -R /pfad zum Gameserver source tv/
als batch ganz easy alle 30 mins oder so als crontab ausführen...weiß jetzt leider nicht die endungen von srcds... als demo...
kann dir gerne genauer und easy weiterhelfen... per icq... bin kein hoster oder provider sondern linux nappel wie du und ich..
-
Nicht jeder hat seinen Webspace auf dem gleichen Host. Deswegen auch der Weg über FTP.
Ansonsten kann man wie du schon geschrieben hast, die Dateien einfach kopieren. Der Parameter -u bewirkt, dass nicht existierende Dateien kopiert werden und bereits existierende veränderte Dateien überschrieben werden. Bei noch laufenden Demos werden die ansonsten unvollständig kopiert und später, wenn sie beendet sind, nicht aktualisiert.
Um Platz und Zeit zu sparen kann man auch Symlinks erstellen.
Der Webserver muss dann natürlich den Zugriff auf symbolische Links erlauben.
-
Ich habe mal dazu einen Artikel im Wiki geschrieben: http://sourceserver.info/wiki/tutorial/root/abgleich_ftp
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!