ich habe hier einen Raspberry Pi an dem sowohl ein Sender für Infrarot als auch Funk (433 Mhz) angeschlossen sind, damit kann ich einige meiner Gerätschaften steuern. Ich lasse z. B. Geräte im Wohnzimmer (Sat-Receiver, HTPC) Nachts ausschalten. Beide schicken Inhalte über LAN an meinen Fernseher im Schlafzimmer - der kann die aber nichts ausschalten. Automatisch per Smartphone direkt den Befehl an den Pi zu senden geht nicht, da dem Smartphone echtes SSH fehlt (Apps wie JuiceSSH können nicht was ich hier brauche), daher dieser Umweg:
- Smartphone sendet zeitgesteuert per Tasker und FolderSync eine leere Datei an den Pi
- auf dem Pi läuft ein Script, dass auf die Existenz der Datei wartet und dann ein Script ausführt
Code: Alles auswählen
while true ; do
if [ -f /home/pi/.htpc-off ] ; then
#datum=$(date +%Y-%m-%d_%H-%M-%S)
/home/pi/htpc-aus
sleep 5
rm -f /home/pi/.htpc-off
#mv /home/pi/test.txt /home/pi/test-"$datum"
fi
done
Probleme: Manchmal geht es, manchmal nicht. Wenn ich die Datei "htpc-aus" manuell erstelle dauert es dennoch ca. 10 Sekunden bis das Script sie löscht, dabei sollte es doch in Endlosschleife laufen. Dann wird auch nur das Script ausgeführt und die Datei gelöscht, aber nie etwas umbenannt und auch nicht immer das Script gestartet. Starte ich das Script (das auf die Existenz der Datei prüft) manuell, wird alles ausgeführt.
Liegt hier ein Fehler vor? Sollte man hier lieber mit inotify arbeiten? Wenn ich da
Code: Alles auswählen
inotifywait -mq -e create --format %w%f /home/pi/.htpc-aus | while read FILE
do
echo "Die Datei $FILE wurde gerade erstellt."
done
Logisch, er soll ja erst warten bis die Datei erstellt wurde. Kann inotify nur Ordner und nicht konkrete Dateien überwachen?Couldn't watch /home/pi/datei/: No such file or directory