echo "##### POSTSYNC BEGIN #####" # IP-Adresse des Server SERVERIP=10.16.1.1 # 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/serverpatches # UVZ auf dem Server. Mit diesem Variablen kann # man verschiedene Images bedienen (was bei linux # selten nötig ist) PATCHCLASS="ubuntu1204" # Die Partition auf der das # Virtualbox-Windows liegt, # muss raumabhängig angepasst # werden, solange es dualboot # Maschinen gibt VIRTUALDEVICE=/dev/sda3 # im Raum 201 und 202 ist das virtuelle Windows auf /dev/sda5 if [ ${RAUM} == "r201" ]; then VIRTUALDEVICE=/dev/sda5 fi if [ ${RAUM} == "r202" ]; then VIRTUALDEVICE=/dev/sda5 fi # Verzeichnis innerhalb /var/linbo/ auf dem Server, # in dem die Virtuelle Maschine liegt. # Im folgenden Beispiel ist die Maschine im Verzeichnis # /var/linbo/virtualmachines/winxp/ # abgelegt. VIRTUALMACHINESERVERDIR=virtualmachines/winxp/ 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 # ----------------------------------- # 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 # ----------------------------------- # Virtuelles Windows rsyncen # ----------------------------------- echo " - getting virtual windows" mkdir -p /virtual > /dev/null 2>&1 # unmounten (to be shure) umount /virtual > /dev/null 2>&1 mount $VIRTUALDEVICE /virtual && \ rsync --progress -r "${SERVERIP}::linbo/${VIRTUALMACHINESERVERDIR}" "/virtual/" echo " - setting permissions for virtual windows" cd / chmod -R 777 /virtual umount /virtual echo "##### POSTSYNC END #####"