rdiff-web 'Port not free'

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
bennyo
Beiträge: 9
Registriert: 23.02.2009 16:47:33

rdiff-web 'Port not free'

Beitrag von bennyo » 15.07.2010 04:03:10

Guten Tag,

ich hoffe mich für mein Thema im richtigen Subforum zu befinden. Desweiteren versuche ich mich kurz zu fassen:

Hier läuft ein Debian5.0 Server, welcher natürlich auch backups anlegen sollte.
Das Programm rdiff-backup verrichtet seine Arbeit ohne Probleme.

Mein Arbeitgeber setzt eine Software zur einfachen Wiederherstellung einzelner backup-files voraus. Wo wir bei rdiff-web landen.
Ich installierte rdiff-web nach den gegebenen Tutorials auf den englischen debian Seiten.

Meine rdw.conf sieht folgendermaßen aus:
ServerHost=0.0.0.0
ServerPort=8080
UserDB=File
Username=user_mit_admin_rechten
Password=das_passwort
UserRoot=/
UserRepoPaths=/mnt/backup
ServerName=server
Jedoch,
beim start von "rdiff-web" zeigt sich mir folgender Output:

Code: Alles auswählen

15/Jul/2010:10:26:06 CONFIG INFO Server parameters:
15/Jul/2010:10:26:06 CONFIG INFO   server.environment: production
15/Jul/2010:10:26:06 CONFIG INFO   server.log_to_screen: True
15/Jul/2010:10:26:06 CONFIG INFO   server.log_file: 
15/Jul/2010:10:26:06 CONFIG INFO   server.log_tracebacks: True
15/Jul/2010:10:26:06 CONFIG INFO   server.log_request_headers: False
15/Jul/2010:10:26:06 CONFIG INFO   server.protocol_version: HTTP/1.0
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_host: server
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_port: 8080
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_file: 
15/Jul/2010:10:26:06 CONFIG INFO   server.reverse_dns: False
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_queue_size: 5
15/Jul/2010:10:26:06 CONFIG INFO   server.thread_pool: 10
15/Jul/2010:10:26:11 HTTP INFO Port 8080 not free on 'server'
dies ändert sich auch nicht wenn ich den Port in der config ändere. Die Fehlermeldung, dass der angegebene Port nicht frei wäre, besteht weiterhin.

Woran könnte das liegen?
netstat -vat
gibt folgendes mehrere Zeilen folgendes:
cp 0 0 server.ar:39816 server:http-alt TIME_WAIT
Ansonsten bin ich auch nicht von irgendeinem anderen Rechner, beispielsweise über einen Browser an 'http://server:8080' verbunden.
Es ist jedoch sehr verwunderlich weshalb ausgegeben wird, dass der Port nicht frei wäre.
Vermutlich stehe ich nur wieder auf dem Schlauch und sehe eine triviale Lösung nicht als ausgeschlossen an.
Bin also für jegliche Idee sehr dankbar.

Recht herzlichen Dank im voraus schon einmal.
Zuletzt geändert von bennyo am 15.07.2010 07:52:49, insgesamt 2-mal geändert.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rdiff-web 'Port not free'

Beitrag von rendegast » 15.07.2010 07:41:48

Versuche es mal mit Auskommentieren von
#ServerName=server
oder mit
ServerName=ari-mainserver
.
(Eventuell fügt rdiff-web-config diese Zeile immer hinzu?)
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

bennyo
Beiträge: 9
Registriert: 23.02.2009 16:47:33

Re: rdiff-web 'Port not free'

Beitrag von bennyo » 15.07.2010 07:54:53

Hallo,

rechtherzlichen Dank für deine Antwort.

Ohne die Zeile 'ServerName=server' bekomm ich beim start von rdiff-web folgende Meldung:

Code: Alles auswählen

15/Jul/2010:14:48:48 CONFIG INFO Server parameters:
15/Jul/2010:14:48:48 CONFIG INFO   server.environment: production
15/Jul/2010:14:48:48 CONFIG INFO   server.log_to_screen: True
15/Jul/2010:14:48:48 CONFIG INFO   server.log_file: 
15/Jul/2010:14:48:48 CONFIG INFO   server.log_tracebacks: True
15/Jul/2010:14:48:48 CONFIG INFO   server.log_request_headers: False
15/Jul/2010:14:48:48 CONFIG INFO   server.protocol_version: HTTP/1.0
15/Jul/2010:14:48:48 CONFIG INFO   server.socket_host: 
15/Jul/2010:14:48:48 CONFIG INFO   server.socket_port: 8080
15/Jul/2010:14:48:48 CONFIG INFO   server.socket_file: 
15/Jul/2010:14:48:48 CONFIG INFO   server.reverse_dns: False
15/Jul/2010:14:48:48 CONFIG INFO   server.socket_queue_size: 5
15/Jul/2010:14:48:48 CONFIG INFO   server.thread_pool: 10
Traceback (most recent call last):
  File "/usr/bin/rdiff-web", line 128, in <module>
    cherrypy.server.start()
  File "/var/lib/python-support/python2.5/cherrypy/_cpserver.py", line 72, in start
    Engine.start(self)
  File "/var/lib/python-support/python2.5/cherrypy/_cpengine.py", line 106, in start
    self._start()
  File "/var/lib/python-support/python2.5/cherrypy/_cpserver.py", line 79, in _start
    self.start_http_server()
  File "/var/lib/python-support/python2.5/cherrypy/_cpserver.py", line 99, in start_http_server
    wait_for_free_port(host, port)
  File "/var/lib/python-support/python2.5/cherrypy/_cpserver.py", line 244, in wait_for_free_port
    check_port(host, port)
  File "/var/lib/python-support/python2.5/cherrypy/_cpserver.py", line 219, in check_port
    socket.SOCK_STREAM):
