Backup Solution using CloneIt

The Problem

Jason wrote:

I was looking for a cloning/backup solution for my systems at home.. The
only one I found was  g4u which can be found at
http://www.feyrer.de/g4u/
the only problem with it, it uses an old netbsd bootdisk which I have
tried on 2 different systems and it has problems with my scsi controller
in one box and my network card in another.. I know these boxes work,
cause I run freebsd and linux on them.. anyway, I was looking for other
solutions and found yours, but yours doesnt do compression.. He has the
source for his on his web page and I tried to get it to work on my
freeBSD system, but it wouldnt work.. Could you possibly do something
like his? I know linux has better support for hardware so it would be
the ideal platform for something like this. Any ideas if you could port
it or incorporate something like it into your program?

regards,
Jason

The Solution

Jason,

I had a look at this ... my CloneIt does exactly the same (including compression) but doesn't require you to use an external FTP server. CloneIt is server and client at the same time. This makes also much more sense these days, since Harddisks are very large and installations easily use several gigabytes. Now this is for the cloning solution ...

... as for the backup solution. You'd like to make a HD image and store it somwhere. Right? If your ftp server (the box that would store the image) is running Linux, all you have to do is to install netpipes and run the following script CloneIt-Client. Then boot the machine to backup using the CloneIt bootdisk, let it be the server and use the client to save the HD to a file. The file is gzip compressed!
 

#!/bin/sh


clear
 
echo "CloneIt: Client based on netpipes 4.0 ..."
echo


     dialog \
         --title "Client: What is the server IP?" \
         --backtitle "CloneIt" \
         --inputbox "Enter the IP number of the server (i.e. 192.168.0.1)." \
         9 60 \
         2>/tmp/dialog.out
     ERR="$?"
     if [ "$ERR" != "0" ]; then
          exit;
        fi
 SERVER=`cat /tmp/dialog.out`


 dialog \
     --title "Client: Where do you want to write the file (GZIPed image) to?" \
     --backtitle "CloneIt" \
     --inputbox "Enter the filename where the data gets written to)." \
     9 60 \
     2>/tmp/dialog.out
 ERR="$?"
 if [ "$ERR" != "0" ]; then
         exit;
     fi
  FILENAME=`cat /tmp/dialog.out`
 dialog \
     --title "Client: Ready to copy the data from $SERVER to $FILENAME?" \
     --backtitle "CloneIt" \
     --msgbox "Press OK to continue when the server is running." \
     7 60
 ERR="$?"
 if [ "$ERR" != "0" ]; then
         exit;
 fi


 clear
 echo "CloneIt: Hose is receiving data from $SERVER and writing it to $FILENAME now."
 echo


 hose $SERVER 1775 --in --verbose sh -c "cat >$FILENAME"


 echo
 echo "CloneIt: The transfer is completed."
 echo

In case you require a restore from this file, you do the opposite. Run
a local server using this script CloneIt-Server. 
Then use the CloneIt disk in client mode
to restore your HD.
#!/bin/sh

clear

echo "CloneIt: Server based on netpipes 4.0 ..."
echo
       dialog \
     --title "Server: Which file you want to serve?" \
            --backtitle "CloneIt" \
     --inputbox "Filename (GZIPed imagefile)" \
            9 60 \
            2>/tmp/dialog.out
        ERR="$?"
        if [ "$ERR" != "0" ]; then
                exit;
    fi
    FILENAME=`cat /tmp/dialog.out`
 
        clear
        echo "CloneIt: Faucet is serving data from $FILENAME now ..."
        echo "         To stop the server use CTRL+C."
 echo


 faucet 1775 -out --verbose sh -c "cat $FILENAME"