
Ich versuche, ein Skript auszuführen, das systemctl
von crontab aus aufgerufen wird, aber der Befehl wird nicht ausgeführt. Andere Skripte funktionieren von crontab aus einwandfrei. Das Skript funktioniert, wenn es in einem Terminal ausgeführt wird.
Dies ist das Skript:
#!/bin/bash
date &>> ~/Desktop/logs/resiliostatus.txt
systemctl --user status resilio-sync | sed -ne '1,3p' &>> ~/Desktop/logs/resiliostatus.txt
exit 0
Dies ist die Ausgabe in meiner Protokolldatei:
Thu Jan 17 02:17:17 CET 2019
● resilio-sync.service - Resilio Sync service
Loaded: loaded (/usr/lib/systemd/user/resilio-sync.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-01-17 01:01:55 CET; 1h 15min ago
Thu Jan 17 03:00:01 CET 2019
Thu Jan 17 04:00:01 CET 2019
Thu Jan 17 05:00:01 CET 2019
Der erste Eintrag ist, wie es aussehen sollte, wenn es vom Terminal aufgerufen wird. Aber wie Sie sehen, werden die Aufrufe von crontab nur ausgeführt date
und nichtsystemctl
So sieht Crontab aus:
SHELL=/bin/bash
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/lib/systemd
# m h dom mon dow command
*/15 * * * * /root/Desktop/backupscripts/cputempscript
*/30 * * * * /root/Desktop/backupscripts/ipdnsscript
0 * * * * /root/Desktop/backupscripts/ntpscript
*/5 * * * * /root/Desktop/backupscripts/resiliostatscript 2> /tmp/error
Die ersten drei Skripte funktionieren einwandfrei, das letzte nicht. Den Fehler speichere ich in /tmp/error:Failed to connect to bus: No such file or directory
- Ich bin als root angemeldet. Kein anderer Benutzer ist angemeldet. Crontab ist konfiguriert als
sudo crontab -e
- Umgebung: Kali Linux (re4son-Kernel, Sticky-Finger) auf RPi 3B+
- ich lese dasähnlicher Threadaber es ist auch ungelöst.
Wie kann ich das beheben?