#!/bin/sh
# dump des slices locales OpenBSD. + sauvegarde de la table de partitions
# slice locale signifie : slice sur le meme disque que le disque de la slice /.
# variables
# ==============================================
# nom d'hote :
HOST=
# suffixe horodateur pour les dumps cr�s
SUFFIX=
# nom du disque en trois lettres : ' ex: wd0 '
DISK=
# main
# ==============================================
HOST=$(hostname | cut -f1 -d .)
a=$(date +'%Y%m%d%H%M%S')
SUFFIX=dump0.$a
DISK=$(mount | grep " / " | cut -c6-8)
SLICES=$(mount | grep -v /home | grep "^/dev/$DISK" | cut -c9) # hors /home
umask 077
# table des partitions
fdisk /dev/r${DISK}c > $HOST.r${DISK}c.fdisk.$a
disklabel $DISK 2>&1 > $HOST.disklabel.$DISK.$a
# packages
pkg_info > pkg_info
# dump des partitions
cd /sauvegarde/$(hostname) || exit 1
for SLICE in $SLICES ; do
LABEL=$(mount | grep /dev/$DISK$SLICE | awk '{print $3}' | tr -d / )
if test "$LABEL" = "" ; then LABEL=root ; fi
cmd="/sbin/dump -0a -f $HOST.$DISK$SLICE.$LABEL.$SUFFIX /dev/r$DISK$SLICE"
echo # $cmd
$cmd
cmd="chmod o-r $HOST.$DISK$SLICE.$LABEL.$SUFFIX"
echo # $cmd
$cmd
done
# fin