auto UnRar auf Synology Ds411J

Status
Für weitere Antworten geschlossen.

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Das habe ich davor versucht - ändert aber auch nichts.

Edit: Jetzt klappt es - komischerweise.
Ich weis nicht, was ich vorher anders gemacht habe - mittels dem nohup-Befehlt klappt es jetzt aber so wie es soll (Habe davor aber das NAS einfach einmal neu gestartet).

Den nohup-Befehl kann ich aber nur als root ausführen - leider werden dann alle Dateien die AU entpackt wieder durch den User root angelegt.
Kann man es irgendwie bewerkstelligen, dass ich den nohup-Befehl auch unter einem anderen User ausführen kann? Und nicht die Meldung "Permission denied" erhalte?!

Wenn ich es mit einem anderen User versuche:
Rich (BBCode):
SYNOLOGY_DS211J> cd /opt/auto-unrar/
SYNOLOGY_DS211J> nohup cacao -jar auto-unrar-1.0.jar -n &
SYNOLOGY_DS211J> nohup: can't open '/root/nohup.out': Permission denied

Danke schon mal!
 
Zuletzt bearbeitet:

itari

Benutzer
Mitglied seit
15. Mai 2008
Beiträge
21.900
Punkte für Reaktionen
14
Punkte
0
Hat denn der User, mit dem du das machen magst auch eine Shell in der /etc/passwd? Und darf er auf die Skripte und Verzeichnisse auch zugreifen?

Itari
 

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Wie muss ich das einrichten, bin gerade am suchen...?!
Der User mit dem ich das machen möchte heißt FRITZLOAD, der dazugehörige Eintrag in der /etc/passwd sieht folgendermaßen aus:
Rich (BBCode):
FRITZLOAD:x:1029:100::/var/services/homes/FRITZLOAD:/bin/sh
 

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Check mal in usr/bin die Berechtigungen für nohup.

Code:
4:/usr/bin]$ ls -al | grep nohup
rwxr-xr-x  1 root root      17944 Oct 22  2009 nohup
5:/usr/bin]$

Die Datei sollte für owner, group und others Executable sein. Ggf. mit chmod anpassen.
 

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Rich (BBCode):
lrwxrwxrwx    1 root     root            17 Dec 30 06:42 nohup -> ../../bin/busybox
Also bei mir sehen die Berechtigungen für /usr/bin/nohup folgendermaßen aus.
...Was möchtest du mir mit deinem Codeteil sagen?

Edit: wenn ich das richtig nachvollziehen kann hat das ganze etwas mit der Datei busybox zu tun.
Passen dort die Rechte nicht...hier der erste Teil der Tabelle die mir angezeigt wird wenn ich dir im Ordner /bin ausführe?!
Rich (BBCode):
SYNOLOGY_DS211J> cd /bin/
SYNOLOGY_DS211J> dir
drwxr-xr-x    2 root     root          4096 Dec 30 06:41 .
drwxr-xr-x   20 root     root          4096 Jan  2 17:48 ..
lrwxrwxrwx    1 root     root             7 Dec 30 06:41 ash -> busybox
-rwsrwsrwt    1 root     root       1552776 Oct 26 13:23 busybox
 
Zuletzt bearbeitet:

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Ok, der nohup Befehl ist bei dir ein link auf /bin/busybox und alle Benutzer haben executable rechte. Check doch auch mal von der busybox die Berechtigungen.
 

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Siehe mein Edit von oben - die Rechte der Busybox kann ich ja auch einfach ändern - oder spricht etwas dagegen?
Edit: Ich habe jetzt mit chmod 0777 /bin/busybox die Rechte angepasst - kann aber mit dem anderen User die Datei dennoch nicht ausführen und erhalte die gleiche Fehlermeldung wie oben.
Rich (BBCode):
-rwxrwxrwx    1 root     root       1552776 Oct 26 13:23 busybox
 
Zuletzt bearbeitet:

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Check auch nochmal die Zugriffsrechte auf die Verzeichnisse, in denen sich nohup sowie busybox befinden.

Edit: Ach ja, und lösche mal die alte nohup.out, nicht dass es an den schreibrechten auf die datei, die nohup anlegt, liegt.
 
