Connect failed: Connection timed out

[GastForen Betriebsysteme und Dienste HELIOS Index-Server und dt ohne Event

  • Suche
  • Hilfe
  • Lesezeichen
  • Benutzerliste
Themen
Beiträge
Moderatoren
Letzter Beitrag

Index-Server und dt ohne Event

Bernd Flachsbart
Beiträge gesamt: 48

29. Jun 2015, 17:19
Beitrag # 1 von 4
Bewertung:
(2437 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo liebe Helios Gemeinde,

ich habe ein kleines Problem mit folgendem Szenario unter UB2 (Patchlevel u1005):

- Für einen automatisierten Prozess ist auf einem Helios-Volume ein Verzeichnisbaum durch ein Script-Server Script überwacht
- Im Rahmen des Prozesses werden aus Shell-Scripten teilweise Files in die Struktur kopiert, bei denen jedoch im Prozesskontext keine Verarbeitung durch das ScriptServer Script stattfinden soll
- Folglich werden die dt cp Aufrufe ohne Option -E durchgeführt
- Das Helios Volume ist indiziert, das wird für den Prozess ebenfalls benötigt
- Die ohne Event kopierten Files tauchen nicht im Index auf, vermutlich weil der notifysrv ja (absichtlich) keine Kenntnis von der Aktion hat

Nun möchte ich diese Files aus dem o.g. Shell-Script quasi manuell indizieren, dazu habe ich im Manual vom indexsrv folgendes gefunden:

Code
/usr/local/helios/sbin/indexsrv -c <file> 

Update index data base for a file <file>. The file is re-indexed irrespective of the modification date.


Als root klappt das auch wie beschrieben, das Script Server Script läuft aber aus gutem Grund als "normaler" User.
Wenn ich als nicht-root User den o.g. indexsrv Aufruf durchführer, erhalte ich einen RPC Fehler:

Code
RPC Request to master indexsrv failed for file /aboluter/pfad/zu/xyz.tif: bad parameter from client 


Deadlock Situation:
Mit root Berechtigung würde es klappen, ich möchte das Script aber nicht im root User Kontext ausführen.

Als Workaround aktualisiere ich den Index jetzt erst mal 1x nächtlich über einen cron job, das hat aber natürlich den Nachteil der zeitlichen Verzögerung.

Hat jemand eine Idee, wie ich die oben geschilderte Aufgabenstellung (d.h. keine Events und trotzdem die lfd. Indizierung) lösen kann, ohne das Script als root User laufen zu lassen?
Ich hatte schon an sudo gedacht, aber es handelt sich um eine Solaris 10 Basis: sudo ist nicht vorhanden (falls es überhaupt existiert für Solaris...)

Danke und viele Grüße
Bernd Flachsbart
X

Index-Server und dt ohne Event

GreatOm
Beiträge gesamt: 378

30. Jun 2015, 12:13
Beitrag # 2 von 4
Beitrag ID: #540856
Bewertung:
(2378 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Moin!

Warum wird die Datei nicht einfach mit Event in ein anderes Verzeichnis geschoben und dort automatisch indiziert? Nach einer Wartezeit kann die Date dann wieder herausgeholt werden, um den weiteren Workflow fortzusetzen.

Alternativ könnte man einen anderen Hotfolder verwenden, in dem als "root" laufend
Code
/usr/local/helios/sbin/indexsrv -c <file> 

ausgeführt wird. Der Vorteil wäre dabei, dass man besser mitbekommt, wenn die Datei indiziert ist. Bei dem automatischen Index ist das schon schwieriger...

HIlft das weiter?

Gruß,
GreatOm


als Antwort auf: [#540844]

Index-Server und dt ohne Event

Bernd Flachsbart
Beiträge gesamt: 48

30. Jun 2015, 16:18
Beitrag # 3 von 4
Beitrag ID: #540859
Bewertung:
(2338 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Hallo GreatOm,

Der dt cp Befehl ohne -E kopiert das File an den finalen Ablageort und das File muss dann auch da liegen bleiben.

Oder ist es so, dass im Index nur der Dateiname gespeichert wird und der aktuelle Pfad dazu bei einer Spotlight-Suche aus der Desktop Datenbank kommt? Dann wäre deine vorgeschlagene zweistufige Variante ja möglich.

Auch die Idee mit einem zweiten Hotfolder, der nur indiziert, ist sehr interessant! Zwei ScriptServer Queues auf dem gleichen Basis-Verzeichnis habe ich noch nie genutzt, aber wenn der ursprüngliche Event quasi an beide geht sollte das ja auch klappen...

Ich werde das mal austesten, Danke für die Anregungen!

Gruß,
Bernd Flachsbart


als Antwort auf: [#540856]

Index-Server und dt ohne Event

GreatOm
Beiträge gesamt: 378

30. Jun 2015, 17:16
Beitrag # 4 von 4
Beitrag ID: #540861
Bewertung:
(2327 mal gelesen)
URL zum Beitrag
Beitrag als Lesezeichen
Antwort auf [ Bernd Flachsbart ] Der dt cp Befehl ohne -E kopiert das File an den finalen Ablageort und das File muss dann auch da liegen bleiben.

Oder ist es so, dass im Index nur der Dateiname gespeichert wird und der aktuelle Pfad dazu bei einer Spotlight-Suche aus der Desktop Datenbank kommt? Dann wäre deine vorgeschlagene zweistufige Variante ja möglich.


Yep. Die IndexDB enthält nur die FileID und keinen Pfad. Der wird erst bei der Suche vom DeskServer (über Parent IDs) erfragt.

Antwort auf: Auch die Idee mit einem zweiten Hotfolder, der nur indiziert, ist sehr interessant! Zwei ScriptServer Queues auf dem gleichen Basis-Verzeichnis habe ich noch nie genutzt, aber wenn der ursprüngliche Event quasi an beide geht sollte das ja auch klappen...


Nee. Leider nicht. Wenn man verschachtelte Skripte benutzt muss da schon ein anderer Typ/Suffix auftauchen. Wenn ein Skript den Event konsumiert hat kommt nichts mehr bei dem anderen an.
Mal ne andere Idee:
- Die Datei "bla.pdf" soll indiziert werden
- "dt touch -E bla.pdf.leglos" im gleichen Verzeichnis machen.
- das Indizieren-Skript lauscht nun auf ".leglos" Suffix und startet mit dem "/PFAD/ZU/bla.pdf.leglos"
- Im Skript dann den ".leglos" Suffix vom Pfad entfernen und den IndexServer auf diese Datei ansetzen.

Andererseits wäre es natürlich am einfachsten den letzten move zum finalen Ablageort vielleicht doch mit dem Event bzw. einen "dt touch -E" zu machen. Dann würde der Auto-Index alles alleine richten. Die Frage ist nur ob das rekursive Script bei derartigen Events gestoppt werden kann...

Ich muss gestehen ich bin kein Freund von rekursiven Skripten, da man sich damit schnell die Karten legen kann. Ich habe lieber eine Anzahl einfacher Skripte, die sich gegenseitig über Datei-move zum neuen Zielordner triggern.

Gruß,

GreatOm


als Antwort auf: [#540859]
X