Hallo Jörg, hallo Holger,

das wollte ich ohnehin tun. Hier isses.

Gruß Jürgen

Am 18.04.2016 um 18:11 schrieb Jörg Richter:
> Hallo Jürgen,
>
> hier gibt es zwei Fehlermeldungen:
>
> > sed: bad option in substitution expression
>
> und:
>
> > sh: bad pid '1916
> > 3021'
>
> Offenbar hat hier Dein Postsync-Skript einen Fehler, dem würde ich
> nachgehen. Beim zweiten scheint es so zu sein, dass zwei Prozesse
> laufen, das Skript aber nur mit einem rechnet, de erste ist unklar.
>
> Hast Du schon mal Dein Postsync-Skript gepostet? Falls nein, mach das
> doch mal
>
>
> Viele Grüße
>
> Jörg Richter
>
> _______________________________________________
> linuxmuster-user mailing list
> [email protected]
> https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user
>

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/serverpatches
    # UVZ auf dem Server. Mit diesem Variablen kann
    # man verschiedene Images bedienen (was bei linux
    # selten nötig ist)
    PATCHCLASS="notebook"
     
    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 -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

    # 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-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

    # -----------------------------------
    # Virtuelles Windows rsyncen
    # -----------------------------------
    # Name des Basisimages das zusaetzlich synchronisert werden soll (muss 
angepasst werden)
    mybaseimage=MS-Windows-notebook.cloop
    # mybaseimage=""
 
    # Name des Rsyncimages, ggf. eintragen
    myrsyncimage=""
 
    # Zielpartition auf die gesynct werden werden soll, muss angepasst werden
    myrootpartition=/dev/sda3
    # myrootpartition=""
 
    # Ab hier muss nichts mehr veraendert werden.
 
    # IP des LINBO-Servers, wird automatisch aus dhcp.log ermittelt
    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:      $myserverip"
    echo "mybaseimage:     $mybaseimage"
    echo "myrsyncimage:    $myrsyncimage"
    echo "myrootpartition: $myrootpartition"

    # Befehl zur Synchronisation der zweiten Partition
    /usr/bin/linbo_cmd synconly "$myserverip" "$1" "$mybaseimage" 
"$myrsyncimage" "" "$myrootpartition"
    # Syntax fuer linbo_cmd synconly:
    # /usr/bin/linbo_cmd synconly "<LINBO-Server-IP>" "<Cachepartition>" 
"<Basisimage>" "<Rsyncimage>"
    #  "<Bootpartition>" "<Rootpartition>"
    # Cachepartition steht in der Variablen $1 zur Verfuegung.
    # Bootpartition ist optional, falls leer muessen Anfuehrungszeichen gesetzt 
werden.
  
    echo "##### POSTSYNC END #####"
_______________________________________________
linuxmuster-user mailing list
[email protected]
https://mail.lehrerpost.de/mailman/listinfo/linuxmuster-user

Antwort per Email an