Sophie

Sophie

distrib > Mandriva > 9.1 > i586 > by-pkgid > f1098342ec4a2b28475e34123ce17201 > files > 1038

howto-html-it-9.1-0.5mdk.noarch.rpm

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML>
<HEAD>
 <META NAME="GENERATOR" CONTENT="SGML-Tools 1.0.9">
 <TITLE>SMB HOWTO: Eseguire copie di sicurezza (backup) di macchine Windows su un server Linux</TITLE>
 <LINK HREF="SMB-HOWTO-12.html" REL=next>
 <LINK HREF="SMB-HOWTO-10.html" REL=previous>
 <LINK HREF="SMB-HOWTO.html#toc11" REL=contents>
</HEAD>
<BODY>
<A HREF="SMB-HOWTO-12.html">Avanti</A>
<A HREF="SMB-HOWTO-10.html">Indietro</A>
<A HREF="SMB-HOWTO.html#toc11">Indice</A>
<HR>
<H2><A NAME="s11">11. Eseguire copie di sicurezza (backup) di macchine Windows su un server Linux</A></H2>

<P>Adam Neat (
<A HREF="mailto:adamneat@ipax.com.au">adamneat@ipax.com.au</A>)
ha gentilmente contribuito a fornire lo script che segue per fare backup
di macchine Windows usando server Linux come supporto, tramite l'utility
smbclient.  Adam &egrave; solito fare backup di macchine Windows 3.x ed NT su
un sistema Linux che dispone di un drive SCSI DAT.
<P>Adam non &egrave; soddisfatto dello stile di codifica utilizzato, tuttavia
funziona.  Come l'autore ama commentare. "Se funziona ed &egrave; stupido,
allora non &egrave; stupido".
<P>Un altro script di backup per Windows, &egrave; stato fornito da Dan Tager
(
<A HREF="mailto:dtager@marsala.com">dtager@marsala.com</A>).
Lo script di Dan &egrave; in grado di fare backup di macchine Unix via
rsh e pu&ograve; essere facilmente modificato per usare ssh.
<P>In questo script, la stringa 'agnea1' &egrave; il nome dell'utente sulla
macchina Linux che fa il backup.
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
#!/bin/bash

clear
echo Inizializzazione ...
checkdate=`date | awk '{print $1}'`

if [ -f "~agnea1/backup-dir/backup-data" ]; then

        echo "ERRORE: non esiste il file di configurazione per oggi!"
        echo "FATALE!"
        exit 1
fi

if [ -d "~agnea1/backup-dir/temp" ]; then

        echo "ERRORE: Manca la directory temporanea!"
        echo
        echo "Tentativo di creazione"
        cd ~agnea1
        cd backup-dir
        mkdir temp
        echo "Creata directory - temp"
fi

if [ "$1" = "" ]; then

        echo "ERRORE: manca il nome della macchina (es: cdwriter)"
        exit 1
fi

if [ "$2" = "" ]; then

        echo "ERRORE: Manca la risorsa SMB (Lan Manager) (es: work)"
        exit 1
fi

if [ "$3" = "" ]; then

        echo "ERRORE: Manca indirizzo IP di $1 (es: 130.xxx.xxx.52)" 
        exit 1
fi




#############################################################################
# Main Section
#
#############################################################################

