Ich hatte die Grundlage dieses Scripts im Heise-Forum gefunden und das Prinzip erweitert. Desinfec't basiert auf einem Ubuntu-System. Die Updatemechanismen sind bereits integriert. Dazu wird das Image gemountet, in ein temporäres Verzeichnis kopiert und dann per chroot gewechselt. Am Schluss wird das ganze wieder zu einem Image gepackt.
#!/bin/sh YEAR=2014 DIR=$PWD FSNAME=filesystem.squashfs FSDIR=/mnt/server.venus.prv/desinfect$YEAR/casper DATE=$(date +"%Y%m%d") TEMPDIR=$(mktemp -d) LOOP=$(mktemp -d) TEMPFS=$(mktemp) DNS=`grep -im1 "nameserver" /etc/resolv.conf | awk "{print }"` # Mounten des Images echo "mount $(readlink $FSDIR/$FSNAME) to $LOOP and copy to tempdir..." mount -o loop $FSDIR/$(readlink $FSDIR/$FSNAME) $LOOP # Inhalt kopieren cp -a $LOOP/* $TEMPDIR # CHROOT ins neue Verzeichnis cd $TEMPDIR mount --rbind /proc $TEMPDIR/proc mount --rbind /dev $TEMPDIR/dev mount --rbind /sys $TEMPDIR/sys chroot . /bin/bash <<EOF echo -e "search heise.de\nnameserver 10.10.10.32\nnameserver 10.10.10.30\n$DNS" > /etc/resolv.conf apt-get update -y apt-get upgrade -y /opt/desinfect/update_avira.sh /opt/desinfect/update_bitdefender.sh /opt/desinfect/update_clamav.sh /opt/desinfect/update_kaspersky.sh cp -R /opt/BitDefender-scanner/var/lib/scan/ /opt/BitDefender-scanner/var/lib/scan.orig exit EOF # CHROOT beenden umount -l $TEMPDIR/dev umount -l $TEMPDIR/proc umount -l $TEMPDIR/sys umount $TEMPDIR/var/kl/bases_rd umount $TEMPDIR/opt/BitDefender-scanner/var/lib/scan # LOOP unmounten und löschen umount $LOOP rmdir $LOOP # Image erstellen time mksquashfs $TEMPDIR $TEMPFS -comp xz -noappend if [ -f $TEMPFS ] then mv -f $TEMPFS $FSDIR/$FSNAME.$DATE if [ -f $FSDIR/$FSNAME.$DATE ] then chmod 644 $FSDIR/$FSNAME.$DATE cd $FSDIR rm -f $FSNAME ln -sf $FSNAME.$DATE $FSNAME fi fi # Temporäre Dateien/Verzeichnisse löschen rm -rf $TEMPDIR/ cd $DIR
Dieses Script ist für die 2013er geschrieben worden. Ich gehe davon aus, dass die 2014er Version keine größeren Änderungen enthält, die hier zu Problemen führt.