Sie sind nicht angemeldet.

Anzeigen

**Wir werden in den kommenden Tagen einen Umzug auf einen neuen Server durchführen. Im Rahmen dieser Maßnahme wird das Forum ca. 1 Stunde nicht erreichbar sein.** nslu2-info.de ist ein privates Projekt von mir, welches jeden Monat aus eigener Tasche finanziert wird. Mit einer freiwilligen Spende wird der Erhalt und der weitere Ausbau dieses Forums unterstützt. Um mich beim Erhalt des Forums zu unterstützen, kannst Du entweder via Flattr oder Paypal spenden. Ich bedanke mich schon jetzt bei allen Unterstützern.

Lieber Besucher, herzlich willkommen bei: Die NSLU2 Community****wenns ums speichern und streamen geht****. 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.

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

21

Sonntag, 9. Dezember 2007, 16:42

Hallo,

die sollten eingentlich in den Ordner Finish wandern?


Gruß SOJ :)

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

22

Montag, 10. Dezember 2007, 20:03

prima scripte, doch habe ich da mal eine ganz blöde frage..bzw 3 solcher:
1) 'which ctorrent' ist doch sicher zu ersetzen in torrent.sh ???
2) server port ist welcher port genau?
3) client port ist der port der mit "draussen" kommuniriert..also mein torrent-port den ich in meiner firewall freigegeben habe!?

EDIT: so ich habe grad noch einen klasse fehler gefunden: das script hat meine bereits fertigen downloads angefangen erneut runter zu laden...d.h. er lädt jetzt alle torrents aus meinem DONE-ordner.
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

23

Montag, 10. Dezember 2007, 21:23

Hallo djk1o,

zu Frage 1:
Ich habe dort nichts eingetragen. Es könnte auch darn liegen, da mein ctorrent im Ordner /usr/local/bin liegt.


zu Frage 2:
Freigabe in der Firewall sollte 6881 sein


zu Frage 3:
Ich habe das Script selber nochmal umgeschrieben.
Weil mir einiges daran nicht so gefallen hat und
nicht so ganz funktioniert hat.
Wenn du möchtest schicke ich es dir per Email.

Gruß SOJ :)

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

24

Montag, 10. Dezember 2007, 21:53

zu antwort 1) ok

zu antwort 2) hab ich auf meinen port angepasst

zu antwort 3) sie haben post ;)


EDIT:
nach umstrukturierung meiner verzeichnisse gehts nun problemlos und um einiges schneller als mit rtorrent.
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

25

Mittwoch, 12. Dezember 2007, 01:06

@djk1o:
`which ctorrent` -> which ctorrent wird von der bash ausgeführt und die Ausgabe wird dann an dieser Stelle eingesetzt, muss also nicht angepasst werden. which programmname gibt einfach nur den vollen Pfad für programmname aus.

@soj:
Wie wäre es, wenn du das Skript dann einfach hier postest? ;)

Gruss,
EvilDevil

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

26

Mittwoch, 12. Dezember 2007, 18:37

Hallo EvilDevil,

wie gewünscht. Perfekt ist es nicht und Komentare fehlen noch.

Gruß SOJ :)


Quellcode

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash
# ND: Verzeichnis, in das neue .torrent Dateien gespeichert werden:
ND="/home/torrent/new"
# RD: Verzeichnis, in das die Torrent-Daten gespeichert werden
RD="/home/torrent/running"
# FD: Verzeichnis, in das die .torrent Dateien + die Logs nach der Fertigstellung gespeichert werden
FD="/home/torrent/finished"
# CT: voller Pfad zu ctorrent
CT=`which ctorrent`
# CTCS_PORT: Port des CTCS Servers (default: 2780)
CTCS_PORT=2780
# CT_PORT: Port fuer den ctorrent client (default: 6881)
CT_PORT=6881
# CACHE: Groesse des ctorrent Zwischenspeichers in MB (default: 1)
CACHE=1
 
# Erstelle Verzeichnisse, falls sie noch nicht existieren
if [ ! -d '$ND' ]
then
mkdir -p "$ND"
fi
if [ ! -d '$RD' ]
then
mkdir -p "$RD"
fi
if [ ! -d '$FD' ]
then
mkdir -p "$FD"
fi
for torrent in `find "$ND" -name "*.torrent"`
do
PROCESS="ctorrent"
for line in `ps ax | grep $PROCESS | grep -v \`basename $0\` |\
grep -v grep | awk '{printf "%s:%s\n", $1, $5}'`; do
proc_id=`echo $line | cut -f1 -d:`
prog_name=`echo $line | cut -f2- -d:`
echo -n "Prozess $prog_name schon vorhanden"
echo " "
if [ '$prog_name'='$PROCESS' ]
then
echo "ein Prozess schon gestart / Script beendet sich"
exit
fi
 
done
 
if [ ! -e '$torrent.pid' ]
then 
cd "$RD"
nice -19 $CT "$torrent" -e 72 -S localhost:$CTCS_PORT -p $CT_PORT -C $CACHE > "$torrent.log" 2> "$torrent.error" &
echo "`date` : Added $torrent" >> "$ND/log.txt"
ps a |grep "$torrent" |head -c 5 > "$torrent.pid"
else
 
