PyLoad: Unterschied zwischen den Versionen
imported>Dionysius Keine Bearbeitungszusammenfassung |
imported>EL Duderino Überarbeitung angedacht |
||
(32 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
{{Baustelle|Hier sind drei Installationsarten beschrieben: Das SPK, über IPKG, und manuell; außerdem sind die beiden letzteren auch noch zusammengewurschelt. Außerdem ist nicht klar, ob der Reconnect-Teil auch bei SPK-Installation nötig ist; wenn ja, sollte er vom IPKG-Zweig getrennt werden. --[[Benutzer:EL Duderino|EL Duderino]] 23:20, 4. Feb. 2014 (CET)}} | |||
[http://pyload.org/de:start/ pyLoad] ist ein Download-Manager für One-Click-Hoster. | [[Kategorie:3rd-Party-Apps]] | ||
[[Kategorie:IPKG-Apps]] | |||
[[Kategorie:Download-Manager]] | |||
[http://pyload.org/de:start/ pyLoad] ist ein Download-Manager für One-Click-Hoster, DLC Container, Videoseiten und HTTP/FTP Links. | |||
PyLoad kann | ==pyLoad über das Paketzentrum installieren== | ||
PyLoad kann auch als [[Übersicht über verfügbare 3rd-Party-Apps aus unserer Community|3rd-Party-App]] ohne IPKG installiert werden. | |||
Die Installation erfolgt über die Paketquelle '''[[Paketzentrum Quellen#spk.Unzureichende.Info|http://spk.unzureichende.info/]]''' im Paketzentrum ab DSM 3.2. | |||
Für folgende Modelle gibt es derzeit (Stand: Jänner 2014) vorgefertigte SPK Pakete: | |||
{| class="wikitable" | |||
|- | |||
! Familie !! Paket !! Reihe !! Architektur !! DiskStation !! RackStation !! Beitrag im Forum | |||
|- | |||
! rowspan="4" | PowerPC | |||
! rowspan="3" | MPC85xx | |||
PowerCUICC III | |||
| x08 || ppc854x || DS408 DS508 || RS408(RP) | |||
| rowspan="3" | [http://www.synology-forum.de/showthread.html?42157-pyLoad-0.4.9-.spk-%28mpc85xx%29 pyLoad 0.4.9 .spk (mpc85xx)] | |||
|- | |||
| x09 | |||
| rowspan="2" | ppc853x | |||
|| DS109+ DS209+(II) DS409+ DS509+ || RS409(RP)+ | |||
|- | |||
| x10 || DS110+ DS210+ DS410 || | |||
|- | |||
! QorIQ | |||
| x13 || qoriq | |||
| DS213+ DS413 || || [http://www.synology-forum.de/showthread.html?41758-pyLoad-0.4.9-.spk-(qoriq)-DS213-DS413-... pyLoad 0.4.9 .spk (qoriq)] | |||
|- | |||
! rowspan="7" | ARM | |||
! rowspan="5" | Kirkwood | |||
| x09 | |||
| rowspan="2" | 88f6281 | |||
|| DS109 DS209 DS409 DS409slim || RS409 | |||
| rowspan="5" | [http://www.synology-forum.de/showthread.html?25457-pyLoad-0.4.9-.spk-%28armv5tejl%29 pyLoad 0.4.9 .spk (armv5tejl)] | |||
|- | |||
| x10 || DS110j DS410j DS210j || | |||
|- | |||
| x11 | |||
| rowspan="2" | 88f628x | |||
88fr131 | |||
|| DS111 DS211j DS211 DS211+ DS411 DS411j DS411slim || RS411 | |||
|- | |||
| x12 || DS112+ DS112j DS112 DS212j DS212 DS212+ || RS212 RS812 | |||
|- | |||
| x13 || 88f6282 || DS213air DS213 DS413j || | |||
|- | |||
! rowspan="2" | Armada | |||
| x13 | |||
| rowspan="2" | armada370 | |||
armadaxp | |||
|| DS213j || | |||
| rowspan="2" | [http://www.synology-forum.de/showthread.html?49095-pyLoad-0.4.9-.spk-(armv7)-Armada pyLoad 0.4.9 .spk (armv7l)] | |||
|- | |||
| x14 || DS114 DS214se DS214 DS214+ DS414 || RS214 | |||
|- | |||
|- | |||
! rowspan="5" | x86 | |||
! rowspan="5" | x86 | |||
| x10 || x86 || DS710+ DS1010+ || RS810(RP)+ | |||
| rowspan="5" | [http://www.synology-forum.de/showthread.html?38180-pyLoad-0.4.9-.spk-(x86)-alpha-Test pyLoad 0.4.9 .spk (x86)] | |||
|- | |||
| x11 | |||
| rowspan="3" | x86 | |||
bromolow | |||
cedarview | |||
|| DS411+(II) DS1511+ DS2411+ DS3611xs || RS2211(RP)+ RS3411(RP)xs | |||
|- | |||
| x12 || DS412+ DS712+ DS1512+ DS1812+ DS3612xs || RS812(RP)+ RS2212(RP)+ RS3412(RP)xs | |||
|- | |||
| x13 || DS1513+ DS1813+ DS713+ DS2413+ || RS3413xs+ RS10613xs+ | |||
|- | |||
| x14 || evansport | |||
cedarview | |||
|| DS214play || RS814(RP)+ RS3614xs+ | |||
|} | |||
===Debugging=== | |||
pyLoad Sources: ''/var/packages/pyload/target/pyload/'' | |||
pyLoad Config: ''/var/packages/pyload/target/var/config/'' | |||
pyLoad Log: ''/var/packages/pyload/target/var/config/Logs/log.txt'' | |||
Manueller Start als root: | |||
<pre> | |||
/var/packages/pyload/scripts/start-stop-status stop # optional, falls nicht im Paketzentrum angehalten | |||
. /var/packages/pyload/target/bin/import-environment | |||
su pyload -s /bin/sh -c 'python /var/packages/pyload/target/pyload/pyLoadCore.py --help'</pre> | |||
Admin Passwort zurücksetzen: | |||
<pre> | |||
NEWPASSWORD="newexamplepassword" | |||
. /var/packages/pyload/target/bin/import-environment | |||
PWDSALT=$(</dev/urandom tr -dc 0-9 | dd bs=5 count=1) 2>/dev/null | |||
PWDHASH=`echo -n "${PWDSALT}${NEWPASSWORD}" | openssl dgst -sha1 | cut -d\ -f2` | |||
sqlite3 /var/packages/pyload/target/var/config/files.db "UPDATE users SET password=\"${PWDSALT}${PWDHASH}\" WHERE name=\"admin\";" | |||
unset NEWPASSWORD PWDSALT PWDHASH | |||
</pre> | |||
Oder ''pyLoadCore.py -u'' manuell aufrufen, siehe manueller Start. | |||
==pyLoad Installation mit IPKG== | |||
Vorbereitung: | |||
*Zugriff auf das NAS per [[Die_Kommandozeile|Kommandozeile]] muss aktiviert sein | *Zugriff auf das NAS per [[Die_Kommandozeile|Kommandozeile]] muss aktiviert sein | ||
*[[IPKG|IPKG]] muss installiert sein, am besten mit der erweiterten Startup/Shutdown Variante | *[[IPKG|IPKG]] muss installiert sein, am besten mit der erweiterten Startup/Shutdown Variante | ||
Die nötigen Installationsschritte sind einem [http://forum.qnap.com/viewtopic.php?f=16&t=33515/ Beitrag im englischen QNAP-Forum] entnommen. | Die nötigen Installationsschritte sind einem [http://forum.qnap.com/viewtopic.php?f=16&t=33515/ Beitrag im englischen QNAP-Forum] entnommen. | ||
====Zugriff auf das NAS per [[Die_Kommandozeile|Kommandozeile]]==== | ====Zugriff auf das NAS per [[Die_Kommandozeile|Kommandozeile]]==== | ||
Zeile 19: | Zeile 131: | ||
</pre> | </pre> | ||
====pyLoad herunterladen==== | ====pyLoad herunterladen==== | ||
0.4.9 ist die aktuelle Version (Stand | 0.4.9 ist die aktuelle Version (Stand 16.01.2014) | ||
<pre>cd /opt | <pre>cd /opt | ||
wget http://get.pyload.org/get/src/0.4.9/ | wget http://get.pyload.org/get/src/0.4.9/ | ||
Zeile 58: | Zeile 170: | ||
Die reconnect.sh am besten unter vi erstellen, da beim Erstellen unter Windows meist zusätzliche Steuerzeichen erstellt werden, die das Skript nutzlos machen. | Die reconnect.sh am besten unter vi erstellen, da beim Erstellen unter Windows meist zusätzliche Steuerzeichen erstellt werden, die das Skript nutzlos machen. | ||
Unter Windows funktioniert das Erstellen allerdings auch mit dem Programm Notepad++. | |||
Es muss darauf geachtet werden, dass die reconnect.sh in der ''usermask'' (siehe: ''chmod'', ''ls -l'') als für den pyload-User ausführbar markiert ist. Ansonsten wird das Skript nicht gestartet. | |||
Da es für die Vielzahl von Routern unterschiedliche Verfahren gibt, einen Reconnect zu erzwingen, dient dieses hier nur als Beispiel. | Da es für die Vielzahl von Routern unterschiedliche Verfahren gibt, einen Reconnect zu erzwingen, dient dieses hier nur als Beispiel. | ||
Zeile 64: | Zeile 178: | ||
Code für die reconnect.sh für einen: | Code für die reconnect.sh für einen: | ||
====== T-Com Speedport 500 V ====== | |||
<pre>wget --delete-after http://192.168.2.1/cgi-bin/disconnect.exe | <pre>wget --delete-after http://192.168.2.1/cgi-bin/disconnect.exe | ||
Zeile 71: | Zeile 185: | ||
sleep 5</pre> | sleep 5</pre> | ||
====== AVM Fritz.Box via UPNP ====== | |||
<pre>#!/opt/bin | <pre>#!/opt/bin | ||
Zeile 79: | Zeile 193: | ||
<s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> | <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> | ||
</s:Body> </s:Envelope>"</pre> | </s:Body> </s:Envelope>"</pre> | ||
====== Telekom Speedport W723V Typ A (Huawei) ====== | |||
[http://pastebin.com/ujbd1ksd Kommentierter Quelltext: http://pastebin.com/ujbd1ksd] | |||
<pre>#!/bin/sh | |||
password="YOURPASSWORD" | |||
curl --location --cookie-jar "SessionID.txt" --data "Username=admin&Password=$password" https://speedport.ip/index/login.cgi &> /dev/null | |||
SIDCOOKIE=$( grep "SessionID" SessionID.txt | awk '{printf "%s,%s",$6,$7}' ) | |||
curl --location --cookie "SessionID.txt" --data "x.EnabledForInternet=0" https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig&cookie=$SIDCOOKIE &> /dev/null | |||
curl --location --cookie "SessionID.txt" --data "x.EnabledForInternet=1" https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig&cookie=$SIDCOOKIE &> /dev/null | |||
curl --location --cookie "SessionID.txt" --data "" https://speedport.ip/auth/logout.cgi?cookie=$SIDCOOKIE &> /dev/null | |||
rm SessionID.txt | |||
</pre> | |||
====== Telekom Speedport W723V Typ B (Arcadyan) ====== | |||
[http://pastebin.com/Yi49dcgc Kommentierter Quelltext: http://pastebin.com/Yi49dcgc] | |||
<pre>#!/bin/sh | |||
password="YOURPASSWORD" | |||
curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --data "pws=$password" --data "login_pwd=2" \ | |||
--referer "https://speedport.ip/hcti_start_passwort.stm" --insecure "https://speedport.ip/cgi-bin/login.cgi" &> /dev/null | |||
sleep 1 | |||
curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --insecure \ | |||
"https://speedport.ip/cgi-bin/disconnect.exe" &> /dev/null | |||
sleep 3 | |||
curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --insecure \ | |||
"https://speedport.ip/cgi-bin/connect.exe" &> /dev/null | |||
curl --location --insecure --cookie "/volume1/pyload/SessionID.txt" "https://speedport.ip/cgi-bin/logout.cgi" &> /dev/null | |||
sleep 10 | |||
rm /volume1/pyload/SessionID.txt | |||
</pre> | |||
====== Prüfung des Netzwerkes vor dem Reconnect ====== | |||
Damit andere Rechner im Netzwerk durch den Reconnect nicht gestört werden (unterbrochene Downloads, ...) ist es vorteilhaft, vor dem Neuverbinden zu Überprüfen, ob andere Rechner aktiv sind. Hierzu wird folgender Quelltext an den Anfang der reconnect.sh gestellt: | |||
<pre>#!/bin/sh | |||
NOW=$(date +"%Y-%m-%d %H:%M") | |||
LOGFILE="/volume1/pyload/logs/reconnect.log" | |||
iplist_active=$(nmap -sP 192.168.2.0/24 > /dev/null 2>&1 && arp -an | grep -v incomplete | awk '{print$2}' | sed -e s,\(,, | sed -e s,\),,) | |||
ip_count=$(echo "$iplist_active" | wc -l) | |||
if [ $ip_count -gt 1 ] | |||
then | |||
echo -e "$NOW There are $ip_count active network devices:\n$iplist_active\nDo not reconnect. Wait 1 minute." >> $LOGFILE 2>&1 | |||
sleep 60 | |||
exit | |||
else | |||
echo "$NOW only $ip_count active network devices:\niplist_active\nContinue reconnect attempt." >> $LOGFILE 2>&1 | |||
fi | |||
</pre> | |||
Mit nmap wird geprüft, ob das Netzwerk verbunden ist. Bei Erfolg wird mit arp die IP-Adresse aller Netzwerkteilnehmer abgefragt. Mit grep werden nicht aktive IP-Adressen aussortiert. Mit awk und sed wird die Ausgabe so bearbeitet, dass nur noch eine Liste mit IP-Adressen übrig bleibt. | |||
Im Beispiel wird der Neustart durchgeführt, wenn mehr als ein Gerät an ist (Der Router zählt als eins, die DiskStation wird nicht mitgezählt). | |||
Damit die Befehle arp und nmap ausgeführt werden können, müssen vorher Verknüpfungen auf die ausführbaren Dateien im Pyload-Bin-Ordner (z.B. /volume1/@appstore/pyload/bin) erstellt werden: | |||
* Verkn. mit Name "arp" auf /bin/busybox | |||
* Verkn. mit Name "nmap" auf /opt/bin/nmap | |||
Zur Installation von nmap siehe [[Nmap]]. | |||
Das Erstellen der Verknüpfungen erfolgt bspw. unter Windows mit dem Programm WinSCP (Anmeldung als root mit Übertragungsprotokoll SCP in der DiskStation). | |||
Der Nachteil dieser Methode ist, dass das Warten der reconnect.sh dazu führt, dass pyload während der Wartezeit nicht reagiert. | |||
====Update==== | ====Update==== | ||
Zeile 93: | Zeile 268: | ||
Fertig! Jetzt kann die neue Version gestartet werden: <pre>/etc/init.d/S99pyload start</pre> | Fertig! Jetzt kann die neue Version gestartet werden: <pre>/etc/init.d/S99pyload start</pre> | ||
==Automatisches Startup/Shutdown== | ===Automatisches Startup/Shutdown=== | ||
Um dafür zu sorgen, dass beim Startup und Shutdown der DS PyLoad automatisch gestartet und gestoppt wird, sollte IPKG in der erweiterten Variante ohne Mount Bind und mit erneuertem Startup/Shutdown Script installiert worden sein. Vor der weiteren Konfiguration für das Start / Stop Script, sollte dafür gesorgt werden, daß PaLoad nicht mehr gestartet ist. | Um dafür zu sorgen, dass beim Startup und Shutdown der DS PyLoad automatisch gestartet und gestoppt wird, sollte IPKG in der erweiterten Variante ohne Mount Bind und mit erneuertem Startup/Shutdown Script installiert worden sein. Vor der weiteren Konfiguration für das Start / Stop Script, sollte dafür gesorgt werden, daß PaLoad nicht mehr gestartet ist. | ||
Zeile 168: | Zeile 343: | ||
Für ein Update einfach im Verzeichnis /opt/etc/init.d/ "S99pyload update" eingeben. | Für ein Update einfach im Verzeichnis /opt/etc/init.d/ "S99pyload update" eingeben. | ||
==Debugging/Fehlersuche== | ===Debugging/Fehlersuche=== | ||
Ist leider nicht ganz so einfach. Daher sollte immer vor dem Einsatz der Start / Stop Skripte sichergestellt sein, dass PyLoad auch auf der Kommandozeile einwandfrei läuft. | Ist leider nicht ganz so einfach. Daher sollte immer vor dem Einsatz der Start / Stop Skripte sichergestellt sein, dass PyLoad auch auf der Kommandozeile einwandfrei läuft. | ||
Ansonsten muss man sich mit "echo" Befehlen und der Umleitung in ein Logfile behelfen, welche man so plaziert, dass man erahnen kann, was die Scripte gerade getan haben. | Ansonsten muss man sich mit "echo" Befehlen und der Umleitung in ein Logfile behelfen, welche man so plaziert, dass man erahnen kann, was die Scripte gerade getan haben. | ||
Zeile 175: | Zeile 350: | ||
Wenn man die Startup Methode mit dem "screen" auskommentiert und damit die DS neu startet, kann man sich nach dem Neustart der DS in die screen Session einklinken und hat damit zumindest die letzten Meldungen auf dem Bildschirm. Nicht vergessen, dass man den screen nach dem Debuggen auch wieder abschaltet, sonst kann es wieder sein, dass die DS beim Herunterfahren hängen bleibt. | Wenn man die Startup Methode mit dem "screen" auskommentiert und damit die DS neu startet, kann man sich nach dem Neustart der DS in die screen Session einklinken und hat damit zumindest die letzten Meldungen auf dem Bildschirm. Nicht vergessen, dass man den screen nach dem Debuggen auch wieder abschaltet, sonst kann es wieder sein, dass die DS beim Herunterfahren hängen bleibt. | ||
==Links im Firefox mit FlashGot an pyLoad senden== | |||
FlashGot unterstützt (ab der aktuellen Version 1.5.5.96) pyLoad vollständig. | |||
Siehe: https://addons.mozilla.org/de/firefox/addon/flashgot/versions/?page=1#version-1.5.5.96 | |||
'''Tutorial:''' http://code.google.com/p/flashgot-pgoeri/wiki/HowToSetupFlashGotForPyLoad | |||
''Info zu den Settings:'' | |||
Address: | |||
:=<nowiki>http://<<IP-Adresse der DiskStation>>:9666/flashgot</nowiki> | |||
:Kein "/" am Ende, besser die IP nehmen | |||
Autostart Downloads: | |||
:Aktivieren, sonst bleiben die Downloads im Collector, bis du sie da startest | |||
[http://forums.informaction.com/viewtopic.php?f=11&t=7029&p=30267 → Artikel im Flashgot Forum] | |||
===Click'n'load im Webbrowser=== | |||
Der Klick auf die Click'N'Load-Buttons sendet Links als POST-Anfrage an localhost:9666, wo sie von JDownloader/PyLoad ausgelesen werden. Um die Links stattdessen an die NAS zu senden muss eine Weiterleitung eingerichtet werden. | |||
Dazu muss auf Windows-PCs folgender Befehl ausgeführt werden (<nasip> mit der IP-Adresse der NAS ersetzen): | |||
<pre>netsh interface portproxy add v4tov4 listenport=9666 connectaddress=<nasip> connectport=9666 listenaddress=127.0.0.1</pre> | |||
Unter Windows kann die Weiterleitung mit folgendem Befehl wieder gelöscht werden: | |||
<pre>netsh interface portproxy delete v4tov4 listenport=9666 listenaddress=127.0.0.1</pre> | |||
Unter Linux (auf dem PC, nicht in der NAS) mit diesem Befehl einrichten: | |||
<pre>ssh -L 127.0.0.1:9666:<nasip>:9666 -N <nasip></pre> | |||
==Weblinks== | ==Weblinks== | ||
*[http://pyload.org/de:start/ pyLoad Homepage] | *[http://pyload.org/de:start/ pyLoad Homepage] | ||
*[http://forum.qnap.com/viewtopic.php?f=16&t=33515/ Referenz Installationsanleitung von RaNaN] | *[http://forum.qnap.com/viewtopic.php?f=16&t=33515/ Referenz Installationsanleitung von RaNaN] | ||
*[http://spk.unzureichende.info/ spk.unzureichende.info] Paketquelle |
Aktuelle Version vom 4. Februar 2014, 22:20 Uhr
Vorlage:Baustelle pyLoad ist ein Download-Manager für One-Click-Hoster, DLC Container, Videoseiten und HTTP/FTP Links.
pyLoad über das Paketzentrum installieren
PyLoad kann auch als 3rd-Party-App ohne IPKG installiert werden. Die Installation erfolgt über die Paketquelle http://spk.unzureichende.info/ im Paketzentrum ab DSM 3.2.
Für folgende Modelle gibt es derzeit (Stand: Jänner 2014) vorgefertigte SPK Pakete:
Familie | Paket | Reihe | Architektur | DiskStation | RackStation | Beitrag im Forum |
---|---|---|---|---|---|---|
PowerPC | MPC85xx
PowerCUICC III |
x08 | ppc854x | DS408 DS508 | RS408(RP) | pyLoad 0.4.9 .spk (mpc85xx) |
x09 | ppc853x | DS109+ DS209+(II) DS409+ DS509+ | RS409(RP)+ | |||
x10 | DS110+ DS210+ DS410 | |||||
QorIQ | x13 | qoriq | DS213+ DS413 | pyLoad 0.4.9 .spk (qoriq) | ||
ARM | Kirkwood | x09 | 88f6281 | DS109 DS209 DS409 DS409slim | RS409 | pyLoad 0.4.9 .spk (armv5tejl) |
x10 | DS110j DS410j DS210j | |||||
x11 | 88f628x
88fr131 |
DS111 DS211j DS211 DS211+ DS411 DS411j DS411slim | RS411 | |||
x12 | DS112+ DS112j DS112 DS212j DS212 DS212+ | RS212 RS812 | ||||
x13 | 88f6282 | DS213air DS213 DS413j | ||||
Armada | x13 | armada370
armadaxp |
DS213j | pyLoad 0.4.9 .spk (armv7l) | ||
x14 | DS114 DS214se DS214 DS214+ DS414 | RS214 | ||||
x86 | x86 | x10 | x86 | DS710+ DS1010+ | RS810(RP)+ | pyLoad 0.4.9 .spk (x86) |
x11 | x86
bromolow cedarview |
DS411+(II) DS1511+ DS2411+ DS3611xs | RS2211(RP)+ RS3411(RP)xs | |||
x12 | DS412+ DS712+ DS1512+ DS1812+ DS3612xs | RS812(RP)+ RS2212(RP)+ RS3412(RP)xs | ||||
x13 | DS1513+ DS1813+ DS713+ DS2413+ | RS3413xs+ RS10613xs+ | ||||
x14 | evansport
cedarview |
DS214play | RS814(RP)+ RS3614xs+ |
Debugging
pyLoad Sources: /var/packages/pyload/target/pyload/
pyLoad Config: /var/packages/pyload/target/var/config/
pyLoad Log: /var/packages/pyload/target/var/config/Logs/log.txt
Manueller Start als root:
/var/packages/pyload/scripts/start-stop-status stop # optional, falls nicht im Paketzentrum angehalten . /var/packages/pyload/target/bin/import-environment su pyload -s /bin/sh -c 'python /var/packages/pyload/target/pyload/pyLoadCore.py --help'
Admin Passwort zurücksetzen:
NEWPASSWORD="newexamplepassword" . /var/packages/pyload/target/bin/import-environment PWDSALT=$(</dev/urandom tr -dc 0-9 | dd bs=5 count=1) 2>/dev/null PWDHASH=`echo -n "${PWDSALT}${NEWPASSWORD}" | openssl dgst -sha1 | cut -d\ -f2` sqlite3 /var/packages/pyload/target/var/config/files.db "UPDATE users SET password=\"${PWDSALT}${PWDHASH}\" WHERE name=\"admin\";" unset NEWPASSWORD PWDSALT PWDHASH
Oder pyLoadCore.py -u manuell aufrufen, siehe manueller Start.
pyLoad Installation mit IPKG
Vorbereitung:
- Zugriff auf das NAS per Kommandozeile muss aktiviert sein
- IPKG muss installiert sein, am besten mit der erweiterten Startup/Shutdown Variante
Die nötigen Installationsschritte sind einem Beitrag im englischen QNAP-Forum entnommen.
Zugriff auf das NAS per Kommandozeile
Benötigte Tools installieren
ipkg install screen nano wget unzip unrar psmisc
Python und Abhängigkeiten installieren
ipkg install python py25-crypto py25-curl libcurl py25-openssl py25-django py25-pil tesseract-ocr tesseract-ocr-lang-eng ossp-js
pyLoad herunterladen
0.4.9 ist die aktuelle Version (Stand 16.01.2014)
cd /opt wget http://get.pyload.org/get/src/0.4.9/ unzip pyload-src-v0.4.9.zip rm pyload-src-v0.4.9.zip cd pyload/
Anmerkung: Mitlerweile steht Pyload auch als ipkg Packet bereit die Installation sieht dann wie folgt aus:
pyLoad wird unter /opt installiert, bitte prüfe zuerst ob das auch dein IPKG Installationspfad ist.
ipkg install wget tesseract-ocr tesseract-ocr-lang-eng ossp-js unrar wget http://get.pyload.org/static/pyload-v0.4.9-noarch.ipk ipkg install pyload-v0.4.9-noarch.ipk pyLoadCore -s [Für das Setup, kopiere nicht diese Nachricht in Klammern!]
Konfiguration
Das Konfigurationsverzeichnis (hier werden auch die Downloads gespeichert) sollte geändert werden, z.B. /volume1/pyload
cd module/config/ echo "/volume1/pyload" >> configdir
pyLoad ausführbar machen
chmod +x /opt/pyload/pyLoadCore.py
pyLoad starten
python /opt/pyload/pyLoadCore.py
Beim ersten Aufruf erscheint der Konfigurations-Assistent, die Einrichtung ist relativ selbsterklärend und gut beschrieben.
Eine möglichkeit PyLoad starten zu lassen ist mit screen pyLoad im Hintergrund laufen lassen
screen -dmS python /opt/pyload/pyLoadCore.py
Dies verhindert den Abbruch des Programms beim Beenden der Kommandozeile
Reconnect
Um Pyload effektiv nutzen zu können, ist ein automatischer reconnect sinnvoll.
Dazu wird eine Datei namens reconnect.sh erstellt, welche am besten mit unter /volume1/@optware/pyload/ abgespeichert wird. In der Weboberfläche unter Einstellungen/General/Reconnect unter Method den gesamten Pfad zur Datei also /volume1/@optware/pyload/reconnect.sh eintragen.
Die reconnect.sh am besten unter vi erstellen, da beim Erstellen unter Windows meist zusätzliche Steuerzeichen erstellt werden, die das Skript nutzlos machen. Unter Windows funktioniert das Erstellen allerdings auch mit dem Programm Notepad++. Es muss darauf geachtet werden, dass die reconnect.sh in der usermask (siehe: chmod, ls -l) als für den pyload-User ausführbar markiert ist. Ansonsten wird das Skript nicht gestartet.
Da es für die Vielzahl von Routern unterschiedliche Verfahren gibt, einen Reconnect zu erzwingen, dient dieses hier nur als Beispiel. Es wäre schön, wenn noch mehr User ihre reconnect.sh posten würden um eine bessere Übersicht zu erreichen.
Code für die reconnect.sh für einen:
T-Com Speedport 500 V
wget --delete-after http://192.168.2.1/cgi-bin/disconnect.exe sleep 5 wget --delete-after http://192.168.2.1/cgi-bin/connect.exe sleep 5
AVM Fritz.Box via UPNP
#!/opt/bin curl "http://fritz.box:49000/upnp/control/WANIPConn1" -H "Content-Type: text/xml; charset="utf-8"" -H "SoapAction:urn:schemas-upnp-org:service:WANIPConnection:1#ForceTermination" -d " <?xml version='1.0' encoding='utf-8'?> <s:Envelope s:encodingStyle='http://schemas.xmlsoap.org/soap/encoding/' xmlns:s='http://schemas.xmlsoap.org/soap/envelope/'> <s:Body> <u:ForceTermination xmlns:u='urn:schemas-upnp-org:service:WANIPConnection:1' /> </s:Body> </s:Envelope>"
Telekom Speedport W723V Typ A (Huawei)
Kommentierter Quelltext: http://pastebin.com/ujbd1ksd
#!/bin/sh password="YOURPASSWORD" curl --location --cookie-jar "SessionID.txt" --data "Username=admin&Password=$password" https://speedport.ip/index/login.cgi &> /dev/null SIDCOOKIE=$( grep "SessionID" SessionID.txt | awk '{printf "%s,%s",$6,$7}' ) curl --location --cookie "SessionID.txt" --data "x.EnabledForInternet=0" https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig&cookie=$SIDCOOKIE &> /dev/null curl --location --cookie "SessionID.txt" --data "x.EnabledForInternet=1" https://speedport.ip/auth/setcfg.cgi?x=InternetGatewayDevice.WANDevice.1.WANCommonInterfaceConfig&cookie=$SIDCOOKIE &> /dev/null curl --location --cookie "SessionID.txt" --data "" https://speedport.ip/auth/logout.cgi?cookie=$SIDCOOKIE &> /dev/null rm SessionID.txt
Telekom Speedport W723V Typ B (Arcadyan)
Kommentierter Quelltext: http://pastebin.com/Yi49dcgc
#!/bin/sh password="YOURPASSWORD" curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --data "pws=$password" --data "login_pwd=2" \ --referer "https://speedport.ip/hcti_start_passwort.stm" --insecure "https://speedport.ip/cgi-bin/login.cgi" &> /dev/null sleep 1 curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --insecure \ "https://speedport.ip/cgi-bin/disconnect.exe" &> /dev/null sleep 3 curl --user-agent "Mozilla/4.0" --location --cookie-jar "/volume1/pyload/SessionID.txt" --insecure \ "https://speedport.ip/cgi-bin/connect.exe" &> /dev/null curl --location --insecure --cookie "/volume1/pyload/SessionID.txt" "https://speedport.ip/cgi-bin/logout.cgi" &> /dev/null sleep 10 rm /volume1/pyload/SessionID.txt
Prüfung des Netzwerkes vor dem Reconnect
Damit andere Rechner im Netzwerk durch den Reconnect nicht gestört werden (unterbrochene Downloads, ...) ist es vorteilhaft, vor dem Neuverbinden zu Überprüfen, ob andere Rechner aktiv sind. Hierzu wird folgender Quelltext an den Anfang der reconnect.sh gestellt:
#!/bin/sh NOW=$(date +"%Y-%m-%d %H:%M") LOGFILE="/volume1/pyload/logs/reconnect.log" iplist_active=$(nmap -sP 192.168.2.0/24 > /dev/null 2>&1 && arp -an | grep -v incomplete | awk '{print$2}' | sed -e s,\(,, | sed -e s,\),,) ip_count=$(echo "$iplist_active" | wc -l) if [ $ip_count -gt 1 ] then echo -e "$NOW There are $ip_count active network devices:\n$iplist_active\nDo not reconnect. Wait 1 minute." >> $LOGFILE 2>&1 sleep 60 exit else echo "$NOW only $ip_count active network devices:\niplist_active\nContinue reconnect attempt." >> $LOGFILE 2>&1 fi
Mit nmap wird geprüft, ob das Netzwerk verbunden ist. Bei Erfolg wird mit arp die IP-Adresse aller Netzwerkteilnehmer abgefragt. Mit grep werden nicht aktive IP-Adressen aussortiert. Mit awk und sed wird die Ausgabe so bearbeitet, dass nur noch eine Liste mit IP-Adressen übrig bleibt. Im Beispiel wird der Neustart durchgeführt, wenn mehr als ein Gerät an ist (Der Router zählt als eins, die DiskStation wird nicht mitgezählt). Damit die Befehle arp und nmap ausgeführt werden können, müssen vorher Verknüpfungen auf die ausführbaren Dateien im Pyload-Bin-Ordner (z.B. /volume1/@appstore/pyload/bin) erstellt werden:
- Verkn. mit Name "arp" auf /bin/busybox
- Verkn. mit Name "nmap" auf /opt/bin/nmap
Zur Installation von nmap siehe Nmap. Das Erstellen der Verknüpfungen erfolgt bspw. unter Windows mit dem Programm WinSCP (Anmeldung als root mit Übertragungsprotokoll SCP in der DiskStation). Der Nachteil dieser Methode ist, dass das Warten der reconnect.sh dazu führt, dass pyload während der Wartezeit nicht reagiert.
Update
Vor dem Update einer bestehenden Installation muss pyload beendet werden:
/etc/init.d/S99pyload stop
Dann kann man zur Sicherheit die alte Version kopieren, zum Beispiel:
cp -R /opt/pyload /opt/pyload.048 cp -R /volume1/pyload /volume1/pyload.048
Als nächstes wird die neue Version geholt und einfach drüber installiert:
cd /opt wget http://get.pyload.org/get/src/0.4.9/ unzip pyload-src-v0.4.9.zip [bei Nachfrage 'overwrite all' auswählen]
Fertig! Jetzt kann die neue Version gestartet werden:
/etc/init.d/S99pyload start
Automatisches Startup/Shutdown
Um dafür zu sorgen, dass beim Startup und Shutdown der DS PyLoad automatisch gestartet und gestoppt wird, sollte IPKG in der erweiterten Variante ohne Mount Bind und mit erneuertem Startup/Shutdown Script installiert worden sein. Vor der weiteren Konfiguration für das Start / Stop Script, sollte dafür gesorgt werden, daß PaLoad nicht mehr gestartet ist.
Danach legt man nachfolgendes Script unter /opt/etc/init.d/S99pyload ab. Ausführbar machen mit chmod +x /opt/etc/init.d/S99pyload nicht vergessen! Jetzt wird getestet, ob sich PyLoad mittels /opt/etc/init.d/S99pyload start sauber starten lässt. Sobald PyLoad sauber gestart werden kann, testet man auch gleich noch mittels /opt/etc/init.d/S99pyload stop, ob PyLoad auch wieder sauber beendet wird. Nach dem Stop darf per ps | grep python kein Prozess mehr sichtbar sein.
#!/bin/sh # # Start / Stop Script for PyLoad http://localhost:8000 # prefix="/opt" PATH=${prefix}/bin:${prefix}/sbin:/sbin:/bin:/usr/sbin:/usr/bin NAME="PyLoad" DAEMON="python /opt/pyload/pyLoadCore.py --daemon" #Fuer startup debugging: #DAEMON="screen -dmS python /opt/pyload/pyLoadCore.py" DAEMON_OPTS="" INSTALL_DIR=/opt/ UPDATE_SOURCE=https://bitbucket.org/spoob/pyload/get/tip.zip # # start() { echo "Starting Service: $NAME" $DAEMON $DAEMON_OPTS | awk '{print $3}' >/var/run/pyload.pid } # stop() { kill `cat /var/run/pyload.pid` } # update() { stop sleep 5 cd $INSTALL_DIR wget --no-check-certificate $UPDATE_SOURCE unzip tip.zip rm tip.zip rsync -avH --update /opt/spoob-pyload-*/ /opt/pyload/ rm -rf /opt/spoob-pyload-* start } # case "$1" in start) start ;; stop) stop ;; update) update ;; restart) stop sleep 4 start ;; *) echo "Usage: $0 (start|stop|restart|update)" exit 1 ;; esac # # End
Wenn das Script aktiv ist, sollte man nicht vergessen, dass das Script die PID des PyLoad Prozesses speichert, um anhand dieser PID beim Stoppen den PyLoad Prozess zu beenden. Wenn jetzt also jemand "von Hand" die PyLoad Prozesse Stopt und Startet, dann kann das Script nicht mehr sauber funktionieren. Daher, ab sofort am besten nur noch das Pyload Start/Stop Script für das Starten und Stoppen von PyLoad verwenden. Für Tests, wird am besten das Script mit "stop" aufgerufen, dann getestet und alle PyLoad Prozesse wieder beendet, um dann mit dem Script und dem "start" Parameter alles wieder sauber zu starten.
Warum ist das Stoppen von PyLoad beim Shutdown so wichtig? Weil ansonsten die DS nicht sauber heruntergefahren werden kann, bzw. unter umständen sogar hängen bleibt und sich nicht abschalten kann. Wer also beim abschliessenden Test feststellen sollte, daß die DS nicht sauber herunterfährt, der hat etwas falsch gemacht und sollte noch mal sorgfälltig alle Schritte prüfen und niemals vergessen jeden Schritt auch noch einmal zu testen.
Ein alternatives Startup-Script mit Update (Debug, Logfileausgabe und besserer stop/restart-Funktionalität) -Funktion findet ihr unter http://pastebin.com/J9mdXURL Es ist SEHR zu empfehlen sich das Script auf PASTEBIN anzusehen, da dieses deutlich vollständiger ist und liebevoll gepflegt wird, wie das rudimentäre Script hier auf dem Wiki.
Für ein Update einfach im Verzeichnis /opt/etc/init.d/ "S99pyload update" eingeben.
Debugging/Fehlersuche
Ist leider nicht ganz so einfach. Daher sollte immer vor dem Einsatz der Start / Stop Skripte sichergestellt sein, dass PyLoad auch auf der Kommandozeile einwandfrei läuft. Ansonsten muss man sich mit "echo" Befehlen und der Umleitung in ein Logfile behelfen, welche man so plaziert, dass man erahnen kann, was die Scripte gerade getan haben.
Noch eine Alternative ist doch noch einmal Screen zum Start von PyLoad zu nutzen und nach dem Start der DS sich in Screen einzuklinken, um wenigstens ein paar (Fehler)Meldungen mitzubekommen. PyLoad selbst hat auch noch einen Debug Switch -d welcher weiterhelfen könnte. Die Schwierigkeit liegt aber immer darin, dass man die Debug Meldungen ja beim Reboot erst mal nicht zu sehen bekommt und diese daher in eine Datei umleiten müsste, um überhaupt etwas zu sehen bekommen.
Wenn man die Startup Methode mit dem "screen" auskommentiert und damit die DS neu startet, kann man sich nach dem Neustart der DS in die screen Session einklinken und hat damit zumindest die letzten Meldungen auf dem Bildschirm. Nicht vergessen, dass man den screen nach dem Debuggen auch wieder abschaltet, sonst kann es wieder sein, dass die DS beim Herunterfahren hängen bleibt.
Links im Firefox mit FlashGot an pyLoad senden
FlashGot unterstützt (ab der aktuellen Version 1.5.5.96) pyLoad vollständig.
Siehe: https://addons.mozilla.org/de/firefox/addon/flashgot/versions/?page=1#version-1.5.5.96
Tutorial: http://code.google.com/p/flashgot-pgoeri/wiki/HowToSetupFlashGotForPyLoad
Info zu den Settings:
Address:
- =http://<<IP-Adresse der DiskStation>>:9666/flashgot
- Kein "/" am Ende, besser die IP nehmen
Autostart Downloads:
- Aktivieren, sonst bleiben die Downloads im Collector, bis du sie da startest
Click'n'load im Webbrowser
Der Klick auf die Click'N'Load-Buttons sendet Links als POST-Anfrage an localhost:9666, wo sie von JDownloader/PyLoad ausgelesen werden. Um die Links stattdessen an die NAS zu senden muss eine Weiterleitung eingerichtet werden. Dazu muss auf Windows-PCs folgender Befehl ausgeführt werden (<nasip> mit der IP-Adresse der NAS ersetzen):
netsh interface portproxy add v4tov4 listenport=9666 connectaddress=<nasip> connectport=9666 listenaddress=127.0.0.1
Unter Windows kann die Weiterleitung mit folgendem Befehl wieder gelöscht werden:
netsh interface portproxy delete v4tov4 listenport=9666 listenaddress=127.0.0.1
Unter Linux (auf dem PC, nicht in der NAS) mit diesem Befehl einrichten:
ssh -L 127.0.0.1:9666:<nasip>:9666 -N <nasip>