Shellscript in Sekunden Intervall aufrufen

S

sevY

Hi,

ich habe folgendes Script:

Code:
ftp ftp://user:pass@ftp.domain.de
put /local/webcam32.jpg /upload/webcam32.jpg

Dieses soll in einem 5 Sekunden Interval in Endlosschleife laufen… die typischen Freewares zum zeitdefinierten FTP'ing waren sehr instabil… daher nun dieser Weg…

Ich habe weder bei Google noch in den MAN Pages irgendwas, was nach INTERVAL aussieht, gefunden.

Wer weiß weiter?

Liebe Grüße

Yves
 
such mal nach "cron"; das ist, was du willst.

cheers
 
vieleicht kannst du das shellscript per applescript aufrufen - soweit ich mich erinnere kann applescript auch sekundenintervalle ...
 
Hallo

schreib einfach dein Script in folgende while Schleife

gruss
Thomas
Code:
while [ 1 ]; do
        sleep 5
        deinScript
done;
 
Zuletzt bearbeitet:
Löst zwar nicht direkt Dein Problem, aber guck Dir mal die Webcamsoftware EvoCam an (Download bei versiontracker.com) Da kann man auch einen ftp-Server angeben.

Grüße Markus
 
Mit cron geht das soweit ich weiss nicht. Aber du kannst ja ne unendliche schleife drum rum machen. Ich weiss jetzt nicht genau wie das in Bash aussieht aber in Pseudo code sollte das so aussehen:
Code:
while 1 do
   deine eigentliche Aktion
   sleep (10); //Warte 10 ms oder was auch immer
end;

Das ding haust du dann in die Autostart.. Feddich.

Edit: Da war wohl jemand schneller..
 
Zuletzt bearbeitet:
Jo, vielen Dank!
EvoCam & Co. funktioniert nicht so wie ich mir das gewünscht hätte, bzw. ist Shareware.

Aber das Bash-Script ist cool… sowas hab ich gesucht…

Actionscriptmäßig würde das so aussehen:

Code:
var upload=function()
   {
   //do something
   }

var uploadInt=setInterval(upload,5);

Sowas ähnliches hatte ich gesucht… komisch das da nix dabei ist… also einfach eine Funktion, die eine andere in einem definierten Interval aufruft.

Aber eure Lösungen entsprechen dem ja! Vielen Dank!
 
Yves schrieb:
Sowas ähnliches hatte ich gesucht… komisch das da nix dabei ist… also einfach eine Funktion, die eine andere in einem definierten Interval aufruft.

Das wird vermutlich daran liegen, daß dein Provider dich möglicherweise (und völlig zu recht) GRILLEN wird, wenn du im Sekundentakt ftp-Logins durchführst.
Da dauern die Logins ja schon länger als eine Sekunde. Das zeitgleiche ersetzen des jpgs durch die Camsoftware während des Uploads hat auch niemand bedacht. Ganz abgesehen davon erzeugt man irre viel Traffic durch die ganzen uploads, ohne daß jemand die Bilder gerade betrachtet. Schonmal dran gedacht, welche Last auf dem Authentifizierungsserver des Providers aufläuft, wenn man am Tag 86.400 Logins durchführt?
Alles Quatsch.


Korrekt wäre:
- einen dyndns-Account holen ( "beispiel.dyndns.org")
- Auf dem eigenen Rechner einen Webserver starten
- den dyndns-Client installieren
- die Webcam-Software in den lokalen Webserver-Ordner publishen lassen.
- Auf der eigenen Website das Bild auf den lokalen Server verlinken:
<img src="http://beispiel.dyndns.org/~yves/webcam.jpg">

Das ganz in einen meta-refresh gehängt funktioniert deutlich besser. Und man behält seinen Provider.

Gruß, Ratti
 
