Hilfe bei Script Anpassung

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Verwirrrrrrrrrtttttt.

Das hatte ich doch vorhin immer. Muß ich irgendetwas an der Verzeichnissen drehen ?

Wie gesagt. Ich habe den Eintrag mit in

Rich (BBCode):
scanimage --format tiff --source Auto > /volume1/download/scan.tiff

genommen.

Ist da der Wurm ?

Struppix
 
Ich sollte nicht so viele B.... trinken.

Jo das wars. :D

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.1.7/hp/device/notifications.xml \
			| egrep -o '<ScanToDeviceDisplay>(.*)</ScanToDeviceDisplay>' \
			| sed -e 's/<ScanToDeviceDisplay>//' \
			| sed -e 's/<\/ScanToDeviceDisplay>//' \
			| sed -e 's/.*://'` && {
		if [ "$name" != "" ]; then
			scanimage --format tiff --source Auto >> /volume1/download/Scan.tiff
		fi
	}
	sleep 5
done

Der Scan ist da und der Prozeß läuft weiter.

Und wieder Erwarten bringt der Scanner keine Fehlermeldung. Cool.
Nun brauchen wir noch ein nettes Startscript. Merthos hast Du vielleicht Lust .... :confused: nich hauen. Hast wirklich etwas gut.

Somit kann ich hier, verkünden. ScanTo geht.

Werde die tage mal ein howto machen, zumindest zum nachexperimentieren.

Struppix
 
In dem Script aus #37 das echo durch die Zeile ersetzt? Nimm immer volle Pfade. Verzeichnisse und alles erst mal ignorieren, es geht nur darum, beim Button einen Scan zu starten. Wenn das geht, können wir uns um die Verzeichnisse kümmern.

Edit:
Na denn Glückwunsch.
 
Vielen Dank. Würde Dir gern nen Schm.... geben :o

Wenn ich nicht schon so viele graue Haare hätte, würde die neuen echt auffallen.

Struppix
 
Hi Merthos,

eine Frage habe ich dennoch. Wenn ich mir die Prozesse des sleep 5 so anschaue, dann zählt das sleep mit jedem neuen Aufruf einen hoch. Ist das im Sinner des Erfinders ? Das wären rund 260 Tsd PID's pro Jahr. Lol

Kann man das auch eleganter lösen ?

Struppix
 
PIDs werden recycled, wenn nötig. Nichts worum man sich Sorgen machen muss. :D
 
Hallo Merthos,

ich traue mich gar nicht zu fragen ---- hier gibt es kein emoticon für ganz ganz klein -----

Ich bekomme einfach einen "Zähler" nicht hin.
Zum Hintergrund:
- Ich würde gern jeden Scan mit einer zB. 001 erweitern, sodaß alte Scans nicht gelöscht werden.
- Dies ist sogar zwingend, wenn ich den Dokumenteneinzug verwenden will. Leider gibt der 2840 kein Signal, wenn das Fach leer ist.
- Mit einem Trick bekomme ich die Nummerierung hin, jedoch muß man dann jedes Blatt neu anstoßen.
- Da ich aber bereits an verschieden Einstellungen bastle, also zB. pdf, muß ich mehrern Dokumenten nummerieren können.

Kannst Du bitte helfen ?

Durch diesen Befehl 'scanimage --batch=Scan%d.tif --batch-count=1 --batch-increment=1 --batch-start=1 --source Auto' bekomme ich wenigstens die Nummerierung, das Heraufzählen hin, aber das geht nicht für einen "Stapel" Dokumente aus dem Einzug.

Danke
Struppix
 
Ganz am Anfang des Skriptes:
Rich (BBCode):
COUNT=0
In der Schleife:
Rich (BBCode):
...scanimage --batch=Scan$COUNT.tif...
COUNT=$(($COUNT+1))
Ist aber nur solange das Skript läuft. Für mehr müsste man den in einer Datei speichern.


Aber das Datum ist doch eigentlich besser, oder?
Rich (BBCode):
...scanimage --batch=Scan_`date +%Y%m%d`_`date +%H%M%S`.tif...
 
Hi Merthos,

danke. Das verstehe ich vom Aufbau noch nicht ganz. Erst einmal das mit dem Datum ist in jedem Fall besser, gebe ich Dir recht. Werde ich gleich mal testen.

Allerdings hilft mir das beim, ich nenne es jetzt mal "Serienscan" für ein zusammenhängendes pdf leider nichts.
Das Problem ist, wenn der Stapel mal durch ist, der Scanner sich aufhängt, und auch nur durch ein Ausschalten wieder zu erwecken ist. Danach sind allerdings die Verzeichnisse = Variabeln weg.
Ich würde das gerne ohne --batch machen wollen, da durch den Parameter '--soure auto' sich der Scanner den Dokumenteneinzug nimmt, wenn was drin liegt. Geht das ?


Struppix

Edit: Mit dem Datum hat er eben folgendes File "Scan_20120424_225742.tif" angelegt. :)
 
Zuletzt bearbeitet:
Hi Merthos,

inzwischen bin ich ja ein Stück weiter und habe mal meine "Leidensgeschichte" hier niedergeschrieben.

Mit den Scripten bin ich noch nicht so recht zufrieden, aber ich werde wieder dran basteln.

Gestern nußte ich entsetzt feststellen, daß mein Script zwei nach dem Schließen des Terminals auch geschlossen wird.

Ich starte es mit 'sh scanto &'. Das verstehe ich leider nicht. Warum läuft das nicht weiter ?

Struppix
 
Starte es mit screen dann überlebt es auch einen Logout der Shell
 
Hi jahlives,

da hätte ich selbst drauf kommen müssen. Jedoch muß ich da bisschen mehr "Schmalz" reinstecken, da sie eh schon nicht mehr sauber runter fährt. Wenn noch screen läuft, geht es gar nicht mehr, oder ? Wenn man nur mal etwas mehr Durchblick hätte ....

Struppix
 
Code:
#beim start
screen /pfad/zum/script
echo $$ > /tmp/mein.pid

#beim stop
[ "x$(cat /tmp/mein.pid)" != 'x' ] && kill $(cat /tmp/mein.pid) && echo > /tmp/mein.pid
aber eigentlich solltest du screen nicht brauchen. Wenn das sauber als Startscript beim boot aufgerufen wird (sauberes Startscript), dann wird das Teil bis zum shutdown auch mit & am Ende laufen
 
Hi jahlives,

danke für Deine Hilfe, und eigentlich schon. Jedoch bekomme ich zB. beim Ausführen Deines Scriptes mit

Rich (BBCode):
#beim start
screen sh /usr/local/scanto/scanto &
echo $$ > /opt/var/run/scanto.pid

#beim stop
[ "x$(cat /opt/var/run/scanto.pid)" != 'x' ] && kill $(cat /opt/var/run/scanto.pid) && echo > /opt/var/run/scanto.pid

zB. die pid 16021. Schaue ich direkt nach, erhalte ich

Rich (BBCode):
/ # ps | grep scanto
16066 root      1940 S    SCREEN sh /usr/local/scanto/scanto
16067 root      2548 S    sh /usr/local/scanto/scanto
16294 root      2552 S    grep scanto
/ #

weswegen der Stopbefehl nicht funktioniert. Es wird ein erneuter Screen gestartet.


Bei Änderung ohne screen

Rich (BBCode):
#beim start
sh /usr/local/scanto/scanto &
echo $$ > /opt/var/run/scanto.pid

#beim stop
[ "x$(cat /opt/var/run/scanto.pid)" != 'x' ] && kill $(cat /opt/var/run/scanto.pid) && echo > /opt/var/run/scanto.pid

erhalte ich ( im provisorischen Startscript)

Rich (BBCode):
/ # /usr/local/scanto/S68scanto_startscript start
Terminated
/ #

Der Direktstart hingegen funktioniert ....

Rich (BBCode):
/ # sh /usr/local/scanto/scanto &
/ #


Sorry, ich versteh es nicht.

Struppix
 
du musst in dem Fall echo $$ /path/pid im File /usr/local/scanto/scanto machen :-)
 
du musst in dem Fall echo $$ /path/pid im File /usr/local/scanto/scanto machen :-)

Heh danke, das zeigt mal wieder ganz deutlich, daß ich mich trotz meiner alten Tage mehr damit beschäftigen sollte. :D

Nach einigem Experimentieren bin ich jetzt hier angelangt.


Struppix
 
Zuletzt bearbeitet:
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