Modul Menü

Wer ist online?

Insgesamt sind 7 Besucher online: 1 registrierter, 0 unsichtbare und 6 Gäste
Der Besucherrekord liegt bei 226 Besuchern, die am 8. Jul 2012, 14:25 gleichzeitig online waren.

Mitglieder: Google [Bot]

basierend auf den aktiven Besuchern der letzten 5 Minuten

Statistik

94 Beiträge


Geburtstage

Heute hat kein Mitglied Geburtstag Geburtstage in den nächsten 3 Tagen: PoldiSH, ExhighilM (40)

Kalender

<< Mai 2013 >>
Mo Di Mi Do Fr Sa So
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

Fest u. Feiertage Kalender-Ereignisse
01.05. - 1. Mai
09.05. - Christi Himmelfahrt
12.05. - Muttertag
19.05. - Pfingstsonntag
20.05. - Pfingstmontag
30.05. - Fronleichnam

Anstehende Termine:

mldonkey HOWTO

HOWTOs zum c't Server

Moderator: Moderatoren Team

mldonkey HOWTO

Beitragvon lomdar67 » 7. Aug 2005, 19:38

mldonkey HOWTO:

Als root User folgende Operationen ausführen:

1.) Einen neuen User "mldonkey" anlegen. Dieser User braucht eine Shell, sonst funktioniert später der automatische Start von mldonkey beim Hochfahren des Servers nicht!
2.) Ein Core-Binary von http://download.berlios.de/pub/mldonkey/spiralvoice/ runterladen.
3.) Dieses Core-Binary in ein temporäres Verzeichnis entpacken.
4.) Im Homeverzeichnis des Users "mldonkey" den Ordner "donkey" anlegen.
5.) Die Datei "mlnet" vom temporären Verzeichnis nach /home/mldonkey/donkey/ kopieren.
5.) Mit chown -R mldonkey:users /home/mldonkey den Besitz der Dateien und Verzeichnisse auf den User mldonkey übertragen.
6.) Jetzt das folgende Start-Script unter /etc/init.d/mldonkey speichern:

Code: Alles auswählen
#!/bin/sh
#
# MLDonkey start/stop script
#
# DESCRIPTION:
#   Script for starting, stopping and restarting
#   MLDonkey as a daemon.
#
# REQUIRES:
#   - bash, ps, wc, grep, awk and netcat.
#
# USAGE:
#   - run "/etc/init.d/MLDonkey start"   (to start)
#   - run "/etc/init.d/MLDonkey stop"   (to stop)
#   - run "/etc/init.d/MLDonkey restart"   (to restart)
#

## BEGIN USER CONFIGURATION ##
#
# Set running directory and username (not root).
MLDONKEYDIR=/home/mldonkey/donkey
USERNAME=mldonkey
#
# Set Netcat's (TCP/IP swiss army knife) filename - usually "nc" or "netcat"
   NETCAT=nc
#
## END USER CONFIGURATION ##

status() {
PID=`ps ax -o "pid user command" | egrep -m 1 \{3\}./mlnet | awk {'print $1'}`
if [ $PID ];then
        if [ `ps -p $PID | wc -l` -eq 2 ]; then
                echo "mldonkey (pid $PID) running..."
                return 1
        else
                echo "Stale PID"
        fi
fi
echo "mldonkey is stopped"
return 0
}

start() {
# see if there is a mldonkey running
status &> /dev/null
if [ $? = 0 ]; then
   echo "Starting mldonkey:"
   cd $MLDONKEYDIR
   # Run MLDonkey
   su $USERNAME -c "./mlnet > /dev/null 2>&1 &"
fi
return 0
}

stop() {
status &> /dev/null
if [ $? = 1 ]; then
   echo "Stopping mldonkey:"
   cd $MLDONKEYDIR
   bash -c "$NETCAT 127.0.0.1 4000 <<STOPHERE
      close_fds
      kill
      STOPHERE" &> /dev/null
   sleep 10
   return 0
fi
return 1
}

case "$1" in
   'status')
      status ;;
   'start')
      start ;;
   'stop')
      stop ;;
   'restart')
      stop
      start ;;
   *)
      echo "usage $0 start|stop|restart"
      exit 1 ;;
esac

exit $?
##-- eof


7.) Das Script auführbar machen: chmod 755 /etc/init.d/mldonkey.
8.) Mit apt-get install netcat den Befehl netcat installieren.
9.) Script testen mit:

/etc/init.d/mldonkey start
/etc/init.d/mldonkey status
/etc/init.d/mldonkey stop
/etc/init.d/mldonkey status


