BashScript auf Raspberry Pi (für An-Abwesenheit per Bluetooth G-Tags)

Hallo liebe wissende Homee’s,
ich möchte euch heute um eure Hilfe bitten, da ich leider nicht weiter komme :frowning:

Ich versuche gerade, das Script von @mavnezz (von hier: (Zustand An-und Abwesenheit für 2Personen mit UND und ODER Verknüpfungen)

auf meinem neu erworbenen Raspberry Pi 3 umzusetzen.
Das Script scannt ständig, ob die hinterlegten G-Tags erreichbar sind und setzt dann Webhooks ab für die Zustände ABWESEND und ANWESEND.

Leider scheitere ich kläglich, wahrscheinlich schon an Basics. :frowning:

Also:
Raspbian ist installiert, Anmeldung als “Pi” ist erfolgt.
Ich habe mir das Script herunter geladen und angepasst.
Es liegt bei mir im Verzeichnis /pi
Dann soll die Datei crontab angepasst werden.
Ich öffne die Datei crontab im Verzeichnis /etc (mit dem Texteditor),
und füge die markierte Zeile ein.

Beim Speichern bekomme ich dann aber eine Fehlermeldung,
nämlich diese:

.
Was mache ich falsch?

  • Ist mein Eintrag in der crontab überhaupt korrekt? (siehe https://github.com/mavnezz/proHomeeStatus)
  • Muss ich als root angemeldet sein, um die Datei “crontab” ändern zu können?
  • andere(e) Fehler (Rechte?)

Bin für jede Hilfe sehr dankbar ! :slight_smile:

Hallo @SteffenPWH

Wie hast du denn die Datei geöffnet ?

Probiere es doch mal mit

Sudo nano ( und Dateiname inkl. Verzeichniss )

Damit öffnest du die Datei als Root User und kannst sie bearbeiten und auch speichern.
Dieser Befehl muss auf der Konsole ausgeführt werden.

VG Micha

Ich hatte sie auf der grafischen Oberfläche mit dem dort zu findenden Texteditor geändert.

Was mich verwirrt:
Der Inhalt der “crontab” (aufgerufen mit “crontab -e”) unterscheidet sich von dem Inhalt der Datei
“crontab” im Verzeichnis /etc, die ich mit dem o.g. Texteditor öffne.

  1. wo liegt denn (physisch) die erstgenannte, per Terminal und Nano geöffnete Datei “crontab”?
  2. warum gibt’s davon mehrere?
  3. welche ist die " richtige"??

Leider bin ich mit Crontab nicht so vertraut.
Jedoch ist es scheinbar so das je Benutzer ( PI oder Root ) eine eigene Datei erstellt wird.
Und je nach Aufruf ob als Pi oder Root User die entsprechende ausgeführt wird.

Evt. haben da unsere Script Experten bessere Info für dich.
Also @Baschtl @stfnhmplr @Einstein77 habt ihr da ne Lösung für unseren Mitstreiter?

VG Micha

  1. “crontab -e” ruft die Datei in deinem Benutzerkontext auf. Da fehlt also eigentlich nur die Spalte des Benutzers. Würdest du beim Speichern mit nano sehen, denn da musst du einen Pfad und Dateinamen angeben.

  2. “/etc/crontab” ist die fürs System. Die kannst du tatsächlich nur mit root-Rechten bearbeiten. Wie heißt der grafische Editor, den du verwendest? Ich habe keinen Rasberry, sondern nur ein normales Linux. Meiner heißt xed. Um den mit root-Rechten zu starten, kann ich auch in der Konsole “sudo xed” aufrufen. Dürfte bei dir ähnlich sein. Und dann klappt es auch mit dem Speichern.

  3. Wie du in der “/etc/crontab” vielleicht gesehen hast, gibt es noch die Ordner “cron.daily”, “cron.monthly”, usw. Je nach Anwendungsfall (soll es täglich, monatlich, usw. laufen?) könntest du auch eine eigene Datei mit deinem Befehl anlegen und im passenden Ordner speichern.

1 „Gefällt mir“

Danke euch ! ! !
ich bin am Testen, ich denke, es könnte jetzt klappen :slight_smile:

Servus,

wie auf Github geschrieben, einfach mit “crontab -e” die Crontabs des Benutzers aufrufen.
Dort die Zeile “*/1 * * * * cd /home/pi && ./scanner.sh” hinzufügen. Den Pfad/Dateinamen natürlich auf seine Umgebung anpassen.

Grüße

hi @mavnezz,
danke für die Hilfe! :+1:
Meine unix Kenntnisse liegen leider knapp über NULL … :wink:
Sind die && Platzhalter für den Pfad?
oder trennen sie den Pfad vom Befehl/Skriptaufruf?

Darum noch mal meine Nachfrage:
Das Skript liegt bei mir im Verzeichnis /pi/homee.
Dann muss mein Eintrag heißen "*/1 * * * * cd /home/pi/homee && ./proScanner.sh"

richtig? :slight_smile:

Korrekt, mittels “cd /home/pi/homee” wird in den Pfad gewechselt und mit “./proScanner.sh” dann das Script ausgeführt.

Kannst du denn mit “./proScanner.sh” das Script manuell starten und funktioniert dies wie gewünscht?

Moin,
mal ne Frage.
Ich hatte erst gedacht das script scannt jedet minute nach den beacons.
Aber der Cronjob schaut ja nur jede Minute ob das Script noch läuft - mein Denkfehler.
Wie lange aber läuft denn ein Scan-Durchlauf?