Ah, danke für den Thread. Mir war gar nicht bewusst, dass der NetworkManager (noch) keinen direkten Draht zum timesyncd hat.
Kolibri hat geschrieben: ![↑ zum Beitrag ↑](https://debianforum.de/forum/styles/debianforumde/theme/images/debianforum_uparrow.png)
14.01.2024 12:23:17
Im
Arch-Wiki wird ein Dispatcher-Skript beschrieben
Das verlinkte NM-Dispatcher-Skript hat allerdings ein paar Probleme, wie du ja schon beobachtet hast, Kolibri:
Wegen des benutzten Here-Docs ist das Skript relativ anfällig für Probleme nach Copy & Paste. Dort
Code: Alles auswählen
cat <<-THE_END >"/etc/systemd/timesyncd.conf.d/${CONNECTION_UUID}.conf"
[Time]
NTP=$DHCP4_NTP_SERVERS
THE_END
muss nämlich unbedingt – will die Shell so – mit Tabs eingerückt werden. Im Arch-Wiki enthält das Skript da aber Leerzeichen. Das führt nach dem Kopieren dann zum
Kolibri hat geschrieben: ![↑ zum Beitrag ↑](https://debianforum.de/forum/styles/debianforumde/theme/images/debianforum_uparrow.png)
14.01.2024 13:42:17
"status code 2"
Außerdem führt diese Zeile
zu nem unnötigen Fehler im Journal, wenn per DHCP keine NTP-Infos reingekommen sind. (Was ja ein regulärer, unproblematischer Fall ist.)
Ich hab das Janze mal etwas copy-&-paste-freundlicher und anderweitig weniger problemanfällig gemacht:
Code: Alles auswählen
#!/bin/sh
set -eu
rm_conffile_or_exit()
{
# Skip removing---and subsequent restarting---if there is no old conffile.
[ -f "$conffile" ] || exit 0
rm "$conffile"
}
# Some global events like "connectivity-change" don't come with a UUID. We are
# not interested in them, anyway.
[ "${CONNECTION_UUID-}" ] || exit 0
interface="$1"
action="$2"
confdir=/run/systemd/timesyncd.conf.d
conffile=${confdir}/${CONNECTION_UUID}.conf
case $action in
up | dhcp4-change | dhcp6-change)
if [ "${DHCP4_NTP_SERVERS-}" ]; then
mkdir -p "$confdir"
printf '[Time]\nNTP=%s\n' "$DHCP4_NTP_SERVERS" >"$conffile"
else
rm_conffile_or_exit
fi
;;
down)
rm_conffile_or_exit
;;
*)
exit 0
;;
esac
# We will only get here and restart if we actually changed something.
systemctl try-reload-or-restart --no-block systemd-timesyncd.service
Wie gehabt abgespeichert als
/etc/NetworkManager/dispatcher.d/10-update-timesyncd und ausführbar gemacht (besonders einschränken muss man die
Leserechte nicht) – funktioniert einwandfrei
![Smile :)](./images/smilies/icon_smile.gif)