cd ~agnea1/backup-dir/temp
rm -r ~agnea1/backup-dir/temp/*
cd ~agnea1/backup-dir/

case "$checkdate"
in
   Mon)
      echo "Backup di Luned&igrave;"
      cat backup-data | /usr/local/samba/bin/smbclient \\\\$1\\$2 -I$3 -N 
      echo "Completato"

      if [ -d "~agnea1/backup-dir/Monday" ]; then
        echo "Directory Monday non trovata ...  creazione" 
        mkdir ~agnea1/backup-dir/Monday
      fi
      echo "Archiviazione ..."
      cd ~agnea1/backup-dir/temp
      tar -cf monday.tar *                
      echo "fatto ..."
      rm ~agnea1/backup-dir/Monday/monday.tar
      mv monday.tar ~agnea1/backup-dir/Monday
      ;;

   Tue)
      echo "Backup di Marted&igrave;"
      cat backup-data | /usr/local/samba/bin/smbclient \\\\$1\\$2 -I$3 -N 
      echo "Completato"

      if [ -d "~agnea1/backup-dir/Tuesday" ]; then
        echo "Directory Tuesday non trovata ... creazione"
        mkdir ~agnea1/backup-dir/Tuesday
      fi
      echo "Archiviazione ..."
      cd ~agnea1/backup-dir/temp
      tar -cf tuesday.tar *
      echo "fatto ..."
      rm ~agnea1/backup-dir/Tuesday/tuesday.tar
      mv tuesday.tar ~agnea1/backup-dir/Tuesday
      ;;

   Wed)
      echo "Backup di Mercoled&igrave;"
      cat backup-data | /usr/local/samba/bin/smbclient \\\\$1\\$2 -I$3 -N 
      echo "Completato"

      if [ -d "~agnea1/backup-dir/Wednesday" ]; then
        echo "Directory Wednesday non trovata ... creazione"
        mkdir ~agnea1/backup-dir/Wednesday
      fi
      echo "Archiviazione ..."
      cd ~agnea1/backup-dir/temp
      tar -cf wednesday.tar *
      echo "fatto ..."
      rm ~agnea1/backup-dir/Wednesday/wednesday.tar
      mv wednesday.tar ~agnea1/backup-dir/Wednesday
      ;;

   Thu)
      echo "Backup di Gioved&igrave;"
      cat backup-data | /usr/local/samba/bin/smbclient \\\\$1\\$2 -I$3 -N 
      echo "Completato"

      if [ -d "~agnea1/backup-dir/Thursday" ]; then
        echo "Directory Thrusday non trovata ... creazione" 
        mkdir ~agnea1/backup-dir/Thursday
      fi
      echo "Archiviazione..."
      cd ~agnea1/backup-dir/temp
      tar -cf thursday.tar *
      echo "fatto ..."
      rm ~agnea1/backup-dir/Thursday/thursday.tar
      mv thursday.tar ~agnea1/backup-dir/Thursday
      ;;

   Fri)
      echo "Backup di Venerd&igrave;"
      cat backup-data | /usr/local/samba/bin/smbclient \\\\$1\\$2 -I$3 -N 
      echo "Completato"

      if [ -d "~agnea1/backup-dir/Friday" ]; then
        echo "Directory Friday non trovata ... creazione" 
        mkdir ~agnea1/backup-dir/Friday
      fi
      echo "Archiviazione ..."
      cd ~agnea1/backup-dir/temp
      tar -cf friday.tar *
      echo "fatto ..."
      rm ~agnea1/backup-dir/Friday/friday.tar
      mv friday.tar ~agnea1/backup-dir/Friday
      ;;

     *)
      echo "ERRORE FATALE: giorno non corretto"
      exit 1
      ;;
esac


###########
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>Lo script di Dan per eseguire il backup
<P>
<BLOCKQUOTE><CODE>
<HR>
<PRE>
#!/bin/bash

BACKDIR=3D/backup
WINCMD=3D/usr/bin/smbclient

function CopyWinHost(){

# usa tar e gzip per archiviare "condivisioni windows" in una
# directory locale usando l'utility smbclient della suite samba.
# argomento 1 &egrave; il nome del computer windows remoto
# argomento 2 &egrave; il nome della condivisione di cui fare backup

   echo $1,$2,$3
   REMOTE=3D$1
   SHARE=3D$2
   DEST=3D$3

 # crea un file tar gzip usando samba per copiare direttamente
 # dal pc con windows
 # 12345 &egrave; la password.  &Egrave; necessaria anche non e' definita alcuna
 # sulla macchina remota

   $WINCMD \\\\$REMOTE\\$SHARE 12345 -Tc -|gzip > $DEST
   echo `date`": Completato backup da "$REMOTE" a "$DEST
   echo
}

function CopyUnixHost(){

# tar e gzip una directory usando rsh
# argomento 1 &egrave; il nome del computer remoto
# argomento 2 &egrave; il percorso completo della directory sorgente
#             remota
# argomento 3 &egrave; il nome del file tar-gzip locale. Il nome
#             del giorno pi&ugrave; .tgz sono aggiunti in coda
#             all'argomento 3

   REMOTE=3D$1
   SRC=3D$2
   DEST=3D$3


   if rsh $REMOTE tar -cf - $SRC |gzip > $DEST; then
      echo `date`": Completato backup da "$REMOTE":"$SRC" a "$DEST
   else
     echo `date`": Errore durante il backup  da "$REMOTE":"$SRC" a "$DEST
   fi

}

# $1: win=backup macchina windows, unix=backup macchina unix
case $1 in
   win)
      # $2= nome della macchina remota windows, 
      # $3= nome della condivisione remota,
      # $4= nome della directory locale
      CopyWinHost $2 $3 $4;;
   unix)
      # $2= host remoto, 
      # $3= directory remota,
      # $4= nomde della directory locale
      CopyUnixHost $2 $3 $4;;
esac
</PRE>
<HR>
</CODE></BLOCKQUOTE>
<P>
<P>
<HR>
<A HREF="SMB-HOWTO-12.html">Avanti</A>
<A HREF="SMB-HOWTO-10.html">Indietro</A>
<A HREF="SMB-HOWTO.html#toc11">Indice</A>
</BODY>
</HTML>