Skip to main content

Raymii.org Logo (IEC resistor symbol)logo

Quis custodiet ipsos custodes?
Home | About | All pages | RSS Feed | Gopher

Clonezilla Backup Script v0.2

Published: 18-05-2009 | Author: Remy van Elst, David Bekker | Text only version of this article


Table of Contents


Clonezilla is wonderful software. At work we use it daily to image laptops. Wehave a windows PC with a big hard drive, which is shared via samba. Because weimage an average of 10 laptops every morning, I decided to customize the script.So together with a colleague we made a script which automatically grabs ourlatest image from the share and restores it.

Our images are named schoon#. It restores the image to /dev/sda, you canchange the clonezilla command. Make sure your share is writable. It gets networkfrom dhcp on eth0. The steps to get the script in clonezilla:

Execute this command:

 cd live sudo unsquashfs -f ./filesystem.squashfs 

Now make a dir in the squashfs-root. Put the scripts in there, change them ornot, and chmod them so that they are executable.

Don't forget to change the path in the launcher script, else it won't work.
Now make it back to a life system:

sudo mksquashfs ./squashfs-root ./filesystem.squashfs.new

And change the syslinux.cfg so that the paths are correct if you changed them:

label ubnentry0menu label RESTOREkernel /live/vmlinuz1append initrd=/live/initrd1.img boot=live union=aufs  hostname=jaunty edd=on nolocales ocs_live_run="/laptop03/startr.sh" ocs_live_extra_param="" ocs_live_keymap="NONE" ocs_live_batch="no" ocs_lang="" noprompt mode_option=1024x768 toram=filesystem.squashfs ip=frommedia

Now, here are the scripts: backup-schoon.sh (this makes a backup image)

#!/bin/bashdhclientclearecho "################################"echo "# Daniel Imager for Erasmus MC #"echo "################################"echoechoecho "Mounting the image share. If asked for a password, enter 1234"echomount -t cifs -o username="example",password="example" //192.168.1.2/image /home/partimagecho#clearcd /home/partimagecho "We zitten in map:"pwdecho ;DIRS="$(ls -d */ | grep '')"GROOTSTE_GETAL=0# Met alle directories gaan we een voor een aan de slag for DIR in $DIRS;do# Stop de naam van de directory in RUWE_STRINGRUWE_STRING=$DIR# Haal de slash aan het eind van RUWE_STRING af RUWE_STRING=${RUWE_STRING%/} # Haal aan het begin van RUWE_STRING "schoon" af. We houden nu het GEZOCHTE_GETAL overGEZOCHTE_GETAL=${RUWE_STRING#schoon} # De volgende twee commando's zorgen er voor dat als GEZOCHTE_GETAL geen getal is# deze de waarde 0 krijgt let GEZOCHTE_GETAL++let GEZOCHTE_GETAL--# Als GEZOCHTE_GETAL ongelijk is aan 0 dan gaan we er mee aan de gangif (( $GEZOCHTE_GETAL > 0 )) then# Als GEZOCHTE_GETAL groter is dan GROOTSTE_GETAL# dan wordt GROOTSTE_GETAL gelijk gemaakt aan GEZOCHTE_GETALif (( $GEZOCHTE_GETAL > $GROOTSTE_GETAL )) thenGROOTSTE_GETAL=$GEZOCHTE_GETAL fi#    echo "I: $I  J: $GEZOCHTE_GETAL"fidone# Als GROOTSTE_GETAL groter is dan nul is er een schone backup aanwezig en # hogen we GROOTSTE_GETAL met een op maken we een nieuwe schone backup: schoon(GROOTSTE_GETAL+1)# Zo niet dan nieuwe schone backup: schoon01if (( $GROOTSTE_GETAL > 0 ))thenlet GROOTSTE_GETAL++echo "Starting latest backup: schoon$GROOTSTE_GETAL"NAME="schoon$GROOTSTE_GETAL"/opt/drbl/sbin/ocs-sr -q -j2 -z1p -i 3900 -p true savedisk "$NAME" "sda"elseecho "No backups found, making a new one: schoon01"/opt/drbl/sbin/ocs-sr -q -j2 -z1p -i 3900 -p true savedisk "schoon11" "sda"fi

restore-schoon.sh (this restores the image)

 #!/bin/bashdhclientclearecho "################################"echo "# Daniel Imager for Erasmus MC #"echo "#       Made on 01-04-10       #"echo "################################"echoechoecho "Mounting the image share. If asked for a password, enter 1234"echomount -t cifs -o username="example",password="example" //192.168.1.2/image /home/partimag#clearcd /home/partimagecho "We zitten in map:"pwdecho ;DIRS="$(ls -d */ | grep '')"GROOTSTE_GETAL=0# Met alle directories gaan we een voor een aan de slag for DIR in $DIRS;do# Stop de naam van de directory in RUWE_STRINGRUWE_STRING=$DIR# Haal de slash aan het eind van RUWE_STRING af RUWE_STRING=${RUWE_STRING%/} # Haal aan het begin van RUWE_STRING "schoon" af. We houden nu het GEZOCHTE_GETAL overGEZOCHTE_GETAL=${RUWE_STRING#schoon} # De volgende twee commando's zorgen er voor dat als GEZOCHTE_GETAL geen getal is# deze de waarde 0 krijgt let GEZOCHTE_GETAL++let GEZOCHTE_GETAL--# Als GEZOCHTE_GETAL ongelijk is aan 0 dan gaan we er mee aan de gangif (( $GEZOCHTE_GETAL > 0 )) then# Als GEZOCHTE_GETAL groter is dan GROOTSTE_GETAL# dan wordt GROOTSTE_GETAL gelijk gemaakt aan GEZOCHTE_GETALif (( $GEZOCHTE_GETAL > $GROOTSTE_GETAL )) thenGROOTSTE_GETAL=$GEZOCHTE_GETAL fifidone# Als GROOTSTE_GETAL groter is dan nul is er een schone backup aanwezig en # kunnen we met de restore beginnen. Zo niet dan geven we de error terugif (( $GROOTSTE_GETAL > 0 ))thenecho "Start met restore van schoon$GROOTSTE_GETAL"NAME="schoon$GROOTSTE_GETAL"/opt/drbl/sbin/ocs-sr -g auto -e1  auto -e2 -j2 -p true restoredisk "$NAME" "sda"elseecho "Er is geen schone restore aanwezig."echo "Controleer of de server aanstaat en of de share aanwezig is. Maak anders een nieuw image."echo "Selecteer dadelijk de optie Start Over."fi

start.sh (bootstrapper for backup script):

 #!/bin/sh sudo su -c /laptop03/backup-schoon.sh

startr.sh (bootstrapper for restore script):

 #!/bin/sh sudo su -c /laptop03/restore-schoon.sh
Tags: backup, clonezilla, imaging, software, squashfs