Script auf Unixmaschine vom pc aus anstossen und Daten holen

Alle Fragen zur Netzwerkkommunikation
khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Script auf Unixmaschine vom pc aus anstossen und Daten holen

Beitrag von khh »

Hallo zusammen,
ich möchte aus einem "Lazarusprogramm" heraus, welches auf einem Windows-Pc läuft, auf einer Unixmaschine ein Script anstossen, welches mir z.B eine Datensicherung anstösst. Falls das nicht geht, könnte ich die DS auch über die Crontab steuern.
Mein Prog soll anschliessend die Daten per ftp auf die Windowsmaschine holen und diese dann dort auf ne CD brennen.
Am Besten alles im Hintergrund per Zeitsteuerung.

Wie würdet Ihr das ansatzweise lösen?

wie hoch schätzt Ihr den Programmieraufwand?

Gruss KHH

Benutzeravatar
theo
Beiträge: 10898
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

Bisschen viele Fragen auf einmal. ;-)
Wie sieht's mit dem Netzwerk aus?
Kannst du auf der Unix-Maschine frei Programme installieren?
Läuft da ein Webserver mit z.B. PHP?
Kanst du beliebige TCP/IP Ports benutzen (Firewalls)?

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Beitrag von pluto »

Ich finde gar nicht das es so aufwendig ist. Einige tage wenn alles gut gehen, wobei mit den Cd Brenen weiß ich es nicht, und den FTP... aber dafür könntest du auch wieder externe Tools einsetzten zu not.

Kannst du denn mit der Linux shell umgehen ?
MFG
Michael Springwald

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@pluto
du meinst also, am einfachsten wäre es externe Programme anzustossen.
Mh, irgendwelche bibliotheken dazu gibts noch nicht ? :-(
Kannst du denn mit der Linux shell umgehen ?
da komm ich her, hab jahrelang nur unter Unix programmiert ;-)

Gruss KH

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
Wie sieht's mit dem Netzwerk aus?
Kannst du auf der Unix-Maschine frei Programme installieren?
Läuft da ein Webserver mit z.B. PHP?
Kanst du beliebige TCP/IP Ports benutzen (Firewalls)?
dreimal ja

Gruss KH

Benutzeravatar
theo
Beiträge: 10898
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

khh hat geschrieben: dreimal ja
Dann hast du die Qual der Wahl.
Am wenigsten Code bräuchtest du wohl Unix-seitig, wenn du das Script mit PHP über den Webserver ankicken würdest http://www.php-resource.de/handbuch/function.exec.htm" onclick="window.open(this.href);return false;

Dann bräuchtest du nur Client-Seitig mit Synapse die PHP-Script-URL aufrufen.

FTP Download auch mit Synapse.

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
ich danke dir,hört sich ja richtig gut an.

werd ich mich mal mit synapse beschäftigen!
und wie siehts aus mit dem lokalen Brennen der CD?

Gruss KH

Benutzeravatar
theo
Beiträge: 10898
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

khh hat geschrieben: und wie siehts aus mit dem lokalen Brennen der CD?
Keine Ahnung. Das hier sieht ganz gut aus:
http://code.filehungry.com/product/lang ... ng_library" onclick="window.open(this.href);return false;

Ist zwar für Delphi aber vielleicht läuft das auch unter Win32-Lazarus.
Ich glaube es benutzt kein Activex, OLE, COM etc..

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@theo
Keine Ahnung. Das hier sieht ganz gut aus:
http://code.filehungry.com/product/lang ... ng_library" onclick="window.open(this.href);return false;
danke dir, werd ich mich nächste woche mal mit beschäftigen

Gruss KH

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

die cdr-tools wären auch noch ne feine sache, recht einfach fernzusteuern und in linux und windows verfügbar
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

