Hilfe bei Script Anpassung

Status
Für weitere Antworten geschlossen.

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Hi,

ich bekomme es einfach nicht gebacken.

Im folgenden 2 Scripte im Original, welche ich für die DS anpassen möchte. Ich sitze schon ein Stück dran, bekomme es aber nicht hin. Kann bitte mal jemand helfen.

Rich (BBCode):
#!/bin/bash
# command to maintain the scan-to destination list in the HP Color LaserJet 2840 printer
if [ "$1" == "-a" ]; then
	name=$2
	[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
	postdata="AddScanToDest_1=127.0.0.1-$HOSTNAME%5e${name/:/%3a}%5eDestFolder"
	wget -q -O - --post-data="$postdata" http://192.168.0.43/hp/device/set_config.html
elif [ "$1" == "-d" ]; then
	name=$2
	[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
	postdata="RemoveScanToDest_1=${name/:/%3a}"
	wget -q -O - --post-data="$postdata" http://192.168.0.43/hp/device/set_config.html
elif [ "$1" == "-l" ]; then
	wget -q -O - http://192.168.0.43/hp/device/info_scanto_destinations.xml \
	| sed -n '/<DeviceDisplay>/s/<\/*DeviceDisplay>//gp'
else
	echo 'usage: scanto_destination -l -a <destname> -d <destname> for listing adding and deleting destinations'
fi


Rich (BBCode):
#!/bin/bash
cd "`dirname $0`"
set -o pipefail
while true; do
	# if scan-to button pressed - run the command corresponding to the destination name
	name=`wget -q -O - http://192.168.0.43/hp/device/notifications.xml \
			| egrep -o '<ScanToDeviceDisplay>(.*)</ScanToDeviceDisplay>' \
			| sed -e 's/<ScanToDeviceDisplay>//' \
			| sed -e 's/<\/ScanToDeviceDisplay>//' \
			| sed -e 's/.*://'` && {
		if [ "$name" != "" ]; then
			if [ -x "scan-command/$name" ]; then
				(cd scans; "../scan-command/$name" >/dev/null 2>&1)
				chmod a+r scans/*
			fi
		fi
	}

	# update scan-to destinations in printer if necessary
	./scanto_destination -l | sed  's/.*://' >/tmp/printer-dests &&
	ls scan-command >/tmp/command-dests &&
	diff /tmp/printer-dests /tmp/command-dests | egrep '<|>' |
	  sed 's#<#./scanto_destination -d#;s#>#./scanto_destination -a#' | bash

	sleep 5
done

Habe halt einfach zu wenig Ahnung von .... :eek:


Vielen Dank
Struppix
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
Ich sag dir jetzt mal was mir durch den Kopf gegangen ist, als ich deinen ersten Post gesehen habe: Super da hat einer ein Script aus dem Internet, klatscht es hier rein und möchte, dass wir ihm die Lösung fertigschreiben ;-)
Es wäre besser wenn du mal beschreiben würdest was du machen willst und wo genau es in dem Script hackt. Versteh mich ned falsch, wenn du deine Threads so reinstellst, darfst du das natürlich. Die Chancen auf Antwort halte ich jedoch für höher wenn man zeigt, dass man selber bereits schon einiges probiert hat und nicht nur einfach eine fertige Lösung will.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
HP SendTo Button - Netzwerkscanner per HPLIP

Hi jahlves,

Du hast natürlich vollkommen Recht. Im Nachhinein würde ich es selbst vielleicht auch so sehen. Hatte es an dem Tag wieder mal eilig, und war mächtig gefrustet ...

Aber nun mal der Reihe nach:

Die Geschichte beginnt eigentlich ganz simpel.
Nachdem wir hier zuhause mehr und mehr Rechner auf Windows 7 meist 64bit ( arbeitsbedingt auch Prof. ) umgestellt haben, läuft die vermaledeite HP Scanner Software nicht mehr. Genauergesagt habe ich auch die inzwischen auch zum Laufen gebracht. Allerdings wird die Toolbox für die Scanner nur unter Win XP und Win 2000 unterstützt. Außerdem ist es nun die Win Scanner Soft, und nicht die des HP, was einige Einschränkungen mit sich bringt.
Sicher, die Software ist richtiger Mist, da sie weder richtigt läuft, noch meist das macht was sie soll. Allerdings war der AllInOne günstig und ich habe mich mit Toner etc. eingedeckt. Außerdem ist das Druckbild recht ordentlich, und er ist mechanisch wirklich gut. So sehe ich das zumindestes ..... Puh.

Nun hatte ich mir gedacht, das Scannen via Netzwerk ( nicht per USB an der DS ) mit HPLIP einzurichten, was im großen ganzen nur an HPLIP selbst scheitert. Das ipkg, welches verfügbar ist, läuft leider nicht sauber. Ich bekomme ums Verr... keinen neuen Scanner mut CUPS hinzugefügt. Obwohl auch das nur die halbe Wahreit ist, denn das habe ich auch hinbekommen, nur eben HPLIP meldet einige Fehler. Dazu später mehr.
In der Zwischenzeit habe ich gefühlte 10000 Seiten gelesen und bin auf die besagten Scripte gestoßen.

Die Scripte sind im Original von hier. Zugegebener Maßen habe ich wenig Ahnung, und meine Erfahrungen aus meiner Jugend sind eher dürftig und laaange her.
Das erste Script fügt eine "Umleitung" zur Einstellung des angegebenen Speicherortes im Drucker hinzu, wo die "abgefangenen" Scans dann abgelegt werden sollen. Gleich mal ne Frage hierzu, wobei man sieht, daß ich hiervon wenig Ahnung habe, wie, wo macht der das, was muß ich angeben .... ?

Ehrlich gesagt habe ich die Scripte bereits in einigen Varianten versucht zum Laufen zu bringen. Jedoch verstehe ich das nicht annähernd. Ich bekomme immer in der 2.Schleife des elif eine Fehlermeldung. Selbst die Umstellung auf if Schleifen führt dann am Ende des Scriptes zu den, für mich, seltsamten Fehlermeldungen. Je nachdem ob ich mit 'exit' oder anderen Versuchen gearbeitet habe, kam nichts Vernüftiges raus.

Mein letzter Stand war dieser, wobei es nicht durchläuft, am Ende:

Rich (BBCode):
#!/bin/bash
# command to maintain the scan-to destination list in the HP Color LaserJet 2840 printer
if [ "$1" == "-a" ]
then	name=$2
		[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
		postdata="AddScanToDest_1=127.0.0.1-$HOSTNAME%5e${name/:/%3a}%5eDestFolder"
		wget -q -O - --post-data="$postdata" http://192.168.1.7/hp/device/set_config.html
elif [ "$1" == "-d" ]
then	name=$2
		[[ ! "$name" =~ ":" ]]&& name="$HOSTNAME:$name"
		postdata="RemoveScanToDest_1=${name/:/%3a}"
		wget -q -O - --post-data="$postdata" http://192.168.1.7/hp/device/set_config.html
elif [ "$1" == "-l" ] then
			wget -q -O - http://192.168.1.7/hp/device/info_scanto_destinations.xml \
			sed -n '/<DeviceDisplay>/s/<\/*DeviceDisplay>//gp'
else
	echo 'usage: scanto_destination -l -a <destname> -d <destname> for listing adding and deleting destinations'
fi

Allerdings könnte man ja die "Destination" direkt absetzen. Wobei, was bzw. wie gibt man die an und wo fragt man die ab. Du siehst mehr Fragen als Antworten.

Das zweite Script habe ich dann mir nur am Rande angeschaut, da ich ja das erste nicht mal hinbekomme.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Jetzt zum Thema HPLIP.

Hier hatte ich in einem anderen Thread mal angefragt, ob man ein fertiges Paket von HPLIP verwenden kann. Ansonsten müßte man es kompilieren.
Davor habe ich mich bisher gescheut.

Schön wäre es nautürlich, von überall scannen zu können. Noch schöner wäre es den ScaTo Button verwenden zu können.

Das zweite Script fragt dann die NW Stream der Drucker IP alle 5 Secunden ab. Dieser wird dann auf den im ersten Script angelegte Zieladresse umgeleitet.

Es gibt noch ein erweitertes Script, wo ich recht wenig verstehe.


Ich hoffe das war ausführlich genug, wobei meine Tests mit HPLIP schon ein paar Tage fruchtlos waren.

Gruß
Struppix
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Die Skripte sind nur zum Anpassen der Ordner, denke nicht, dass das irgendwas mit Deinem Problem zu tun hat. Alles was Du erst mal braucht ist das "hp-scan -n -r...". Wenn das läuft, kannst Du dich mit dem Rest beschäftigen.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Alles was Du erst mal braucht ist das "hp-scan -n -r...". Wenn das läuft, kannst Du dich mit dem Rest beschäftigen.

Hi Merthos,

danke für die Antwort. Das "erweiterte" Script aus #5 ist ein unabhängiges Script, welches der Schreiber aus den beiden ersten aus #1 entwickelt, wenn man das so nennen darf, hat.

Ich möchte aber nur die beiden aus #1 zum Laufen bringen. Man "fängt" den Stream vom Scanner ab und legt ihn in ein vordefiniertes Verzeichnis.

Das "erweiterte" Script benötigt HPLIP und hat mit den beiden ersteren eigentlich nichts zu tun. Davon abgesehen übersteigt es mein Vermögen beiweitem. HPLIP selbst würde ich über SANE nutzen wollen, was aber ein anders Pronlem ist, weil wie geschrieben das ipkg Paket für HPLIP nicht ganz ok zu sein scheint.

Struppix
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Die Skripte scannen nicht! Das erste ändert Einstellungen und das zweite überwacht den Button und startet dann hp-scan mit den passenden Parametern. Wie gesagt, schaff erst mal die Hürde bevor Du Dich mit den nächsten befasst.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Hi Merthos,

ich weiß. Ich scanne ja nicht über die Scripte.

Im Beitrag #1 sind zwei Scripte dargestellt. Diese überwachen den Traffic des Druckers alle 5 sec und laden diesen dann auf ein Verzeichnis Deiner Wahl, für genau den genannten HP Drucker ! Dabei wird nur letztlich der Button am Scanner überwacht, der den Scan Hardwareseitig auslöst.

Aber genau diese Scripte ( siehe ff Posts ) bekomme ich nicht zum Laufen. Hab halt zu wenig Schimmer ...

Struppix
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
was passiert denn wenn du das Script aus #4 mal auf der Konsole aufrufst? Geht es ohne Fehlermeldung oder hauts dir dabei schon Fehler raus? Die IPs im Script hast du angepasst? Ist das die DS selber, der Scanner oder sonst ein Gerät im LAN? Bash hast du bei dir wo dieses Script laufen soll auch installiert?
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Nochmal. Die Skripte scannen, laden, was auch immer nicht! Es wird nur hp-scan von SANE aufgerufen.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Hi jahlives,

das Script aus #4 läuft bis zur letzten Zeile, bricht aber in der letzten Zeile mit der Meldung "unexpected .... expected then" ab. Ich habe schon unzählige Versuche angestellt, stochere aber nur im Trüben ....

Struppix

Edit: Hatte ich vergessen. Die IP ist natürlich vom Scanner.
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Nochmal. Die Skripte scannen, laden, was auch immer nicht! Es wird nur hp-scan von SANE aufgerufen.

Hi Merthos,

ich stehe vermutlich auf dem Schlauch. Wenn Du hier mal schaust http://rende.se/index.php?n=Main.ScanToFolder

Natürlich kann man den Scanner, was auch noch immer mein Ziel ist, wie ich ja schrieb, über SANE ansteuern. Dies scheitert momentan noch an HPLIP.

Was aber haben die beider Scripte aus #1 mit dem scan Befehl aus SANE oder HPLIP gemein ? Ich möchte diese nur auf der DS lauffähig bekommen. Wo bitte siehst Du den in den beiden Scripten einen Scan-Befehl ?

Der Scan-Befehl im erweiterten Script ( ==> Nur von mir erwähnt, aber nicht benötigt ) setzt auf HPLIP auf. Das möchte ich aber so gar nicht machen, weil ich das nicht ansatzweise schnalle !!!!!

Dieser Beitrag hier beschreibt das, was ich vorhabe recht gut (Die Scan-To-Folder Funktion ): http://www.rootz.de/2010/09/mit-linux-ubers-netzwerk-scannen-mit-hp-multifunktionsdruckern/#more-1586

Struppix
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
was passiert denn wenn du das Script aus #4 mal auf der Konsole aufrufst? Geht es ohne Fehlermeldung oder hauts dir dabei schon Fehler raus? Die IPs im Script hast du angepasst? Ist das die DS selber, der Scanner oder sonst ein Gerät im LAN? Bash hast du bei dir wo dieses Script laufen soll auch installiert?

Habe Deinen Beitrag nicht bis zu Ende gelesen, srry ...

Nun, zu installieren sollte es da doch nichts geben, oder ? Mal laienhaft ausgedrückt :D , was anderes kann ich ander Stelle wohl nicht, sollte er nur ein "Zielpfad / -verzeichnis" auf der DS "anlegen", wo er dann die "abgefangenen" Scans speichert.
Diese Variable wird später wieder im Script 2 abgefragt und gesetzt / verwendet.

Struppix
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Rich (BBCode):
...(cd scans; "../scan-command/$name" >/dev/null...
und
Rich (BBCode):
scan-command/color75:
hp-scan -n -r75

Alles andere von den Skripten ist nur "Eye Candy", damit es schöner und automatisch geht...
 

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Ok, das verstehe ich nicht. hp-scan ist ja ein Befehl aus HPLIP. Also müßte ich Deiner Interpretation nach scan-comannd durch hp-scan ersetzen. Richtig ?

Abgesehen davon, das der "Rest" für mich unlösbar erscheint. Wenn's so ist, hänge ich wieder mal an HPLIP ....

Struppix
 

Merthos

Benutzer
Mitglied seit
01. Mai 2010
Beiträge
2.709
Punkte für Reaktionen
2
Punkte
84
Ja, tust Du. So lange das nicht läuft, sind die Skripte wertlos.

scan-command ist ein Ordner in dem verschiedene Skripte liegen, wo unterschiedliche Einstellungen für hp-scan drin sind. Das zweite Skript macht nichts weiter den Button zu überwachen, dann die Einstellungen vom Drucker auszulesen, ggf. das Zielverzeichnis hinzuzufügen und dann das zu den Einstellungen passende Skript (also hp-scan) aufzurufen.
 

Drain

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
144
Punkte für Reaktionen
0
Punkte
0

Struppix

Benutzer
Mitglied seit
10. Apr 2009
Beiträge
883
Punkte für Reaktionen
185
Punkte
63
Hi Drain,

danke für Dein Feedback.

Ich bin mir allerdings nicht sicher, ob man diesen Download für die DS so verwenden kann, bzw. ich glaube das eher nicht. Wenn man den Wizzard auf der gleichen Seite bemüht, wird es noch verwirrender. Vielleicht bringt mal jemand Licht ins Dunkel. Hierzu hatte ich bereits mal einen Beitrag geschrieben ...
Inzwischen habe ich mir vorgenommen, HPLIP neu zu kompilieren. Mal schauen, ob ich die Tage dazu komme. Oder jemand gibt mir einen Tip, welche Variante nun die Richtige zum Installieren ist.

Struppix
 

Drain

Benutzer
Mitglied seit
08. Nov 2009
Beiträge
144
Punkte für Reaktionen
0
Punkte
0
Soweit ich das sehe geht es auf der von dir bezogenen Seite Installation Wizard nur um einen Check, ob in der eingesetzten Linuxdistribution das HPLIP bereits vorhanden ist oder nicht. Das Kompilieren, von dem du die ganze Zeit sprichst, ist gar nicht notwendig.

Ich habe auf der Seite mal die Felder ausgefüllt und habe daraufhin folgendes Ergebnis bekommen:
You have selected Red Hat 8.0 using the HP Officejet 6500 Wireless All-in-one Printer - e709n.
Your distribution does not include any version of HPLIP.
You must download and install HPLIP in order to use your printer with Red Hat 8.0
 
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