Wenn alles funktioniert:

10.) Mit update-rc.d mldonkey defaults das Startscript in den Bootvorgang einbinden.
11.) Jetzt die Datei /home/mldonkey/donkey/downloads.ini bearbeiten.

allowed_ips = [
"127.0.0.1";]

Hier z.B.

allowed_ips = [
"127.0.0.1"; "192.168.1.255";]

eintragen, dadurch dürfen alle Rechner im Netzt auf den mldonkey zugreifen.

Wenn mit ein GUI wie z.B. Sancho (http://sancho-gui.sourceforge.net) benutzen will dann noch folgendes ändern:

(* Ask for GUI start *)
ask_for_gui = false

ändern in

(* Ask for GUI start *)
ask_for_gui = true

12.) Jetzt noch im IPCop die richtigen Ports öffnen (bitte nur für die Protokolle, die man später auch im mldonkey aktivieren will):

    eDonkey TCP 4662
    eDonkey UDP 4662+4=4666
    eDonkey (chat) UDP 4665
    Overnet TCP beliebig
    Overnet UDP wie TCP
    Gnutella TCP 6346
    Gnutella2 TCP 6346(6347)
    Gnutella2 UDP 6346(6347)
    BitTorrent TCP 6882 (6881-6889)
    Fasttrack TCP 1214
    OpenNap TCP 6699
    Direct Connect TCP 4444
    Direct Connect UDP 4444
    Soulssek TCP 2234

Weitere Hinweise zum mldonkey gibt's hier:

http://www.mldonkey.org/dokuwiki/doku.php?id=start:faq
Zuletzt geändert von lomdar67 am 13. Sep 2005, 06:04, insgesamt 1-mal geändert.
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Wozu netcat? Warum mldonkey nicht per apt-get install?

Beitragvon nasenber » 10. Aug 2005, 12:29

Hallo!

Ich bin weiß Gott kein Profi, aber warum installiert man mldonkey nicht einfach per apt-get install? Ich habe es so gemacht und dafür halt die /etc/apt/sources.list um ein paar Einträge ergänzt. Die habe ich momentan nicht parat, weil ich nicht zu Hause bin, kann sie aber bei Bedarf nachreichen.

So wird der mldonkey ohne extra Konfigurationsarbeit automatisch bei Hochfahren mitgestartet und ich muss auch keinen User mldonkey anlegen. Das Script stellt beim Installieren halt ein paar einfache Fragen. 8)

Und wofür ist netcat in diesem Zusammenhang gut? Beim Überfliegen des HOWTO habe ich nur die Bemerkung gefunden, dass man es installieren soll. Aber wozu? Hat das etwas mit dem Anzeigen eines fertigen Downloads zu tun? :? Dafür habe ich eine Samba-Freigabe für den Downloads-Ordner gemacht.

Ansonsten schönes HOWTO, vielen Dank auch für die Portliste!
nasenber
Starter
Starter
 
Beiträge: 10
Registriert: 10. Aug 2005, 12:29

Re: Wozu netcat? Warum mldonkey nicht per apt-get install?

Beitragvon lomdar67 » 10. Aug 2005, 12:54

nasenber hat geschrieben:Hallo!

Ich bin weiß Gott kein Profi, aber warum installiert man mldonkey nicht einfach per apt-get install?

Und wofür ist netcat in diesem Zusammenhang gut?

Dafür habe ich eine Samba-Freigabe für den Downloads-Ordner gemacht.


Ich hatte keine "Sourcen" für Debian gefunden die halbwegs aktuell sind, drum die etwas umständlicher Variante :-)

Aber poste doch bitte Deine Sourcen!
Was auch interresant wäre, wie das Startscript für den mldonkey bei Dir aussieht, vielleicht könntest Du das auch posten (müsste irgendwo unter /etc/init.d/ liegen).

Mit netcat wird der mldonkey sauber beendet:

bash -c "$NETCAT 127.0.0.1 4000 <<STOPHERE
close_fds
kill
STOPHERE" &> /dev/null

per nc wird hier eine Telnetverbindung zum mldonkey hergestellt. Dann werden mit close_fds alle Files geschlossen und mit kill der mldonkey beendet...

melwood
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Quellen und Script

Beitragvon nasenber » 10. Aug 2005, 16:27

Aber poste doch bitte Deine Sourcen!


