Skip to end of metadata
Go to start of metadata

Wenn Du einen eigenen Download-Server als Spiegel für den LoxBerry-Downloadserver einrichten möchtest ist das herzlich Willkommen! Du kannst dazu verschiedene Protokolle verwenden. Unsere Empfehlung ist den Server per rsync zu spiegeln. Das ist sehr Ressourcen schonend und belastet unseren Hauptserver so gering wie möglich.

 

RSYNC (Empfohlen!)

Mit folgendem Befehl kannst Du den Downloadserver per RSYNC in das lokale Verzeichnis /srv/loxberrymirror spiegeln:

COMMAND  rsync -rldtv --delete rsync://download.loxberry.de/loxberry /srv/loxberrymirror

  

Um automatisiert per rsync eine Ressourcen schonende Synchronisation durchzuführen speichert man das folgende Synchronsisations-Skript auf seinem Server ab (z. B. unter /usr/local/bin/sync.sh) und ändert das lokale Zielverzeichnis im Skript noch entsprechend den eigenen Gegebenenheiten ab:

 

sync.sh for rsync
#!/bin/bash

# Script for syncing download.loxberry.de to
# a local folder for creating a Mirror server

# Adjust TARGETFOLDER to your needs!

RSYNC=`which rsync`
DATE=`which date`
test -x $RSYNC || exit 0

HOST='download.loxberry.de'
TARGETFOLDER='/srv/loxberrymirror'
SOURCEFOLDER='/loxberry'

$RSYNC -rldtq --delete rsync://$HOST$SOURCEFOLDER $TARGETFOLDER --exclude=.htaccess

SYNCDATE=`$DATE +%c`
echo "Sync Information:" > $TARGETFOLDER/lastsync.txt
echo "-----------------" >> $TARGETFOLDER/lastsync.txt
echo >> $TARGETFOLDER/lastsync.txt
echo "Last synced on $SYNCDATE" >> $TARGETFOLDER/lastsync.txt
 
chmod -fR a+r $TARGETFOLDER

 

Das Skript muss mit chmod +x /usr/local/bin/sync.sh noch ausführbar gesetzt werden und kann anschließend von der Kommandozeile aus getestet werden. 

  

Anonymous FTP

Eine andere Alternative (wenn rsync nicht zur Verfügung steht) ist per Anonymous FTP. Achte bitte darauf Deinen FTP-Client so zu konfigurieren, dass nur Dateien übertragen werden, die auf dem Server neuer sind als die lokale Kopie! Ansonsten wird unserer Server sehr stark belastet!

FTP-Server:  download.loxberry.de

User: anonymous

Passwort: DEINE-EMAILADRESSE

 

Um automatisiert per FTP eine Ressourcen schonende Synchronisation durchzuführen eignet sich die Software lftp sehr gut, die auf allen Linuxdistributionen verfügbar ist. Unter Debian basierten Systemen (wie Ubuntu) kann sie mit sudo apt-get install lftp installiert werden. Anschließend speichert man das folgende Synchronsisations-Skript auf seinem Server ab (z. B. unter /usr/local/bin/sync.sh) und ändert das lokale Zielverzeichnis im Skript noch entsprechend den eigenen Gegebenenheiten ab:

 

sync.sh for FTP
#!/bin/bash

# Script for syncing download.loxberry.de to
# a local folder for creating a Mirror server

# Adjust TARGETFOLDER to your needs!

LFTP=`which lftp`
DATE=`which date`
test -x $LFTP || exit 0

HOST='download.loxberry.de'
TARGETFOLDER='/srv/loxberrymirror'
SOURCEFOLDER='/'

$LFTP -f "
open $HOST
lcd $SOURCEFOLDER
mirror --delete --verbose $SOURCEFOLDER $TARGETFOLDER
bye
"
 
SYNCDATE=`$DATE +%c`
echo "Sync Information:" > $TARGETFOLDER/lastsync.txt
echo "-----------------" >> $TARGETFOLDER/lastsync.txt
echo >> $TARGETFOLDER/lastsync.txt
echo "Last synced on $SYNCDATE" >> $TARGETFOLDER/lastsync.txt
 
chmod -fR a+r $TARGETFOLDER

 

Das Skript muss mit chmod +x /usr/local/bin/sync.sh noch ausführbar gesetzt werden und kann anschließend von der Kommandozeile aus getestet werden.

 

Automatische Synchronisation mit Cron

Für eine automatische Synchronisation legt man nun einen Cronjob an, der alle 6 Stunden das Synchronisationsskript aufruft (normalerweise als zusätzliche Zeile in der Datei /etc/crontab oder als separate Datei in /etc/cron.d - bitte dazu die Doku der eigenen Distribution hinzuziehen):

  

/etc/crontab
0 */6    * * *   root    sleep $[ ( $RANDOM % 300 )  + 1 ]s && /usr/local/bin/sync.sh

 

Die erste Ziffer (hier die Null) steht für die Minute, in der die Aktion durchgeführt wird. Damit nicht alle Spiegelserver gleichzeitig am Hauptserver anfragen und eine hohe Last erzeugen, ändere diese Zahl bitte auf eine Minute zwischen 0-59 ab. Zusätzlich bewirkt der Sleep-Befehl eine zufällige Verzögerung zwischen 1-300 Sekunden. Beispiel: Dein Server soll alle 6 Stunden in der 43. Minute synchronisieren. Der Crontab-Einträg würde dann wie folgt aussehen:

 

/etc/crontab
43 */6    * * *   root    sleep $[ ( $RANDOM % 300 )  + 1 ]s && /usr/local/bin/sync.sh

 

Webserver Apache konfigurieren

Damit der Mirror für andere erreichbar ist kannst Du einfach in ein beliebiges Verzeichnis Deines Webservers spiegeln und die URL in obige Liste eintragen. Wenn Du den Spiegelserver unter einer eigenen Subdomain Deines Webservers erreichbar machen möchtest (z. B. loxberrydownload.DEINEDOMAIN.de) kannst Du folgende Konfigurationsdatei für den Apache verwenden (die Subdomain musst Du meist separat bei Deinem Provider einrichten):

 

Virtual Host Apache Konfiguration
<VirtualHost *:80>
	ServerAdmin webmaster@DEINEDOMAIN.de
        ServerName loxberrydownload.DEINEDOMAIN.de	

	DocumentRoot /srv/loxberrymirror/

	<Directory />
		Options FollowSymLinks
		AllowOverride None
	</Directory>

	<Directory /srv/loxberrymirror/>
		Options Indexes FollowSymLinks MultiViews
		AllowOverride All
                Require all granted
	</Directory>

	ErrorLog /var/log/apache2/error_loxberrydownloads.DEINEDOMAIN.de.log

	# Possible values include: debug, info, notice, warn, error, crit,
	# alert, emerg.
	LogLevel warn

	CustomLog /var/log/apache2/access_loxberrydownloads.DEINEDOMAIN.de.log combined

</VirtualHost>

 

Die neue Konfiguration musst Du im Apache Konfigurationsordner (meist /etc/apache2/sites-available) z. B. als loxberrydownload.conf abspeichern. Anschließend aktivierst Du den neuen Virtuellen Host im Apache mit dem Befehl a2ensite loxberrydownload und startest den Webserver mit service apache2 reload neu.

  • No labels