mschnell
Beiträge: 3444
Registriert: Mo 11. Sep 2006, 10:24
OS, Lazarus, FPC: svn (Window32, Linux x64, Linux ARM (QNAP) (cross+nativ)
CPU-Target: X32 / X64 / ARMv5
Wohnort: Krefeld

Beitrag von mschnell »

Andere Unixe kenne ich nicht, aber auf einer Linux Box läuft normalerweise (x)inetd. Der hört auf einen Port (oder auch mehrere gleichzeitig) und startet bei connect ein passendes Programm. Netterweise kann bei Linux ein "Programm" auch ein Script sein, das dann mit einer shell gestartet wird. Der Input wird dann aus dem Socket geholt und der Output an den socket gesendet. Den Input kann man dann z.B. mit grep untersuchen

Auf der Client-Seite reicht es, einfach einen Socket auf dem Port aufzumachen um irgendwelche Zeichen direkt an das Script zu senden.


Beispiel eines solchen "remote scripts", das bei mir läuft:

Code: Alles auswählen

#!/bin/bash
echo -e "h eingeben um Fotos %u28hdd_1_1_1%u29 zu sichern\r"
grep "" --max-count=1 | grep --count --ignore-case --quiet h
 echo -e "h eingeben um Fotos (hdd_1_1_1) zu sichern\r"
grep "" --max-count=1 | grep --count --ignore-case --quiet h
   if [ $? -eq "0" ] ; then
	echo Start Backup hdd_1_1_1
        /dirvish/bin/dirvish_hdd_1_1_1
        echo End Backup hdd_1_1_1
   else
	echo nix da
   fi
Man kann einfach mit Telnet (mit der richtigen Port-Nummer) darauf zugreifen. (Wenn man ein h eingibt, wird ein Backup angeworfen, ansonsten passiert nix.)
-Michael
Zuletzt geändert von mschnell am Di 13. Mai 2008, 13:29, insgesamt 1-mal geändert.

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

@all
ich danke euch, die Sache mit dem Connect zur Unixmaschine lässt sich prima lösen.
Was mir noch Kopfzerbrechen macht ist das Brennen der CD
in der CD-Burning-library sind doch einige Bibliotheken angeprochen die im Zip-file nicht dabei sind.
Ua. handelt es sich dabei um WinTypes und WinProcs.
ich nehme mal an die stammen von Delphi, oder?

Gruss KH

Christian
Beiträge: 6079
Registriert: Do 21. Sep 2006, 07:51
OS, Lazarus, FPC: iWinux (L 1.x.xy FPC 2.y.z)
CPU-Target: AVR,ARM,x86(-64)
Wohnort: Dessau
Kontaktdaten:

Beitrag von Christian »

hast du dir nun mal die cdr-tools angeschaut ?
ich machs dir noch einfacher : http://www.heise.de/software/download/cdrtools/1580" onclick="window.open(this.href);return false;
Ich poste sowas nicht aus jux und dallerei wie andere Leute sondern weil ich schonmal nach guten Lösungen für sowas gescuht hab ...
W.m.k.A.h.e.m.F.h. -> http://www.gidf.de/

khh
Beiträge: 489
Registriert: Sa 5. Apr 2008, 09:37
OS, Lazarus, FPC: Win Vista,Win 7 (L 0.9.29 FPC 2.4.1)
CPU-Target: 32Bit /64 Bit
Wohnort: Nähe Freiburg i.Br.

Beitrag von khh »

hallo christian,
klar hab ich mir auch die cdr-tools angeschaut, bin da nur noch nicht ganz durchgestiegen

Gruss KH

Benutzeravatar
theo
Beiträge: 10898
Registriert: Mo 11. Sep 2006, 19:01

Beitrag von theo »

khh hat geschrieben: Ua. handelt es sich dabei um WinTypes und WinProcs.
ich nehme mal an die stammen von Delphi, oder?
Generell bei solchen Ports: Das Zeug was nicht will, einfach mal auskommentieren bzw durch etwas naheliegendes ersetzen (z.B. LCLType, LCLProc).
Falls dann was fehlt, mit "in Dateien Suchen" nach Funktionsnamen, Typendeklaration suchen.
Besser auch erst einmal nur die nicht-visuellen Komponenten zu kompilieren Versuchen.
Bei mir kompiliert der Inhalt von "CD Burner Source Code" resp. alles was an "BurnComponent.pas" hängt mit zwei, drei kleinen Anpassungen.
Ob's auch funzt habe ich nicht getestet. Bin unter Wine.

Antworten