Bittesehr:
#deb cdrom:[c't Debian Server Distribution 1.1]/ stable contrib main non-free
#deb cdrom:[c't Debian Server Distribution 1.1]/extras/ smp/
deb ftp://ftp.de.debian.org/debian stable main contrib non-free
deb ftp://ftp2.de.debian.org/debian sarge main non-free contrib
deb http://security.debian.org/ sarge/updates main contrib non-free
deb http://www.heise.de/ct/ftp/projekte/srv binary/
deb http://ftp.de.debian.org/debian unstable main non-free
deb http://ftp.de.debian.org/debian/ sarge main non-free contrib
deb ftp://ftp.heise.de/pub/ct/projekte/srv binary/

Wie Du siehst, habe ich die CD-ROM auskommentiert.

Was auch interresant wäre, wie das Startscript für den mldonkey bei Dir aussieht, vielleicht könntest Du das auch posten (müsste irgendwo unter /etc/init.d/ liegen).


Hier kommt es:
#! /bin/sh
#
# Original file :
# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
# Modified for Debian GNU/Linux
# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
#
# Version: @(#)skeleton 1.9.1 08-Apr-2002 miquels@cistron.nl
#
#
# This file has been rewritten by Sylvain LE GALL <sylvain.le-gall@m4x.org>
# for mldonkey-package.

PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
WRAPPER=/usr/bin/mldonkey_server
NAME=mlnet
DESC="MLDonkey"
CONFIG=/etc/default/mldonkey-server
PIDFILE=/var/run/mldonkey/$NAME.pid

test -x $WRAPPER || exit 0

test -e $CONFIG || exit 0

set -e

. $CONFIG

if [ "$LAUNCH_AT_STARTUP" != "true" ]; then
exit 0
fi

if [ ! -d $MLDONKEY_DIR ]; then
if [ -z "$MDLONKEY_DIR" ]; then
MLDONKEY_DIR="(unset)"
fi
echo "$MLDONKEY_DIR is not a valid directory"
exit 0
fi

if [ ! -f $MLDONKEY_DIR/downloads.ini ]; then
echo "$MLDONKEY_DIR/downloads.ini is not a valid file"
exit 0
fi

if [ -e $MLDONKEY_DIR/files.ini ] && [ ! -e $MLDONKEY_DIR/files.ini.fasttrack ]; then
echo "First reboot after Fasttrack problem see /usr/share/doc/mldonkey-server/README.Debian"
echo -n "Splitting $MLDONKEY_DIR/files.ini to remove Fasttrack files : "
/usr/bin/mldonkey_files --split Fasttrack -f0 $MLDONKEY_DIR/files.ini \
-f1 $MLDONKEY_DIR/files.ini.fasttrack \
-f2 $MLDONKEY_DIR/files.ini
echo "done."
fi

USER=`/usr/bin/stat --format="%U" $MLDONKEY_DIR/downloads.ini`

START_STOP_OPTIONS=""

if [ -n "$MLDONKEY_NICENESS" ]; then
START_STOP_OPTIONS="$START_STOP_OPTIONS --nicelevel $MLDONKEY_NICENESS"
fi

case "$1" in
start)
echo -n "Starting $DESC: $NAME"

# export MLDONKEY_CHROOT=$MLDONKEY_DIR

# BUG : we should not need --background, but if not here, the
# invoke-rc.d hangs.
start-stop-daemon --start --quiet --oknodo --background --pidfile $PIDFILE \
$START_STOP_OPTIONS --exec $WRAPPER -- \
--start --pidfile $PIDFILE --chdir $MLDONKEY_DIR --chuid $USER \
--max-alive $MAX_ALIVE --umask $MLDONKEY_UMASK --daemon

echo "."
;;
stop)
echo -n "Stopping $DESC: $NAME"

start-stop-daemon --stop --oknodo --quiet --pidfile $PIDFILE

echo "."
;;
restart)
echo -n "Restarting $DESC: $NAME"

start-stop-daemon --stop --oknodo --signal 1 --quiet --pidfile $PIDFILE

echo "."
;;

force-reload)
echo -n "Reloading $DESC: $NAME."

$0 stop
sleep 1
$0 start
;;

*)
echo "Usage: $0 {start|stop|restart|force-reload}" >&2
exit 1
;;
esac

exit 0


Bis dann mal!
nasenber
Starter
Starter
 
Beiträge: 10
Registriert: 10. Aug 2005, 12:29

Beitragvon kiesow » 11. Aug 2005, 18:38

ich mag mich täuschen, aber bei meinen letzten versuchen war die mldonkey-version von debian ziemlich stark veraltet. lohnt sich schon ein aktuelles binary zu nutzen.
kiesow
Silver User
Silver User
 