Zuletzt bearbeitet:

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Es gibt mehrere Dateien mit dem Namen nohup.out.
Welche darf ich löschen - denn wahllose einfach alle zu löschen ist mir zu gefährlich - außer du gibst das OK!?
Rich (BBCode):
SYNOLOGY_DS211J> find / -name nohup.out
/volume1/@optware/bin/nohup.out
/volume1/@optware/auto-unrar/nohup.out
/opt/bin/nohup.out
/opt/auto-unrar/nohup.out
/root/nohup.out
 

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Es gibt mehrere Dateien mit dem Namen nohup.out.
Welche darf ich löschen - denn wahllose einfach alle zu löschen ist mir zu gefährlich - außer du gibst das OK!?

Auf jeden Fall die /opt/auto-unrar/nohup.out.

Bei den anderen, schau dir jeweils mal den inhalt an und lösche sie, falls dort die Ausgaben von Auto UnRar zu finden sind. Den Inhalt einer Datei kannst du dir z.B. mit cat <Dateiname> ausgeben lassen.

Übrigens, gefährlich ist es eigentlich nicht, eine nohup.out zu löschen, denn da stehen eh nur die Konsolenausgaben der Programme, die mit dem nohup-Kommando ausgeführt wurden. Und diese werden ja in der Regel nicht weiterverarbeitet.
 

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
So - nach den letzten Testläufen funktioniert jetzt alles.
Schlussendlich schuld daran, dass es nicht funktioniert hat waren die Berechtigungen für den Ordner /root.

Nach dem Anpassen der Berechtigungen für diesen Ordner funktioniert jetzt das autom. Herunterladen mit Fritz!Load und anschließendem Entpacken mit AutoUnRar.
Es hat ja nur 52 Beiträge hier im Forum und stundenlanges Versuchen nach dem Try-and-Error-Prinzip gekostet. :D
Danke auch an das Forum hier und insbesondere an dich djtifosi für deine Ausdauer!

Viele Grüße
Max
 

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
...*hust*
Nachdem du dich ja auch mit Fritz!Load ein wenig auszukennen scheinst und das IP-Phone-Forum derzeit nicht erreichbar ist - kannst du mir vielleicht weiterhelfen wie ich die datei do_after_dl_and_transfer.sh auch nach jeder Leerzeile in der Linkliste ausführen lassen kann?

Der "eingebaute" Entpackvorgang von Fritz!Load kann das ja auch - dass dieser nach jeder Leerzeile bzw. Passwortzeile in Fritz!Load angestoßen wird.

Schön wäre es natürlich wenn das mit AutoUnRar auch möglich ist - die Datei do_after_dl_and_transfer.sh stößt bei mir ja den Entpackvorgang von AutoUnRar an - somit wäre es gut wenn man diese Datei auch bei Leerzeilen und Passwortzeilen ausführen lassen könnte?!

Wenn du mir weiterhelfen kannst wäre es toll - ansonsten gebe ich einfach einmal ein Ticket auf, ich möchte hier ja niemanden überstrapazieren :D

Einen schönen Abend noch!
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Also chmod 0777 auf busybox halte ich für gewagt. Das hiesse, dass sogar der Webserverprozess diese Datei überschreiben dürfte. Kann mir kaum vorstellen, dass dies gewünscht ist.
Besser wäre statt chmod 0777 ein chmod +x gewesen
 

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
...*hust*
Nachdem du dich ja auch mit Fritz!Load ein wenig auszukennen scheinst und das IP-Phone-Forum derzeit nicht erreichbar ist - kannst du mir vielleicht weiterhelfen wie ich die datei do_after_dl_and_transfer.sh auch nach jeder Leerzeile in der Linkliste ausführen lassen kann?

Da ich an der Entwicklung von FL nicht beteiligt war, kann ich hierzu leider wenig sagen, denn ich müsste mich selbst erstmal in die Architektur des Programms einarbeiten.

Wenn es nur darum geht, einen weiteren Aufruf von do_after_dl_and_transfer.sh einzufügen, würde ich an deiner Stelle mal die Ausgaben von FL anschauen, sobald es an eine Leerzeile / Zeile mit Password stößt.