socket.gaierror: (-2, 'Name or service not known')
Da wird also von gar nichts gewusst.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rdiff-web 'Port not free'

Beitrag von rendegast » 15.07.2010 07:59:27

Und wenn Du dort die Ausgabe von 'hostname' respektive 'hostname -f' eingibst?
Auch wegen der Meldung des DNS-Revers-Fehlers.

rdiff-web, rdiffWeb-0.5.1-1:

Code: Alles auswählen

...
      'server.socketHost' : rdiffWeb.rdw_config.getConfigSetting("ServerName"),
...
dagegen rdiff-web, rdiffWeb-0.6.3-1:

Code: Alles auswählen

...
      'server.socket_host' : rdiffWeb.rdw_config.getConfigSetting("ServerHost"),
...
Außer an dieser Stelle in rdiff-web in 0.5.1-1 wird "ServerName" im Paket nicht mehr verwendet.
Die Option ist im Paket 0.6.3 dann wohl obsolet, obwohl auch dessen rdiff-web-config sie einsetzt.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

bennyo
Beiträge: 9
Registriert: 23.02.2009 16:47:33

Re: rdiff-web 'Port not free'

Beitrag von bennyo » 15.07.2010 09:57:22

Hallo
man dankt für die Antwort, jedoch kann ich dir bei
Und wenn Du dort die Ausgabe von 'hostname' respektive 'hostname -f' eingibst?
nicht ganz folgen. Tut mir leid.

Mir ist bekannt, dass die Option 'ServerName=server' obsolet ist, jedoch bekomme ich ohne diese Zeile, die beschriebene Fehlermeldung, dass der Name oder der Dienst unbekannt ist.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rdiff-web 'Port not free'

Beitrag von rendegast » 15.07.2010 17:46:41

Mir ist bekannt, dass die Option 'ServerName=server' obsolet ist,
Das ist sie wohl erst in der Version 0.6.3, da dort nichts mehr damit angefangen wird,
in 0.5.1 wird danach aber noch nach dem ServerHost aufgelöst, siehe obige Zeilen.

Da bei Dir die Auflösung versucht wird:

Code: Alles auswählen

15/Jul/2010:10:26:06 CONFIG INFO   server.socket_host: server
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_port: 8080
15/Jul/2010:10:26:06 CONFIG INFO   server.socket_file:
15/Jul/2010:10:26:06 CONFIG INFO   server.reverse_dns: False
nehme ich an, Du verwendest 0.5.1.

Du könntest also in rdiff-web "ServerName" durch "ServerHost" ersetzen, analog wie bei 0.6.3,
oder Du setzt den hostname Dein-Server oder fqdn-hostname Dein-Server.Deine-Domain
Deines Servers in der Konfig-Datei ein, statt einfach "server".
Die (ich nehme an reverse) Namensauflösung sollte dann auch noch funktionieren.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

bennyo
Beiträge: 9
Registriert: 23.02.2009 16:47:33

Re: rdiff-web 'Port not free'

Beitrag von bennyo » 16.07.2010 06:48:12

Hallo,

Danke soweit!
Du hattest mich auf eine Idee gebracht.

Ich bin die Sache nochmal ganz von vorne angegangen, habe die neuste Version von rdiff-web installiert, sowie die neuste V. von py-cherry.

Nun kann ich vom server aus (also von dem Gerät auf den rdiff-web installiert ist, sowie von der Maschine, welche gebackuped werden soll) via 'http://192.168.0.XX:8080' auf das Webinterface zugreifen und Daten werden auch prima wiederhergestellt.

