• Willkommen im Forum „Wetterstationsforum.info - Archiv“.
 

Neuigkeiten:

Dieses Forum dient ausschließlich zu Archivzwecken.
Für Fragen nutze bitte unser aktuelles Forum, welches du unter https://wetterstationsforum.info findest.

Hauptmenü

Eigenes Skript auf Meteohub ausführen

Begonnen von che, 06.05.2012, 01:18:40

⏪ vorheriges - nächstes ⏩

che

Hallo zusammen,

für eine externe Anwendung habe ich ein kleines Shell-Skript geschrieben, das mir aus der all-sensors.txt einige Werte ausliest und in ein bestimmtes Format bringt. Das Skript läuft zur Zeit auf einem Webserver, wohin die all-sensors.txt vorher übertragen wird.

Da die WLAN-Anbindung des Meteohub jedoch von Zeit zu Zeit Probleme bereitet und die all-sensors.txt dann nicht übertragen wird, möchte ich das Shell-Skript sozusagen als Back-Up zusätzlich auf Meteohub direkt ausführen.

Frage 1: Ist es prinzipiell möglich, eigene (kleine) Skripte auf Meteohub laufen zu lassen?

Frage 2: Falls ja, wie gehe ich bei der Einrichtung des Cronjobs vor, ohne die anderen Cronjobs (Hochladen der Grafiken) zu überschreiben? Wie lautet der Name des Cronjobs, den ich im Befehl angeben muss (crontab ... ?)?

Danke und Grüße
Christian

Arnim

Hi,

Zitat von: "che"Wie lautet der Name des Cronjobs, den ich im Befehl angeben muss (crontab ... ?)?

Den verstehe ich nicht so ganz....

Hilft das hier weiter?
http://www.wetterstationen.info/phpBB/viewtopic.php?p=215318&sid=3860f87e835964fb8794675a62b6d10b

Was periodisch immer mal wieder ausgeführt werden soll, lässt man durch cron (durch einen cron Job) erledigen.
Dazu trägt man den Befehl incl komplettem Path in die crontab ein.

/etc/crontab dann wohl.

Weiss nicht, welche editoren bei Meteohub dabei sind.
Wenn es nur den vi dort gibt, musst ein bischen aufpassen. Der ist sehr eigenwillig, sprich: Die Bedienung ist ungewöhnlich.
Er hat 2 Modusse (oder wie nennt man die Mehrzahl von Modus?;-)
Einmal den Kommandomodus (zB löschen von Zeichen, abspeichern, verlassen) und einmal den Eingabemodus (schreiben)

Bevor man Komandos zur Steuerung des Editors eingeben kann, muss man in dem Kommandomodus wechseln. Dies geschieht durch Drücken der <ESC>-Taste. Beispiel: Vi Beenden + Speichern: <ESC> :wq
   
vi starten:    vi Dateiname --> Dateiname nicht vorhanden = neue Datei

vi starten:   vi Dateiname --> vorhandene Datei wird geoeffnet

vi starten:   vi           --> neue Datei
   
Im Kommmandomodus (<ESC> drücken):
   vi abbrechen ohne speichern:   :q!
   vi beenden:            :q
   vi beenden+speichern:      :wq
   vi speichern+Dateiname:      :w Dateiname
   Zeichen löschen:                    x  
   In Eingabebodus wechseln:           i

Wenn Du Mist gebaut hast, verlassen ohne speichern:
<ESC>:q! <RETURN>
Dann nochmal probieren:-)


Was Du dort eintragen musst um Dein Script zu starten, steht hier sehr anschaulich:
http://de.wikipedia.org/wiki/Cron

Das Script muss ausführbar sein.
ls -la /path/scriptname
chmod 755 /path/scriptname
oder
chmod 744 /path/scriptname
Musst mit ls -la gucken wie andere Scripte dort sind.
Die "x" stehen für Ausführbar.

Falls Du es genau wissen möchtest:
http://support.ecs-webhosting.de/FragenundAntworten/Linux-Dateirechte-und-755-777-etc-verstehen?Keywords=Dateirechte