for line in `ps ax | grep $PROCESS | grep -v \`basename $0\` |\
grep -v grep | awk '{printf "%s:%s\n", $1, $5}'`; do
RUNNING=`echo $line | cut -f1 -d:`
#proc_id=`echo $line | cut -f1 -d:`
#prog_name=`echo $line | cut -f2- -d:`
# vom Oringalscript / erkennt aber grep auch als Prozess
#PID=`cat "$torrent.pid"`
#RUNNING=`ps a |grep $PID | head -n 1 | tr -d [:blank:]`
done
echo $RUNNING
torrent2=`echo $torrent | cut -f5 -d/`
torrent3=`echo $torrent2 | wc -c`
ab='9'
tor=$(($torrent3-$ab))
torrent4=`echo $torrent2 | cut -c-$tor`
echo "2" "$torrent2"
echo "3" "$torrent3"
echo "4" "$torrent4"
echo "tor" "$tor"
if [ ! $RUNNING ]
then
mv "$RD/$torrent4" "$FD"
mv "$torrent" "$FD"
mv "$torrent.log" "$FD"
mv "$torrent.error" "$FD"
rm "$torrent.pid"
echo "`date`: $torrent finished" >> "$ND/log.txt"
fi 
fi
done

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

27

Mittwoch, 12. Dezember 2007, 20:55

@soj: das script mit der verbesserten "job-erkennung" kann nicht mit leerzeichen umgehen :(

@evildevil: welche benutzer und rechte müssen die einzelnen files (torrent.sh, ctorrent, ctcs) haben? bei mir funktioniert da was nicht so richtig mit cron, ctcs scheint zu starten aber torrent.sh scheint nicht gestartet zu werden. hab jetzt torrent.sh ein paar mal von hand angestoßen, aber die .torrent files werden verschoben bevor der download fertig ist...ist das gewollt? auch blöd finde ich die abwicklung "nach und nach", kann man nicht mehrere torrents gleichzeitig laden?
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

28

Donnerstag, 13. Dezember 2007, 00:01

Zitat von »djk1o;28735«


@evildevil: welche benutzer und rechte müssen die einzelnen files (torrent.sh, ctorrent, ctcs) haben? bei mir funktioniert da was nicht so richtig mit cron, ctcs scheint zu starten aber torrent.sh scheint nicht gestartet zu werden. hab jetzt torrent.sh ein paar mal von hand angestoßen, aber die .torrent files werden verschoben bevor der download fertig ist...ist das gewollt? auch blöd finde ich die abwicklung "nach und nach", kann man nicht mehrere torrents gleichzeitig laden?


Nach und nach muss leider sein, ctorrent kann leider pro Instanz nur eine torrent-Datei laden. Die Rechte und Besitzer sind in meinem 1. Post bereits beschrieben.
Warum die torrent files verschoben werden, obwohl sie nicht fertig sind, weiß ich leider auch nicht. Ich werds aber mal an meinem Notebook testen.

EDIT:
Also auf meinem Laptop läuft alles (mit dem Skript vom 1. Posting), habe 2 Downloads parallel laufen, ohne Probleme, jetzt sind es 3, einer davon mit vielen sonder- und leerzeichen

Gruss,
EvilDevil

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

29

Donnerstag, 13. Dezember 2007, 00:37

So ich hab jetzt auch die ganze zeit mit den rechten und scripten handtiert und habe erfolgreich 2 von 3 downloads laufen, also parallel...immerhin. die rechte von ctcs ctorrent torrent.sh hab ich auf root:staff gesetzt und chmod 755. weiß nicht warum, aber es funktioniert...habe auch das script nun umgeschrieben, werde mich aber nochmal damit genauer beschäftigen. mir liegt php, da werd ich bash-scripte ja wohl auch schaffen ;)
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

30

Donnerstag, 13. Dezember 2007, 00:48

Hi,

kleiner Tipp am Rande:
Zum Debuggen ist folgendes Codefragment immer sehr hilfreich:

Quellcode

1
2
3
4
5
6
#!/bin/bash

# Debug Modus einschalten
set -x

.... weitere Code


Gruss,
EvilDevil

31

Donnerstag, 13. Dezember 2007, 00:59

Hi nochmal,