Wenn du eine prägnante Log-Ausgabe (oder auch nur ein Wort von dieser) gefunden hast (z.B. "Leerzeile"), so kannst du mit folgendem Kommando alle FritzLoad-Skripte (Endung .sh) nach dem Inhalt "Leerzeile" durchsuchen:

Code:
find <FritzLoad-Verzeichnis> -type f -name *.sh | xargs grep Leerzeile

Oder alternativ halt mit Windows-Bordmitteln die Dateien auf ihren Inhalt durchsuchen.

Hast du dann die passende Stelle gefunden, ist es ein leichtes, dort ein anderes Script aufzurufen.
 
Zuletzt bearbeitet:

Ixam

Benutzer
Mitglied seit
29. Dez 2010
Beiträge
40
Punkte für Reaktionen
0
Punkte
0
Die (so denke ich) passende Stelle habe ich relativ problemlos (in der download.sh ab Zeile 77 - konkret dann ab Zeile 109) gefunden:
Rich (BBCode):
	# URL downloaden oder Liste
	# : Liste downloaden
	if [ -n "$(echo -n "$dl_job_file" | sed -e 's,.*\(https\?\|ftp\)://.*,,')" ];then
		if [ -f "$dl_job_file" ];then
			# Liste laden
			# lese solange die Downloadliste ein, bis keine erste Zeile mehr ausgegeben wird
			while true;do
				if isEmpty "$dl_job_file";then
					print "Downloadliste ist leer." 2
                    # Check:Dateien verschieben, wenn DL-Liste leer?
                    if [ "$transferActionFILELISTEMPTY" = 1 ]; then
                        FILELISTEMPTY=1

                        # Check: Wird schon ein Transfer ausgefuehrt?
                            if [ ! -f "$pdir/tmp/.transfer" ]; then
                                touch "$pdir/tmp/.transfer" # tmp-file anlegen
                                transferDownload
                                sleep 5
                                rm "$pdir/tmp/.transfer" # tmp-file loeschen
                                # Fileliste wieder zurücksetzen, damit beim naechsten Aufruf wieder alles beim alten ist
                                FILELISTEMPTY=0
                            fi

                    fi
					break
				fi
				# matchedLine ist die Zeile, wie sie in der jobs.txt enthalten war (zum Loeschen muss die exakte Zeile bekannt sein)
				# matchtedLineStore ist die Zeile, die spaeter in die finished und failed Liste gespeichert werden soll (dies kann von den Unterroutinen geaendert/korrigiert werden)
				matchedLine="$(nextHosterEntry "$dl_job_file")"
				matchedLineStore="$matchedLine"

				skip=0
				# Passwort
				passwd="$(echo -n "$matchedLine" | sed -n 's/^[	\ ]*@\(.*\)/\1/p;s/[	\ ]*$//')"
				if [ -n "$passwd" ];then
					print "Neues Kennwort: ($(escapeHtml "$passwd"))" 1
					echo "$matchedLineStore" >>$dl_finished

					# Add password to password list
					if unrar_settings; then
#						if [ "$unrarPwdListAdd" = 1 ];then
							echo "$passwd" >$pwdList.tmp
							${BBox} fgrep -v "$passwd" $pwdList >>$pwdList.tmp
							mv -f $pwdList.tmp $pwdList
							echo "Kennwort an oberste Position eingetragen"
#						else
#							echo "Neues Kennwort hinzufuegen ueber Konfiguration deaktiviert!"
#						fi
					fi
					startUnrar=1
					skip=1
				# kein Inhalt => Liste abgearbeitet / Unrar ausloesen
				elif [ -z "$matchedLine" -o -z "${matchedLine##[@	\ ]}" ];then
					print "Leerzeile" 1
					startUnrar=1
					skip=1
				# Kommentarzeile?
				elif [ -z "$(echo -n "$matchedLine" | sed '/^[	\ ]*#.*/d')" ];then
					print "Kommentarzeile: ($matchedLine)" 1
					echo "$matchedLineStore" >>$dl_finished