Beiträge: 210
Registriert: 11. Aug 2005, 18:38

Beitragvon nasenber » 12. Aug 2005, 06:29

Na ja, wie dem auch sei: In der Regel plätschert es hier mit ca. 30 kb/s im Download. Da ich einen absolut lüfterlosen und stromsparenden Via-Epia-Rechner als c't-Server und natürlich 'ne Flatrate habe, ist es mir egal, ob da jetzt vielleicht mit einer neueren Version 5 kb/s mehr drin wären.

Und dann bin ich auch nicht so ein Freund der Shell. Daher ist mir die apt get-Methode lieber, die ja auch das Useranlegen und das Einbinden in die Startsequenz mit übernimmt. Hat auch den Vorteil, dass ich - anders als im HOWTO beschrieben - mit einem einfachen
/etc/init.d/mldonkey-server stop
den MLDonkey in zwei Sekunden sauber getötet habe.
nasenber
Starter
Starter
 
Beiträge: 10
Registriert: 10. Aug 2005, 12:29

Beitragvon lomdar67 » 12. Aug 2005, 06:51

nasenber hat geschrieben:Hat auch den Vorteil, dass ich - anders als im HOWTO beschrieben - mit einem einfachen
/etc/init.d/mldonkey-server stop
den MLDonkey in zwei Sekunden sauber getötet habe.


Und wenn Du den mldonkey nach dem HowTo einrichtest gibst du zum "sauberen Töten" einfach /etc/init.d/mldonkey stop ein ;-)

melwood
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Beitragvon nasenber » 12. Aug 2005, 11:58

Also

Mit netcat wird der mldonkey sauber beendet:

bash -c "$NETCAT 127.0.0.1 4000 <<STOPHERE
close_fds
kill
STOPHERE" &> /dev/null


hört sich für mich aber nicht nach "/etc/init.d/mldonkey stop" an... :?
Bei näherer Betrachtung glaube ich zu erkennen, dass es sich hier um einen Teil eines Scripts, handelt... :oops: Nun gut...

Na ja, Polemik mal beiseite. Ich hatte den mldonkey in einem früheren Rechner auch mal händisch installiert. Das war damals aber kein Debian.

Wo es jetzt aber ein Paket gibt, dachte ich mir halt, nehmen wir doch einfach das, nicht wahr! :wink:
nasenber
Starter
Starter
 
Beiträge: 10
Registriert: 10. Aug 2005, 12:29

Erweiterung

Beitragvon lomdar67 » 25. Aug 2005, 19:26

Erweiterung um dem mldonkey von einem anderen Rechner aus zu starten/stoppen:

Als erstes müssen wir einen rexec Server installieren. Dieser ist im Packet rsh-server enthalten: apt-get install rsh-server.

Jetzt können wir von einem Rechner der rexec unterstütz Befehle auf dem Server ausführen.

rexec servername -n -l root /etc/init.d/mldonkey start in der Dosbox auf einem Windows Rechner eingebgeben frägt nach dem root Passwort und startet den mldonkey.
Analgo dazu beendet rexec servername -n -l root /etc/init.d/mldonkey stop den mldonkey.

Etwas komfortabler geht es mit einer Batch-Datei:
Code: Alles auswählen
@echo off

if not "%1"=="start" if not "%1"=="stop" goto error

rexec servername -l root /etc/init.d/mldonkey %1

goto end

:error
echo "Bitte mit start oder stop aufrufen"


:end
ping -n 7 127.0.0.1 >nul

Bitte 'servername' durch den Namen/die Ip-Adresse des Server ersetzen und die Datei z.B. als mldonkey.bat speichern.

Jetzt kann man einfach durch Eingabe von mldonkey start oder mldonkey stop den mldonkey fernsteuern.

Der ping Befehl am ende ist nur dafür da, das die Dos Box etwas länger offen bleibt und nicht sofort zu geht.

melwood
We raise hopes, here ... until they're old enough to fend for themselves.
- Mike Callahan
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Beitragvon sepinho » 11. Sep 2005, 16:35

Vielen Dank schonmal für das nützliche HOWTO! Mldonkey wird meiner Meinung nach von Version zu Version besser, deshalb bin ich lieber den händischen Weg nach Anleitung gegangen. Nur leider krieg ich jetzt bei "/etc/init.d/mldonkey status" die Fehlermeldung "Stale PID mldonkey is stopped". Was heißt denn die Stale PID und wie kann ich das korrigieren?