also dass die unfertigen .torrent Dateien verschoben werden, liegt wohl daran, dass ctorrent beendet wurde, bevor der Download fertig war und die Überprüfung der laufenden Prozesse auf die ProzessID des jeweiligen ctorrent-Prozesses fehlschlägt, das Skript also davon ausgeht, dass der Download fertig ist (ctorrent beendet sich, wenn der Download fertig ist und die Seed-Time (oder Seed-Rate erreicht ist) vorüber ist.

Gruss,
EvilDevil

32

Donnerstag, 13. Dezember 2007, 08:54

Das Problem mit den unfertigen Downloads könnte man umgehen, indem man einfach die "fertigen" Downloads nochmal startet und für 0 Stunden seeded.
-> Falls der Download bereits fertig ist, wird er überprüft und wird dann beendet
-> Falls er nicht fertig ist, wird er fertig geladen und wird dann beendet.

Ich habe aber gerade gesehen, dass ctorrent die Option -X besitzt, mit der man einen Befehl beim Beenden ausführen kann. Damit wäre dann wirklich sichergestellt, dass der Download beendet ist und verschoben werden kann.
Bei Gelegenheit werd ich das mal Implementieren.

Gruss,
EvilDevil

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

33

Freitag, 14. Dezember 2007, 22:46

achsooo, ich dachte an den befehl in der form "ctorrent -X" und hab mich über die fehler gewundert. ich versuche mich grad an einem "check hash" mit ctorrent "ctorrent -c $torrent", nur komischerweise erkennt der eine runtergeladene datei noch nicht...muß mal sehen ob ich das verzeichnis der downloadfiles anpassen muss um zu sehen ob ein download fertig ist. sobald ich es fertig habe werd ich den code posten!
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

34

Montag, 17. Dezember 2007, 10:35

Ich habe jetzt den Fehler gefunden warum Torrents einfach beendet werden. Es gab irgendwo den Hinweis darauf, in der /etc/sysctl.conf den Eintrag "vm.swappiness = 0" hinzuzufügen damit die NSLU2 schneller bootet und überhaupt schneller sein soll. Das hat zwar funktioniert, aber für ctorrent war dann kein swap mer verfügbar. Ich hab den Wert auf 30 gesetzt (auch wenn bisher noch unbekannt was der Wert bewirkt) und meine paar Torrents laufen gut durch. Dennoch könnte man abgebrochene Torrents versuchen zum Abschluß zu bringen, ich bin da noch nicht weiter. :(
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

Murmel

Anfänger

Beiträge: 5

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

35

Montag, 14. Januar 2008, 20:21

@EvilDevil

Hallo,

ich habe das ctorrent.sh Skript und alles für ctorrent und ctcs neu installieren müssen und bin dabei über ein paar Fehler im Skript gestolpert.

Zitat

ps a |grep "$torrent" |head -c 5 > "$torrent.pid"
else
PID=`cat "$torrent.pid"`
RUNNING=`ps a |grep $PID
Nach den Pipe fehlen jeweils die Leerzeichen. Das hatte bei mir den Effekt das die Torrents jeweils direkt mit einem Fehler abgebrochen worden nachdem der Cron job das Skrit angestossen hatte.

Was mir auch noch aufgefallen ist (ich bin da aber noch nicht hinter gestiegen) das das Log file sehr schnell sehr groß wird. Jemand eine Idee?

Ansonsten vielen Dank für das aktuelle Binary von enhanced ctorrent.

Viele Grüße
Murmel

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

36

Montag, 14. Januar 2008, 20:38

Hallo,

ich bin auf rtorrent umgestiegen. Das geht einiges mehr.

Gruß SOJ :)

djk1o

Fortgeschrittener

Beiträge: 332

Wohnort: Berlin

Beruf: Programmierer/Designer

  • Nachricht senden

37

Dienstag, 15. Januar 2008, 16:32

das log-file wird schnell groß, weil es stetig mit den download bytes gefüllt wird, also immer dieses "jetzt sind schon 12 von 12000 bytes geladen"...und das mit jedem runtergeladenen bytes :(

rtorrent habe ich auch noch nebenher laufen, ctorrent hat mich eher unglücklich gestimmt. hast du schon die conf so geschrieben dass rtorrent alle xx minuten schaut ob neue torrents abgelegt wurden?
NSLU2 (Debian Etch) 266MHz - fantec LD-U35U2 (160GB Maxtor) - 2,5" Samsung 100GB - Canon iP5200 - Acer Bluetooth - gLCD - NFS (dbox2) - Samba (2x Notebook; 1 PC) - CUPS - rTorrent (xmlrpc) - ntp - lighttp + php

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

38

Dienstag, 15. Januar 2008, 21:22

Hallo,

ja das habe ich gemacht.

Quellcode

1
2
3
4
# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied


Ich benutze allerdings noch die alte rtorrent Version.
Die neu kann sogar Webinterface und die Config hat noch einiges mehr zubieten.

Gruß SOJ :)

39

Donnerstag, 17. Januar 2008, 06:10

Rtorrent? Webinterface? Wie? Wo? Was?

Achso - und was hat die neue config zu bieten? Ich habe mir nämlich die alte nich überschreiben lassen. :-P

Update: Ich habe ein paar Web-Interfaces für rTorrent gefunden, aber sind die nicht ein wenig zu heavy für den kleinen Slug? Vor allem wegen der Sachen, die benötigt werden, um sie zum Laufen zu bringen...

soj

Schüler

Beiträge: 68

Firmwareversion / your current Firmware: originale Firmware 2.3r24

  • Nachricht senden

40

Donnerstag, 17. Januar 2008, 08:56

Hallo,

habe mir die Sachen im Detail nicht angeschaut.
Aber ein paar intressante Sachen sollten dabei sein.
Einfach mal auf der Homepage von rtorrent rumsurfen.

Gruß SOJ :)

Social Bookmarks