#-					sed -i '1d' $dl_job_file
					startUnrar=1
					skip=1
				fi

				if [ "$skip" = 1 ];then
					# Loesche erste Zeile
					lock $dl_job_file
					tr -d '\r\t' <$dl_job_file | sed -e '1d' >$dl_job_file.tmp
					mv $dl_job_file.tmp $dl_job_file
					unlock $dl_job_file
					continue
				fi

				if [ "$startUnrar" = 1 ];then
					unrarit && startUnrar=0
				fi

				# RETRY-Download (ewiger Download dieser Datei)
				local loopDownload=0
				if [ -z "${matchedLine##R*}" ];then
					msg "LOOP-Download"
					loopDownload=1
				fi

				oneclickhoster "$matchedLine" $accountType
				curl_msg_update
				cleanlog $dl_log
				stopping 1 && break
			sleep 1
			done
		else
			print "Datei nicht vorhanden: $dl_job_file" 3
		fi
	else
	# : einzelne URL laden
		url="$dl_job_file"
		dl_job_file="$tmp/downloadurl.tmp"
		echo "$url" >"$dl_job_file"
		oneclickhoster "$url" $accountType
		rm -f $tmp/downloadurl.tmp
		cleanlog $dl_log
	fi

	_doAfterDL

	unrarit && startUnrar=0
Hier müsste man dann, denke ich, dreimal (Passwortzeile, Leerzeile, Kommentarzeile) neben dem
Rich (BBCode):
					startUnrar=1
					skip=1
noch den Aufruf der do_after_dl_and_transer.sh einfügen.
Informiere mich gerade ein wenig darüber, wie das funktioniert... mhh

Danke dir schon einmal und viele Grüße
 

2ndway

