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