Hallo zusammen,
ich nutze ein etc-hosts file um Werbung heraus zu filtern.
Die Datei lade ich von dieser URL https://hosts.ubuntu101.co.za/hosts
Ein systemd *.timer startet einen *.service mit dem skript zum herunterladen der hosts-datei.
Wenn ich das skript manuell starte funktioniert der download fehlerfrei.
Das download skript:
#!/bin/sh
# Make sure we're running as root
if
(( `id -u` != 0 )); then { echo "Sie haben keine Root Rechte, beende..."; exit; }
fi
cd /tmp
wget https://hosts.ubuntu101.co.za/hosts
head -400 hosts | grep --quiet ^127.0.0.1
if (( $? != 0 )); then
echo "Error: Falsche hosts Download-Liste"
exit 1
else
cp hosts /etc/hosts
fi
Wenn ich nur den upd_hosts.service starte, kommt dieser Fehler:
[root@arch1 ~]# systemctl start /etc/systemd/system/upd_hosts.service
Failed to start etc-systemd-system-upd_hosts.service.mount: Unit etc-systemd-system-upd_hosts.service.mount not found.
Wenn ich das skript per upd_hosts.timer & upd_hosts.service starte, tritt folgender Fehler auf:
[root@arch1 ~]# ctlstat upd_hosts.service
× upd_hosts.service - update etc-hosts file daily at 06:00 CET
Loaded: loaded (/etc/systemd/system/upd_hosts.service; static)
Active: failed (Result: exit-code) since Tue 2024-01-02 09:33:02 CET; 28min ago
Duration: 153ms
TriggeredBy: ● upd_hosts.timer
Process: 517 ExecStart=/usr/local/bin/upd_hosts.sh (code=exited, status=1/FAILURE)
Main PID: 517 (code=exited, status=1/FAILURE)
CPU: 90ms
Jan 02 09:33:02 arch1 systemd[1]: Started update etc-hosts file daily at 06:00 CET.
Jan 02 09:33:02 arch1 upd_hosts.sh[522]: --2024-01-02 09:33:02-- https://hosts.ubuntu101.co.za/hosts
Jan 02 09:33:02 arch1 upd_hosts.sh[522]: CA-Zertifikat »/etc/ssl/certs/ca-certificates.crt« wurde geladen
Jan 02 09:33:02 arch1 upd_hosts.sh[522]: Auflösen des Hostnamens hosts.ubuntu101.co.za (hosts.ubuntu101.co.za)… fehlgeschlagen: Temporärer Fehler bei der Namensauflösung.
Jan 02 09:33:02 arch1 upd_hosts.sh[522]: wget: Host-Adresse »hosts.ubuntu101.co.za« kann nicht aufgelöst werden
Jan 02 09:33:02 arch1 upd_hosts.sh[534]: head: 'hosts' kann nicht zum Lesen geöffnet werden: Datei oder Verzeichnis nicht gefunden
Jan 02 09:33:02 arch1 upd_hosts.sh[517]: Error: Falsche hosts Download-Liste
Jan 02 09:33:02 arch1 systemd[1]: upd_hosts.service: Main process exited, code=exited, status=1/FAILURE
Jan 02 09:33:02 arch1 systemd[1]: upd_hosts.service: Failed with result 'exit-code'.
Das sind die systemd units:
# Datei: /etc/systemd/system/upd_hosts.service
[Unit]
Description=update "etc-hosts" file daily at 06:00 CET
[Service]
ExecStart=/usr/local/bin/upd_hosts.sh
und
# Datei: /etc/systemd/system/upd_hosts.timer
[Unit]
Description=update "etc-hosts" file daily at 06:00 CET
[Timer]
OnCalendar=*-*-* 06:00:00
Persistent=true
[Install]
WantedBy=timers.target
Ich finde den Ursprung des Fehlers nicht, wenn die URL nicht erreichbar wäre, würde der manuelle download nicht laufen. Wenn das download skript fehlerhaft wäre, würde der download nicht starten, es funktioniert aber fehlerfrei. Der *.timer startet so wie er soll. Nur wenn ich versuche den *.service zu starten treten die Fehler auf.
Habe mich an das Wiki gehalten:
https://wiki.archlinux.de/title/Systemd/Timers#Absolute_Zeitangaben
Habe ich einen Fehler in der *.service Datei?