Wenn ich jedoch von einem anderen PC aus dem LAN zugreifen möchte, dann öffnet sich zwar das Webinterface, bei der Anmeldung allerdings passiert nichts. Nichts bedeutet: Das nachdem der Nutzername mit Passwort mittels 'Login' bestätigt wurde, die Seite einfach nochmal neu geladen wird.
Woran könnte das liegen? an der /etc/hosts.allow? Bei dieser Datei habe ich zu testzwecken sowieso 'ALL: ' auf 'ALL' gesetzt, was also keine Probleme mit sich bringen sollte.

Meine Config hat so gut wie gar nicht geändert:

Code: Alles auswählen

ServerHost=0.0.0.0
ServerPort=8080
UserDB=File
Username=admin_account (hat root-rechte)
Password=password
UserRoot=/
UserRepoPaths=/mnt/backup
#ServerName=server
Kann es mit einer art Rechtevergabe zu tun haben?
Tut mir leid wieder auf dem Schlauch zu stehen.

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: rdiff-web 'Port not free'

Beitrag von rendegast » 16.07.2010 13:42:39

Meine Config hat so gut wie gar nicht geändert:
Du mußt die Konfig von 0.5.1 verschieben und mit rdiff-web-config von 0.6.3 eine neue erstellen,
diese benutzt dann eine sqlite-Datenbank /etc/rdiffweb/rdw.db zusätzlich zur rdw.conf.
Dafür braucht es die entsprechenden python-sqlite-Pakete, wegen schon vorhandenem sqlite3 verwendete ich python-pysqlite2.
(Ob es auch mit python-sqlite + sqlite2 oder python-pysqlite1.1 funktioniert?)
Die rdw.conf sieht noch einfacher aus:

Code: Alles auswählen

# cat rdw.conf
ServerName=localhost
ServerPort=8080

Ich habe hier (auf testing) für Versuche mit 0.5.1 und 0.6.3 rdiff-web und rdiff-web-config "modden" müssen:
#!/usr/bin/python
->
#!/usr/bin/python2.5
Leider bekomme ich rdiff-web-0.6.1 nicht gestartet:
Mit python-cherrypy:

Code: Alles auswählen

# rdiff-web
Traceback (most recent call last):
  File "/usr/bin/rdiff-web", line 13, in <module>
    import rdiffWeb.filter_authentication
  File "/usr/lib/python2.5/site-packages/rdiffWeb/filter_authentication.py", line 73, in <module>
    cherrypy.tools.authenticate = cherrypy._cptools.HandlerTool(handle_authentication)
AttributeError: 'module' object has no attribute '_cptools'
Mit python-cherrypy3:

Code: Alles auswählen

# rdiff-web
Traceback (most recent call last):
  File "/usr/bin/rdiff-web", line 107, in <module>
    cherrypy.config.update(global_settings)
  File "/usr/lib/pymodules/python2.5/cherrypy/_cpconfig.py", line 286, in update
    self.namespaces(config)
  File "/usr/lib/pymodules/python2.5/cherrypy/_cpconfig.py", line 222, in __call__
    handler(k, v)
  File "/usr/lib/pymodules/python2.5/cherrypy/_cpconfig.py", line 245, in <adminuser>
    **{"server": adminuser k, v: setattr(cherrypy.server, k, v),
  File "/usr/lib/pymodules/python2.5/cherrypy/_cpserver.py", line 31, in _set_socket_host
    raise ValueError("Host values of '' or None are not allowed. "
ValueError: Host values of '' or None are not allowed. Use '0.0.0.0' instead to listen on all active interfaces (INADDR_ANY).
Mit 'ServerHost=0.0.0.0' oder 'ServerHost=127.0.0.1' statt 'ServerName=localhost':

Code: Alles auswählen

# rdiff-web
Traceback (most recent call last):
  File "/usr/bin/rdiff-web", line 123, in <module>
    cherrypy.engine.on_stop_engine_list.append(adminuser: killEvent.set())
AttributeError: 'Bus' object has no attribute 'on_stop_engine_list'
Stimmt alles noch nicht so ganz.

rdiff-web-0.5.1 jedoch funktionierte, auch der login.
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

bennyo
Beiträge: 9
Registriert: 23.02.2009 16:47:33

Re: rdiff-web 'Port not free'

Beitrag von bennyo » 17.07.2010 06:15:15

Okay,

vielen Dank für die gesamten Lösungsansätze.

Ich habe mich demnach noch einmal entschlossen alles noch einmal von vorne zu gestalten und zwar die eneuste Version. Habe dann auch die installation mittels python ausgeführt, anstatt mit dpkg (wie zuvor).

Nun läuft alles mehr oder weniger befriedigend! Danke!

Faden kann auf 'gelöst' gesetzt werden.

Zur Vollständigkeit noch meine derzeitige rdw.conf:

Code: Alles auswählen

ServerHost=0.0.0.0
ServerPort=8080
UserDB=File
Username=admin
Password=admin_pw
UserRoot=/
UserRepoPaths=/mnt/backup
ServerName=server

Antworten