Ich hatte bisher meinen Esel auf einem W2k-Server laufen und möchte dann im nächsten Schritt - wenn der Esel selbst mal läuft - meine ganzen alten inis und temp-files importieren..
sepinho
Starter
Starter
 
Beiträge: 13
Registriert: 11. Sep 2005, 16:35

Beitragvon lomdar67 » 11. Sep 2005, 17:31

sepinho hat geschrieben: Nur leider krieg ich jetzt bei "/etc/init.d/mldonkey status" die Fehlermeldung "Stale PID mldonkey is stopped". Was heißt denn die Stale PID und wie kann ich das korrigieren?


Ich gehe davon aus, das Dein mldonkey nicht läuft. Schau mal nach, ob es im mldonkey Verzeichnis eine Datei mit der Ednugn .pid gibt. Wenn ja, lösche die mal...

melwood
We raise hopes, here ... until they're old enough to fend for themselves.
- Mike Callahan
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Beitragvon sepinho » 11. Sep 2005, 18:25

Moin melwood,

sorry, hatte mich etwas mißverständlich ausgedrückt. Bevor ich den Status abgefragt habe, hatte ich natürlich MLDonkey erst gestartet. Beim Überprüfen über eben "Status" kam dann die besagte Meldung. Eine pid-Datei gibt es bei mir übrigens nicht.
Vielleicht sollte ich erwähnen, dass ich für den Donkey eine eigene Platte benutze. Als ich den User "mldonkey" angelegt habe, habe ich dem als home-Verzeichnis, die entsprechende Platte bzw. den Mount "mld" zugewiesen. Im mldonkey-Skript habe ich das MLDonkey-Dir natürlich dann entsprechend gesetzt.
sepinho
Starter
Starter
 
Beiträge: 13
Registriert: 11. Sep 2005, 16:35

Beitragvon lomdar67 » 11. Sep 2005, 18:49

sepinho hat geschrieben:Moin melwood,

sorry, hatte mich etwas mißverständlich ausgedrückt. Bevor ich den Status abgefragt habe, hatte ich natürlich MLDonkey erst gestartet. Beim Überprüfen über eben "Status" kam dann die besagte Meldung. Eine pid-Datei gibt es bei mir übrigens nicht.
Vielleicht sollte ich erwähnen, dass ich für den Donkey eine eigene Platte benutze. Als ich den User "mldonkey" angelegt habe, habe ich dem als home-Verzeichnis, die entsprechende Platte bzw. den Mount "mld" zugewiesen. Im mldonkey-Skript habe ich das MLDonkey-Dir natürlich dann entsprechend gesetzt.


Aus irgend einem Grund kann das Start/Stop Skript nicht die richtige PID für den laufenden mldonkey Prozess finden.

Mein Start/Stop Skript ist nicht optimal, das muß ich ehrlich zugeben.

Schau Dir mal das Skript von nasenber an. Da wird der Status wesentlich "sauberer" ermittelt. Vielleicht kannst Du ja aus den beiden Skripten ein neues "basteln", ich habe dazu mometan leider nicht genug Zeit...

melwood
We raise hopes, here ... until they're old enough to fend for themselves.
- Mike Callahan
lomdar67
Admin
Admin
 
Beiträge: 984
Registriert: 1. Aug 2005, 10:23
Wohnort: Edling

Beitragvon sepinho » 11. Sep 2005, 20:09

Vielen Dank für die Hilfe! Ich werde das andere Skript mal ausprobieren. Sobald ich meine nagelneue Festplatte umgetauscht habe. Freitag gekauft, heute kaputt, und dabei gilt Samsung doch noch als eine der besseren Marken..
sepinho
Starter
Starter
 
Beiträge: 13
Registriert: 11. Sep 2005, 16:35

Beitragvon ZOiD » 11. Sep 2005, 21:29

Mahlzeit,

wenn Du kein pid-file hast, dann läuft der mldonkey-server auch nicht.
Du kannst das auch mit
Code: Alles auswählen
ps aux |grep mlnet

überprüfen.
Das Script funktioniert eigentlich ganz gut, auch "status", falls Du trotzdem Probleme mit dem Beenden hast, kannst Du mit
Code: Alles auswählen
killall mlnet

alles killen.

ZOiD
Bild
ZOiD
Power User
Power User
 
Beiträge: 127
Registriert: 11. Aug 2005, 19:52

Nächste

Zurück zu HOWTOs

Wer ist online?

Mitglieder: Google [Bot]

cron