Gruss,
  Arnim!
ASH2200, S300IA, S555TH + WS2000 Repeater + WS2500PC (868 MHz)
Davis Vantage Pro 2 Aktiv
Auswertung unter Linux mit wview und wetter.cgi: wetter.bohlberg.de

che

Hallo Arnim,

danke für Deine Hilfe.

Es reicht also, die crontab zu editieren und abzuspeichern. Bisher kannte ich das immer so, dass man die crontab danach neu starten musste (eben mit crontab <crontab_name>).

In meiner crontab werden sämtliche Jobs offenbar ausgelagert:

Zitat# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#

Könnte ich meinen eigenen Cronjob einfach als eigenständige Zeile in diese Reihe eingliedern?

Grüße
Christian

Arnim

Hallo,

Zitat von: "che"
In meiner crontab werden sämtliche Jobs offenbar ausgelagert:

Zitat# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
#


Da oben, in /etc/cron.dayly oder /etc/cron/hourly usw. trägt man Jobs ein, die täglich oder Stündlich usw erledigt werden sollen.

Du hast da nicht cron, sondern scheinbar anacron laufen (/usr/sbin/anacron). Kenne ich nicht.

http://de.wikipedia.org/wiki/Anacron
Ziatat aus obriger URL:
ZitatAußerdem ist anacron nur in der Lage, einmal täglich oder seltener Programme zu starten (dieser Nachteil relativiert sich insofern, als bei häufigerer Ausführung auch Cron genügen kann). Im Gegensatz dazu ist Cron in der Lage, Jobs in Intervallen von einer Minute bis jährlich auszuführen.

Sorry, jetzt muss ich passen.
Mist:-(

Auf jeden Fall sollten oben in die cron.daily usw Jobs rein, die eben nur einmal in der entsprechenden Zeitspanne erledigt werden sollen. zB Systemwartung

Andere Jobs:
Meteohub habe ich nicht. Aber ich habe Cron. Ich rufe auf:

crontab -e

Dann öffnet sich meine "eigene" crontab.
Da trage ich ein, was ich ausführen will.
Speichern + Beenden.
Fertig. Läuft.

Darauf wollte ich hinaus. Mit Deinem anacron weiss ich nicht aber nun leider nicht weiter.
Gruss,
Arnim!
ASH2200, S300IA, S555TH + WS2000 Repeater + WS2500PC (868 MHz)
Davis Vantage Pro 2 Aktiv
Auswertung unter Linux mit wview und wetter.cgi: wetter.bohlberg.de

che

Vielen Dank, ich habs hinbekommen.

crontab -l bzw. crontab -e war die Lösung, dann öffnet sich die "normale" crontab. Lässt sich mit Hilfe des GNU-Editors auch recht einfach bearbeiten. Und das Skript läuft auch (fast) so wie es soll...

Danke nochmal und Grüße
Christian

Arnim

Hallo...

Ach, na, OK, dann sind da also beide Crons drauf.

Falls Meteohub mehrere User hat, musst crontab -e als der user aufrufen, unter dem das script laufen soll.

Wenn Du das Script mal stoppen willst, machst Du einfach wieder crontab -e, und dann machst ein # (= ein Kommentarzeichen) am Anfang der Zeile.
Dann gillt die Zeile als Kommentar und wird nicht abgearbeitet.

Zwischen den "Zeiten" oder den "*" müssen Tabulatoren sein, nicht Leerzeichen!

Die crontab muss mit einer Leerzeile enden, also am Ende der letzten geschriebenen Zeile einmal [RETURN].

Hier habe ich noch eine schöne Seite darüber:
http://wiki.ubuntuusers.de/Cron

Gruss,
Arnim!
ASH2200, S300IA, S555TH + WS2000 Repeater + WS2500PC (868 MHz)
Davis Vantage Pro 2 Aktiv
Auswertung unter Linux mit wview und wetter.cgi: wetter.bohlberg.de