Benutzer
Mitglied seit
23. Jan 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Hilfe:-(

Guten Abend,

ich habe das hier verfolgt und soweit nachvollzogen wie ich konnte. Ich kann den service starten und er reagiert auch auf mein echo:
hier kommt jedoch der fehler:


java.io.IOException: No such file or directory
at java.io.VMFile.create(Native Method)
at java.io.File.createNewFile(File.java:211)
at de.djtifosi.autounrar.core.Utils.execRuntimeCommand(Utils.java:62)
at de.djtifosi.autounrar.core.UnrarApplicationManager.hasPredecessorPart(UnrarApplicationManager.java:219)
at de.djtifosi.autounrar.core.FileManager.filterSplitsetsWithIncompleteBegin(FileManager.java:228)
at de.djtifosi.autounrar.core.ProcessOrchestrator.performValidations(ProcessOrchestrator.java:203)
at de.djtifosi.autounrar.core.ProcessOrchestrator.startProcess(ProcessOrchestrator.java:51)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.handleCommand(UnrarSocketServer.java:81)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.<init>(UnrarSocketServer.java:67)
at de.djtifosi.autounrar.start.AutoUnrarStarter.startProcess(AutoUnrarStarter.java:144)
at de.djtifosi.autounrar.start.AutoUnrarStarter.main(AutoUnrarStarter.java:66)
Unexpected Error during execution occurred, exiting.java.lang.RuntimeException: java.io.IOException: No such file or directory
at de.djtifosi.autounrar.core.UnrarApplicationManager.hasPredecessorPart(UnrarApplicationManager.java:244)
at de.djtifosi.autounrar.core.FileManager.filterSplitsetsWithIncompleteBegin(FileManager.java:228)
at de.djtifosi.autounrar.core.ProcessOrchestrator.performValidations(ProcessOrchestrator.java:203)
at de.djtifosi.autounrar.core.ProcessOrchestrator.startProcess(ProcessOrchestrator.java:51)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.handleCommand(UnrarSocketServer.java:81)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.<init>(UnrarSocketServer.java:67)
at de.djtifosi.autounrar.start.AutoUnrarStarter.startProcess(AutoUnrarStarter.java:144)
at de.djtifosi.autounrar.start.AutoUnrarStarter.main(AutoUnrarStarter.java:66)
Caused by: java.io.IOException: No such file or directory
at java.io.VMFile.create(Native Method)
at java.io.File.createNewFile(File.java:211)
at de.djtifosi.autounrar.core.Utils.execRuntimeCommand(Utils.java:62)
at de.djtifosi.autounrar.core.UnrarApplicationManager.hasPredecessorPart(UnrarApplicationManager.java:219)
...7 more
2011-01-23 17:52:10,774 - FATAL - AutoUnrarStarter - FATAL: Unexpected Error during execution occurred, exiting.
java.lang.RuntimeException: java.io.IOException: No such file or directory
at de.djtifosi.autounrar.core.UnrarApplicationManager.hasPredecessorPart(UnrarApplicationManager.java:244)
at de.djtifosi.autounrar.core.FileManager.filterSplitsetsWithIncompleteBegin(FileManager.java:228)
at de.djtifosi.autounrar.core.ProcessOrchestrator.performValidations(ProcessOrchestrator.java:203)
at de.djtifosi.autounrar.core.ProcessOrchestrator.startProcess(ProcessOrchestrator.java:51)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.handleCommand(UnrarSocketServer.java:81)
at de.djtifosi.autounrar.core.socket.UnrarSocketServer.<init>(UnrarSocketServer.java:67)
at de.djtifosi.autounrar.start.AutoUnrarStarter.startProcess(AutoUnrarStarter.java:144)
at de.djtifosi.autounrar.start.AutoUnrarStarter.main(AutoUnrarStarter.java:66)
Caused by: java.io.IOException: No such file or directory
at java.io.VMFile.create(Native Method)
at java.io.File.createNewFile(File.java:211)
at de.djtifosi.autounrar.core.Utils.execRuntimeCommand(Utils.java:62)
at de.djtifosi.autounrar.core.UnrarApplicationManager.hasPredecessorPart(UnrarApplicationManager.java:219)
...7 more



Könnt ihr damit was anfangen?

Beste Grüße

2ndway
 

djtifosi

Benutzer
Mitglied seit
24. Dez 2010
Beiträge
30
Punkte für Reaktionen
0
Punkte
0
Hallo 2ndway,

bitte stelle sicher, dass der User, mit dem Auto UnRar ausgeführt wird, Schreibrechte auf die Ordner <AutoUnrRar-dir>/tmp bzw. <AutoUnrRar-dir>/log, und alle darin befindlichen Dateien, hat.

Das gleiche gilt für Leserechte auf <AutoUnrRar-dir>/conf bzw. den darin befindlichen Dateien.

Außerdem solltest du prüfen, ob die Verzeichnis-Angaben in der <AutoUnrRar-dir>/conf/configuration.properties auch korrekt sind bzw. sich mit den tatsächlichen Verzeichnissen auf deinem NAS decken. Erwartet wird an dieser Stelle immer die absolute Pfadangabe! Beachte bitte auch, dass am Ende jedes Verzeichnispfades ein "/" stehen muss.

Beispiel:

Angenommen, auto-unrar-<Version>.rar wurde nach /opt/auto-unrar entpackt.

TEMPORARY_FOLDER=/opt/auto-unrar/tmp --> FALSCH!!
TEMPORARY_FOLDER=/opt/auto-unrar/tmp/ --> Richtig

Viele Grüße
Marco
 
Zuletzt bearbeitet:

Creadle

Benutzer
Mitglied seit
23. Okt 2010
Beiträge
243
Punkte für Reaktionen
0
Punkte
16
So der Urlaub ist vorbei. Und wie ich sehe, ist das was ich machen wollte ja schon abgearbeitet worden:D

Danke für die Tipps mit nohup.
 
Zuletzt bearbeitet:

2ndway

Benutzer
Mitglied seit
23. Jan 2011
Beiträge
2
Punkte für Reaktionen
0
Punkte
0
Guten abend,

super danke für die hilfe. Jetzt kann ich starten und es entpackt auch(meistens) =) echt top...
Das einzige was mir noch zu meinem Glück fehlt ist die richtige Einstellung zum entpacken in Unterordnern und autostart im rc.local.(ich habe zwei rc.local in verschiedenen Verzeichnissen. Kann ich eine davon löschen oder sind beide nötig)
Kann hier noch jemand weiterhelfen?

Besten Dank soweit.

2ndway
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat