Konkret heißt das: Die Dateien die z.B. unter /srv/linbo/linuxmuster-client/2022-mint204/common/etc liegen, tauchen auf dem Client nicht auf.
Unter der Lösung lmn7.1 hat das noch funktioniert.
Hat jemand sowas auch schon mal gehabt, oder eine Idee dazu? Wo könnte man sonst noch nachsehen? Und ja, die Patchklasse im Universal Postsync-Skript stimmt mit dem Verzeichnispfad überein.
Also die Dateien sind alle da wo sie sein sollen. In der postsync ist auch das entsprechende universelle Postsync-Skript hinterlegt. Also an sich müsste es tun und bis vor kurzem gab es damit auch keinerlei Probleme.
Wir sind schon in den Sommerferien auf die qcow-Images umgestiegen. Die Schule wurde mit neuen Rechnern ausgestattet und die kamen mit dem alten Linbo nicht mehr klar. Das vollständige Upgrade auf lmn7.2 erfolgte dann in den Faschingsferien.
… das sieht alles richtig aus.
Ich habe zwei Gedanken zum nichtausführen des postsyncs:
zuviele „-“ im Dateinamen: irgend wann war da mal was mit dem Imagenamen.
Das köntest du schnell testen, indem du es in mint.qcow2 umbenennst.
Da linbo das alte Image sowiso mit timestamp im UNterverzeichnis backups/TIMESTAMP/ sichert ist ein eigenes timestampbenennen eigentlich nicht nötig (aber klar: jeder darf seine gewohnten Abläufe weiterverwenden)
Problem im postsync selbst.
Du könntest, wenn du willst, mal meinen postsync versuchen: das läuft bei mir mit linbo 4.2.13
Das ist die aus meinem produktivsystem: ich bin nicht da für „schön“, das Ding lebt dort seit vielen Jahren, deswegen ist die wirklich nicht hübsch: funktioniert aber bei mir …
Du darfst sie gerne „geradeziehen“
echo "##### focal linuxmuster POSTSYNC BEGIN #####"
# IP-Adresse des Server
SERVERIP="10.16.1.1"
# SERVERIP="$(grep serverid /tmp/dhcp.log | awk -F\' '{ print $2 }')"
STARTCONF=/cache/start.conf
# Raum feststellen. Dieses Skript geht davon aus
# dass die Rechner Namen der Form
# raumname-hostname haben, also z.B. cr01-pc18
RAUM=$(echo ${HOSTNAME} | cut -d"-" -f1)
# wenn der string leer ist, raum auf unknown setzen
if [ "x${RAUM}" == "x" ]; then
RAUM="unknown"
fi
# Das Verzeichnis, in dem die Serverpatches
# local synchronisiert werden.
PATCHCACHE=/linuxmuster-client/serverpatches
# UVZ auf dem Server. Mit diesem Variablen kann
# man verschiedene Images bedienen (was bei linux
# selten nötig ist)
PATCHCLASS="focal"
echo ""
echo "Hostname: ${HOSTNAME}"
echo "Raum: ${RAUM}"
echo "Patchcache: ${PATCHCACHE}"
echo "Patchclass: ${PATCHCLASS}"
echo ""
# -----------------------------------------
# Patchdateien auf das lokale Image rsyncen
# -----------------------------------------
echo " - getting patchfiles"
# RAUM -> Raumname
# HOSTNAME -> Rechnername
# Verzeichnis anlegen, damit es sicher existiert
mkdir -p /cache/${PATCHCACHE}
rsync --progress --delete -r "${SERVERIP}::linbo/linuxmuster-client/${PATCHCLASS}" "/cache/${PATCHCACHE}"
echo " - patching local files"
# zuerst alles in common
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/common ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/common/* /mnt/
fi
# dann raumspezifisch
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM} ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/* /mnt/
fi
# dann rechnerspezifisch
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME} ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/* /mnt/
fi
#MiniSK-Starter von den meisten Rechnern löschen
# case $HOSTNAME in
# admin|rm-le|infgr-le|infkl-le|rlz-01|rlz-02|rlz-03|rlz-04|rlz2-01|rlz2-02|rlz2-03|bk-vor|pcek-vor1|pcek-vor2|ph-vor|spra-01|bio-vor|pcek-le|ges-le) echo "mini_sk placed";;
# *) rm /mnt/usr/share/applications/mini_sk.desktop
# esac
# -----------------------------------
# Berechtigungen anpassen, wenn nötig
# -----------------------------------
echo " - setting permissions of patched local files"
# printers.conf
[ -f /mnt/etc/cups/printers.conf ] && chmod 600 /mnt/etc/cups/printers.conf
# .ssh verzeichnis
chmod 700 /mnt/root/.ssh/
chmod 600 /mnt/root/.ssh/authorized_keys
# hostname in /etc/hosts patchen
sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts
# fstab anpassen, damit Swap- und Root-Partition stimmt
# ROOT=$(sed ':a;N;$!ba;s/\n/;UMBRUCH;/g' $STARTCONF | sed 's/ //g'|sed 's/\[Partition\]/\n/g' | grep -i 'fstype=ext4' | sed 's/;UMBRUCH;/\n/g' | grep -i 'dev=/' | cut -d'=' -f2 | head -c20 | cut -d"#" -f1)
# echo "$ROOT"
# sed -i "s#\#dummyroot#$ROOT#g" /mnt/etc/fstab
# SWAP=$(sed ':a;N;$!ba;s/\n/;UMBRUCH;/g' $STARTCONF | sed 's/ //g'|sed 's/\[Partition\]/\n/g' | grep -i 'fstype=swap' | sed 's/;UMBRUCH;/\n/g' | grep -i 'dev=/' | cut -d'=' -f2 | head -c20 | cut -d"#" -f1)
# echo "$SWAP"
# sed -i "s#\#dummyswap#$SWAP#g" /mnt/etc/fstab
# ServerName SERVERIP in /etc/cups/client.conf patchen
# sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/cups/client.conf
# /etc/sudoers.d/linuxmuster-client-truecrypt rechte
# chmod 440 /mnt/etc/sudoers.d/linuxmuster-client-veracrypt
# Besitzverhältnisse für linuxadmin reparieren
chown -R 1000:1000 /mnt/home/linuxadmin
# chown -R 1001:1001 /mnt/home/linuxuser
# chmod 600 /mnt/etc/NetworkManager/system-connections/LMGintern.nmconnection
# rm -r /mnt/home/linuxmadmin/.cache/*
# rm /mnt/etc/cron.d/shutdown
# Timeset unter ubuntu erzwingen beim systemstart in /etc/rc.local
# ist im Image per postsync aber nur bei mobi drin HIB Jun2023
# hier setzt linbo nach Abgleich mit dem server die HWclock (RTC)
ntpd -n -q -p "10.16.1.1" && hwclock --systohc -u &
echo "##### POSTSYNC END #####"
… ach: mir ist nochwas eingefallen: die Rechte im UNterverzeichnis /srv/linbo/linuxmuster-client/ …
wars alles nicht. Du hast mich trotzdem auf die richtige Spur gebracht.
Ich hab mir mein Postsync-Skript nochmal ganz genau angesehen.
In meinem Postsync-Skript wurde für der Wert für SERVERIP durch eine Funktion ${siaddr} zugewiesen. Offenbar hatte diese Variable keine gültigen Wert mehr. Durch Ersetzen der Variable mit dem festen Wert der IP-Adresse funktioniert jetzt wieder alles.