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.

1

Donnerstag, 19. Februar 2009, 12:53

Script Customdatein auf externen Webspace per FTP übertragen

Hi

Habe mir schon lange Gedanken darüber gemacht, wie ich am einfachsten vom Root aus direkt die Customdateien per FTP auf meinen Webspace bekomme. Da ich bei Google nichts brauchbaresgefunden habe, musst was eigenes her.
Habe noch nie Ansatzweise vorher versucht ein Script zu schreiben und hatte mich bisher auch nie damit beschäftigt.

Aber irgendwann muss man ja mal anfangen und hier ist das erste Ergebniss.
Ich weiss auch das da ein haufen Schnickschnack drin ist der eigentlich nicht unbedingt reinmüsste, aber das ganze sollte ja auch bischen den Lerneffekt für mich haben, deswegen hab ich da auch ein paar unnötige Sachen drin.

So mal kurz das Funktionsprinzip des Scripts erklärt:

Zuerst werden alle benötigten Pakete installiert(bzip2, rsync, curlftpfs)
Die Customdateien wie maps, sounds, materials werden erst in einen seperaten, ich habs lokalen Fasdownloadordner kopiert, das hat den Grund das ich dann jederzeit einfach die config.cfg ändern könnte und den Fastload vom Root nutzen, falls mal mit dem WEbspace irgendwas sein sollte. Danach werden alle Dateien mit bzip2 gepackt.
Anschliessend wird der FTP Server gemounted, was den Vorteil hat das er wie ein lokaler Speicher behandelt wird da ich per FTP ja eigenlich keine Ordner übertragen kann sondern nur Datein.
Dann wird die Verbindung mit dem FTP wieder getrennt und das Script wird beendet.


Es sind auch einige Änderungen von mir selber geplant, die ich aber erst noch umsetzen muss (Erinnerung bin noch Newbee ^^).

Geplant ist:
Statt "cp" möchte ich rsync einsetzen.
Dann sollte noch die Passworteingabe für den FTP nicht sichtbar sein (hatte aber mit "stty -echo" irgendwie Probleme).

Sind bestimmt noch hundert Sachen drin, die man besser machen könnte und da seid ihr gefragt !!!!
Schreibt einfach alles was nicht passt oder was man besser machen könnte, bin für jede Kritik egal ob positiv oder negativ, dankbar.

mfg Psy
»thx2k« hat folgende Datei angehängt:
  • firstscript.bz2 (2,11 kB - 119 mal heruntergeladen - zuletzt: 28. Februar 2024, 00:57)
<!-- m --><a class="postlink" href="http://www.clan-tbm.de">http://www.clan-tbm.de</a><!-- m -->

DeaD_EyE

Administrator

Beiträge: 3 980

Wohnort: Hagen

Beruf: Mechatroniker (didaktische Systeme)

Rootserver vorhanden: Nein

  • Nachricht senden

2

Donnerstag, 19. Februar 2009, 17:03

Re: Script Customdatein auf externen Webspace per FTP übertragen

Schönes Script. Die automatische Installation mittels "apt-get -y install" finde ich unschön. Das sollten die User besser selber installieren. Besser wäre es, wenn du anfangs einen Test machst. Mit folgendem Code kannst du z.B. überprüfen, ob ein Programm installiert ist:

Quellcode

1
if [ ! `which lftp` ]; then echo "Das Programm lftp ist nicht installiert"; fi

In diesem Fall fird nach lftp gesucht.

Die Methode über Root zu mounten finde ich aber nicht so gut. Ich hab mich ein bisschen umgesehen und einen nützlichen ftp-client für Linux gefunden. Mit lftp kann man einfach einen mirror erstellen. Man braucht dafür keine Root-Rechte. Ich habe mal dazu ein kleines Beispielscript geschrieben

Zuerst lftp installieren:

Quellcode

1
apt-get update && apt-get install lftp


fastdl.sh:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/bin/bash
if [ ! -f fastdl.cfg ]; then echo "Die Konfigurationsdatei fastdl.cfg wurde nicht gefunden"; exit; fi
source fastdl.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 -R -e $dir_local $dir_remote; quit" -u $ftp_user:$ftp_password $ftp_host


fastdl.cfg:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Beispiel:
#
#ftp_host=sourceserver.info
#ftp_user=user123
#ftp_password=passwort123
#dir_local=/home/sourceserver/fastdl/
#dir_remote=/subdomains/maps/httpdocs/xyz/
#
#Alle Angaben sind noetig, damit daas Script die Dateien und Verzeichnisse Spiegeln kann.

ftp_host=
ftp_user=
ftp_password=
dir_local=
dir_remote=


Mittels Rsync lässt sich das ganze auch machen. Manche Clans haben zu dem Root-Server nur einen zusätzlichen Webserver ohne ssh-Zugriff. Ich selber nutze Rsync.

3

Donnerstag, 19. Februar 2009, 17:49

Re: Script Customdatein auf externen Webspace per FTP übertragen

Zitat von »"DeaD_EyE"«

Schönes Script. Die automatische Installation mittels "apt-get -y install" finde ich unschön.

ist vor allem nicht nur unschön, sondern wird dadurch debian abhängig... würde es auch die user selber installieren lassen.

würde allgemein versuchen auf root zu verzichten, immerhin erledigt das script aufgaben mit denen root nichts zu tun haben sollte...

4

Freitag, 20. Februar 2009, 12:58

Re: Script Customdatein auf externen Webspace per FTP übertragen

Hi

Danke für die Antworten, hatte das auch im Hinterkopf eventuell das ganze die User selber installieren zu lassen, vor allem weil man dann den Root nicht braucht.

Eventuell bau ich ne -install funktion ein, kann ja überprüfen ob debian installiert ist und dann die Pakete installieren.
Müsste doch auch über sudo gehen, dass der dann während der Installation nach dem Rootpasswort fragt, so braucht man schon nicht mehr als root User eingeloggt sein.

Noch jemand ne Idee, wie man die Passworteingabe unsichtbar macht stty -echo hat nicht geklappt oder ich hatte einen Fehler drin.

mfg chris
<!-- m --><a class="postlink" href="http://www.clan-tbm.de">http://www.clan-tbm.de</a><!-- m -->

5

Freitag, 20. Februar 2009, 13:32

Re: Script Customdatein auf externen Webspace per FTP übertragen

Zitat von »"thx2k"«

Eventuell bau ich ne -install funktion ein, kann ja überprüfen ob debian installiert ist und dann die Pakete installieren.

das wär ne gute idee, dann könnteste vor allem auch, wenn kein debian/ubuntu/etc. detected wurde ne ausgabe machen die dem user mitteilt welche programme er installieren muss.


Zitat von »"thx2k"«

Müsste doch auch über sudo gehen, dass der dann während der Installation nach dem Rootpasswort fragt, so braucht man schon nicht mehr als root User eingeloggt sein.

müsste gehen, allerdings hat nicht jeder sudo... ich persönlich halte sudo auf servern z.b. für ein sicherheitsrisiko, da man so nur das passwort eines users knacken muss um root zugang zum system zu bekommen... lokal benutze ich es aus faulheit um der users gruppe zugriff auf halt und reboot zu geben, aber faulheit hat auf servern nix verloren :P.
könntest aber mit su -c arbeiten, so dass die root rechte nur für die installation angewendet werden. also z.b. su -c "apt-get install bla bla bla"