ratti schrieb:
Das wird vermutlich daran liegen, daß dein Provider dich möglicherweise (und völlig zu recht) GRILLEN wird, wenn du im Sekundentakt ftp-Logins durchführst.
Da dauern die Logins ja schon länger als eine Sekunde. Das zeitgleiche ersetzen des jpgs durch die Camsoftware während des Uploads hat auch niemand bedacht. Ganz abgesehen davon erzeugt man irre viel Traffic durch die ganzen uploads, ohne daß jemand die Bilder gerade betrachtet. Schonmal dran gedacht, welche Last auf dem Authentifizierungsserver des Providers aufläuft, wenn man am Tag 86.400 Logins durchführt?
Alles Quatsch.
Naja… dann bin ich doch mal froh, das „der Provider“ in diesem Falle wir sind und wir ein eigenes Rack mit mehr als einem Server haben… wovon einer als Alternative gedacht ist, falls ein Kundenserver ausfällt… und eben diesen für gelegentliche Dinge mißbrauchen können ;)
Und Traffic haben wir für das ganze Rack 1.2 Terrabyte/Monat… da wird das auch gehen ;)

ratti schrieb:
Korrekt wäre:
- einen dyndns-Account holen ( "beispiel.dyndns.org")
- Auf dem eigenen Rechner einen Webserver starten
- den dyndns-Client installieren
- die Webcam-Software in den lokalen Webserver-Ordner publishen lassen.
- Auf der eigenen Website das Bild auf den lokalen Server verlinken:
<img src="http://beispiel.dyndns.org/~yves/webcam.jpg">

Das ganz in einen meta-refresh gehängt funktioniert deutlich besser. Und man behält seinen Provider.

Gruß, Ratti

Jo, da hast du Recht. Das wäre dann die „ich hab meinen Server zuhause“-Methode… aber wie gesagt… in dem Rack stecken 4 Server, einer davon ist als „worst-case“ Ersatz gedacht und kann daher schon mal für soetwas herhalten…


Wenn es den blöden Realproducer für X geben würde, hätte ich auch einen Stream machen können…

Aber was solche Vorhaben bei Shared-Hosting Angeboten angeht… da hast du vollkommen recht…

Yves
 
Yves schrieb:
Naja… dann bin ich doch mal froh, das „der Provider“ in diesem Falle wir sind und wir ein eigenes Rack mit mehr als einem Server haben…

Dann ist es nicht mehr strafbar, sondern nur noch unklug. :))))

Ich würde dir vorschlagen, auf dem Server einen Ordner freizugeben, den du auf dem Client mountest. Noch besser wäre der umgekehrte Weg, also den Client zum Server machen - aber mühseliger. ftp hat einfach zuviel overhead.

Eine Alternative dazu wäre ein perlscript, welches das lwp-Modul einbindet. Damit könnte man einmal einloggen, und dann würde das Script immer nur neu uploaden, das wäre schon sehr viel netzwerkfreundlicher.

Allerdings frage ich mich bei all diesen Lösungen, ob das so hinhaut, weil ja das jpeg von der Camsoftware überschrieben wird, während es upgeloadet wird. Da könnte man mit "wegbenennen" weiterkommen. Ich stelle mir das ungefähr so vor:

use lwp;
connect-ftp
do {
benenne_um( "webcam.jpg" , "upload.jpg")
upload( "upload.jpg")
pause(1)
}

1. Nur noch ein connect
2. Macht keine Bilder kaputt.



Eine andere Möglichkeit:
Du packst auf deinen Webserver ein php-Script, welches nur bei Aufruf das Bild von deinem Rechner holt, z.B. per http.Dann tritt überhaupt nur Last auf, wenn das Bild angefordert wird.

Gruß,
Ratti
 
Hi,

vielen Dank für deine Bemühungen!
Du hast sicherlich recht damit und bietest auch einen vorbildlichen Lösungsansatz… Ich denke, wenn sowas nochmal ansteht (ca. alle 1-2 Monate mal für ein paar Stunden am Samstag zwecks „Gitarrensession“), dann realisiere ich das so, wie du vorschlägst!

Besten Dank,

Yves
 
Zurück
Oben Unten