Hallo Jürgen,
ich hab das postsync auch etwas verändert, vll. hilft es trotzdem:
LG
Max
echo "##### trusty-linuxmuster POSTSYNC BEGIN #####"
# IP-Adresse des Server
SERVERIP="$(grep ^linbo_server /tmp/dhcp.log | tail -1 | 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=${HOSTNAME%-*}
# 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"
# UVZ auf dem Server. Mit diesem Variablen kann
# man verschiedene Images bedienen (was bei linux
# selten nötig ist)
PATCHCLASS="trusty-virt"
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 -rp -L
"${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
# if [ -d /cache/${PATCHCACHE}/common ]; then
# cp -ar /cache/${PATCHCACHE}/common/* /mnt/
# fi
# dann raumspezifisch
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM} ]; then
cp -r /cache/${PATCHCACHE}/${PATCHCLASS}/${RAUM}/* /mnt/
fi
# if [ -d /cache/${PATCHCACHE}/${RAUM} ]; then
# cp -ar /cache/${PATCHCACHE}/${RAUM}/* /mnt/
# fi
# dann rechnerspezifisch hier auch wie oben geöndert.
if [ -d /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME} ]; then
cp -ar /cache/${PATCHCACHE}/${PATCHCLASS}/${HOSTNAME}/* /mnt/
fi
# -----------------------------------
# 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
# /etc/sudoers
chmod 440 /mnt/etc/sudoers
# hostname in /etc/hosts patchen
sed -i "s/HOSTNAME/$HOSTNAME/g" /mnt/etc/hosts
sed -i "s/#SERVERIP/$SERVERIP/g" /mnt/etc/hosts
# home vom linuxadmin dem zugehörig machen
chown -R 1000:1000 /mnt/home/linuxadmin
# fstab anpassen, damit Swap-Partition stimmt
# 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 -c9)
# sed -i "s/#dummyswap/$SWAP/g" /mnt/etc/fstab
##### -----------------------------------------------
##### Virtualbox-Partition aktuell halten
##### -----------------------------------------------
##### so gehts nicht (leider) #####
# #linbo_wrapper sync:2 # geht so leider nicht
##### so gehts langsam, weil er es jedesmal neu synct (warum?) #####
# echo " - getting virtual windows"
# mkdir -p /virtual > /dev/null 2>&1
# #sicherheitshalber unmounten:
# umount /virtual > /dev/null 2>&1
# VIRTUALDEVICE=/dev/sda3
# VIRTUALMACHINESERVERDIR=virtualbox/aktuell/
# mount $VIRTUALDEVICE /virtual && \
# rsync --progress -r
"${SERVERIP}::linbo/${VIRTUALMACHINESERVERDIR}" "/virtual/"
#
# echo " - setting permissions for virtual windows"
# cd /
# chmod -R 777 /virtual
# umount /virtual
#
# rsync --progress -r "${SERVERIP}::linbo/postsync/vmlinuz" "/mnt/"
# rsync --progress -r "${SERVERIP}::linbo/postsync/initrd.img" "/mnt/"
##### die elegante Version #####
# Name des Rsyncimages, ggf. eintragen
myrsyncimage=""
# Zielpartition auf die gesynct werden werden soll, muss angepasst werden
myrootpartition=/dev/sda3
# Name des Basisimages das zusaetzlich synchronisert werden soll (muss
angepasst werden)
case ${RAUM} in
"ch")
mybaseimage=vbox_dgiss.cloop
;;
"r009")
mybaseimage=vbox_mindstorms.cloop
;;
"r010")
mybaseimage=vbox_mindstorms.cloop
;;
"ph")
mybaseimage=vbox_mindstorms.cloop
;;
"bio")
mybaseimage=vbox_dgiss_bio.cloop
;;
"klzi")
#evtl. vorhandenes aus den Klassenzimmer-PCs löschen wg. Lizenzen
mkdir /test
mount /dev/sda3 /test
rm -rf /test/*
umount /test
;;
*)
mybaseimage=keines
#mybaseimage=vbox.cloop
;;
esac
case ${HOSTNAME} in
"mm-pc02")
mybaseimage=vbox_mindstorms.cloop
;;
"mml-pc12")
mybaseimage=vbox_mindstorms.cloop
;;
*)
mybaseimage=keines
;;
esac
# IP des LINBO-Servers, wird automatisch aus dhcp.log ermittelt (wurde
oben schon gemacht)
#myserverip="$(grep ^linbo_server /tmp/dhcp.log | tail -1 | awk -F\'
'{ print $2 }')"
# Ausgabe der Parameter auf der LINBO-Konsole
echo "cachepartition: $1"
echo "myserverip: $SERVERIP"
echo "mybaseimage: $mybaseimage"
echo "myrsyncimage: $myrsyncimage"
echo "myrootpartition: $myrootpartition"
# Befehl zur Synchronisation der zweiten Partition
#case $vbox in
# virtual) /usr/bin/linbo_cmd synconly "$SERVERIP" "$1"
"$mybaseimage" "$myrsyncimage" "" "$myrootpartition" ;;
# real) /usr/bin/linbo_cmd synconly "$SERVERIP" "$1" "$mybaseimage"
"$myrsyncimage" "" "$myrootpartition" ;;
# *) echo "Nichts zu tun." ;;
#esac
# Syntax fuer linbo_cmd synconly:
# /usr/bin/linbo_cmd synconly "<LINBO-Server-IP>" "<Cachepartition>"
"<Basisimage>" "<Rsyncimage>" "<Bootpartition>" "<Rootpartition>"
/usr/bin/linbo_cmd synconly "$SERVERIP" "$1"
"$mybaseimage" "$myrsyncimage" "" "$myrootpartition"
echo "##### POSTSYNC END #####"
LG
Max
--
Max Führinger
Eichendorff-Gymnasium Ettlingen
-------------------------------------------------------------------------
System:
- Virtualisiert mit KVM auf Ubuntu 12.04
- IPFire 2.17, Core 99 (linuxmuster-ipfire 1.2.6-0ubuntu0)
- linuxmuster.net 6.1.2-0ubuntu0
mit Linbo 2.2.14-0 (für IBM T41) bzw. Linbo 2.2.16-0
Erweiterungen: Openschulportfolio, mrbs, apt-cacher (separater virt.
server), OwnCloud
Clients: Ubuntu 12.04 32bit und 14.04 64bit.
-------------------------------------------------------------------------
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user