This is a text-only version of the following page on https://raymii.org: --- Title : Clonezilla Backup Script v0.2 Author : Remy van Elst, David Bekker Date : 18-05-2009 URL : https://raymii.org/s/software/Clonezilla-custom-backup-script.html Format : Markdown/HTML --- Clonezilla is wonderful software. At work we use it daily to image laptops. We have a windows PC with a big hard drive, which is shared via samba. Because we image 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 our latest image from the share and restores it. Our images are named `schoon#`. It restores the image to `/dev/sda`, you can change the clonezilla command. Make sure your share is writable. It gets network from dhcp on eth0. The steps to get the script in clonezilla: * Install the squashfs-tools for your distro, this is important. * Unetbootin the ISO to a USB. * Copy the files to a dir on your pc and open a terminal in the dir. 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 or not, 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 ubnentry0 menu label RESTORE kernel /live/vmlinuz1 append 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/bash dhclient clear echo "################################" echo "# Daniel Imager for Erasmus MC #" echo "################################" echo echo echo "Mounting the image share. If asked for a password, enter 1234" echo mount -t cifs -o username="example",password="example" //192.168.1.2/image /home/partimag echo #clear cd /home/partimag echo "We zitten in map:" pwd echo ; 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_STRING RUWE_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 over GEZOCHTE_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 gang if (( $GEZOCHTE_GETAL > 0 )) then # Als GEZOCHTE_GETAL groter is dan GROOTSTE_GETAL # dan wordt GROOTSTE_GETAL gelijk gemaakt aan GEZOCHTE_GETAL if (( $GEZOCHTE_GETAL > $GROOTSTE_GETAL )) then GROOTSTE_GETAL=$GEZOCHTE_GETAL fi # echo "I: $I J: $GEZOCHTE_GETAL" fi done # 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: schoon01 if (( $GROOTSTE_GETAL > 0 )) then let 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" else echo "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/bash dhclient clear echo "################################" echo "# Daniel Imager for Erasmus MC #" echo "# Made on 01-04-10 #" echo "################################" echo echo echo "Mounting the image share. If asked for a password, enter 1234" echo mount -t cifs -o username="example",password="example" //192.168.1.2/image /home/partimag #clear cd /home/partimag echo "We zitten in map:" pwd echo ; 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_STRING RUWE_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 over GEZOCHTE_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 gang if (( $GEZOCHTE_GETAL > 0 )) then # Als GEZOCHTE_GETAL groter is dan GROOTSTE_GETAL # dan wordt GROOTSTE_GETAL gelijk gemaakt aan GEZOCHTE_GETAL if (( $GEZOCHTE_GETAL > $GROOTSTE_GETAL )) then GROOTSTE_GETAL=$GEZOCHTE_GETAL fi fi done # 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 terug if (( $GROOTSTE_GETAL > 0 )) then echo "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" else echo "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 --- License: All the text on this website is free as in freedom unless stated otherwise. This means you can use it in any way you want, you can copy it, change it the way you like and republish it, as long as you release the (modified) content under the same license to give others the same freedoms you've got and place my name and a link to this site with the article as source. This site uses Google Analytics for statistics and Google Adwords for advertisements. You are tracked and Google knows everything about you. Use an adblocker like ublock-origin if you don't want it. All the code on this website is licensed under the GNU GPL v3 license unless already licensed under a license which does not allows this form of licensing or if another license is stated on that page / in that software: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>. Just to be clear, the information on this website is for meant for educational purposes and you use it at your own risk. I do not take responsibility if you screw something up. Use common sense, do not 'rm -rf /' as root for example. If you have any questions then do not hesitate to contact me. See https://raymii.org/s/static/About.html for details.