#!/bin/bash # # Backup utility, made by Agilo. # Version 1.0 if [ `whoami` != "root" ]; then echo -e "\nYou must be root!\n"; exit; fi; if [ $1 == "--help" ]; then echo -e "Usage: backup [OPTION]\nMake a backup of important files." \ "\n\n -noclear\tDoesn't clear the screen.\n -mount\tMounts /boot.\n" \ "\n\nBackup utility v1.0 created by Agilo (webmaster@scorpionsrealm.net)." exit; elif [ $1 == "-noclear" ]; then echo -n ""; # Do nothing elif [ $1 == "-mount" ]; then mount /boot &>/dev/null else clear fi; echo -n "Where should the backup directory be? (default: /home/agilo/): " read bdir; if [ -z $bdir ]; then bdir="/home/agilo/"; fi; bdiryes="`echo $bdir | sed -r "s/\/(.*)\//yes/"`" if [ -e $bdir ] && [ -d $bdir ] && [ -r $bdir ] && [ -w $bdir ] && [ $bdiryes == "yes" ]; then echo -n "" # No error found, continue.. else echo -e "\nError: The directory must be valid!\n\n" \ "\nYou must enter the directory in this form: /home/agilo/ (Mind the slashes)\n" \ "\nExamples:\n/home/`whoami`\n/root/\n/mnt/hdb1/\n`pwd`/\n"; exit; # Errors were found, cancel backup. fi; echo -e "1. Deleting current backup directory ("$bdir"backup/).." if [ -e $bdir\backup ] && [ -d $bdir\backup ]; then rm -rf $bdir\backup else echo "Warning: No previous backup directory found in $bdir!" fi; echo -e "\n2. Creating directories.." echo " [+] "$bdir"backup" mkdir $bdir\backup echo " [+] "$bdir"backup/boot/" mkdir $bdir\backup/boot echo " [+] "$bdir"backup/boot/grub/" mkdir $bdir\backup/boot/grub echo " [+] "$bdir"backup/etc/" mkdir $bdir\backup/etc echo " [+] "$bdir"backup/etc/X11/" mkdir $bdir\backup/etc/X11 if [ $bdir == "/home/agilo/" ]; then # Personal backups. echo " [+] "$bdir"backup/home/agilo/" mkdir $bdir\backup/home mkdir $bdir\backup/home/agilo echo " [+] "$bdir"backup/home/agilo/.enlightenment" mkdir $bdir\backup/home/agilo/.enlightenment echo " [+] "$bdir"backup/home/agilo/.mozilla/default/" mkdir $bdir\backup/home/agilo/.mozilla mkdir $bdir\backup/home/agilo/.mozilla/default fi; echo " [+] "$bdir"backup/sbin/" mkdir $bdir\backup/sbin echo " [+] "$bdir"backup/usr/" mkdir $bdir\backup/usr echo " [+] "$bdir"backup/usr/X11R6/" mkdir $bdir\backup/usr/X11R6 echo " [+] "$bdir"backup/usr/X11R6/bin/" mkdir $bdir\backup/usr/X11R6/bin echo -e "\n3. Copying files." echo " /boot/grub -> "$bdir"backup/boot/" cp -R /boot/grub $bdir\backup/boot/ echo " /boot/System.map-* -> "$bdir"backup/boot/" cp /boot/System.map-* $bdir\backup/boot/ echo " /boot/initrd-* -> "$bdir"backup/boot/" cp /boot/initrd-* $bdir\backup/boot/ echo " /boot/kernel-* -> "$bdir"backup/boot/" cp /boot/kernel-* $bdir\backup/boot/ echo " /etc/X11/XF86Config -> "$bdir"backup/etc/X11/" cp /etc/X11/XF86Config $bdir\backup/etc/X11/ echo " /etc/X11/XF86Config.example -> "$bdir"backup/etc/X11/" cp /etc/X11/XF86Config.example $bdir\backup/etc/X11/ echo " /etc/X11/XftConfig -> "$bdir"backup/etc/X11/" cp /etc/X11/XftConfig $bdir\backup/etc/X11/ echo " /etc/fstab -> "$bdir"backup/etc/" cp /etc/fstab $bdir\backup/etc/ echo " /etc/group -> "$bdir"backup/etc/" cp /etc/group $bdir\backup/etc/ echo " /etc/make.conf -> "$bdir"backup/etc/" cp /etc/make.conf $bdir\backup/etc/ echo " /etc/passwd -> "$bdir"backup/etc/" cp /etc/passwd $bdir\backup/etc/ echo " /etc/rc.conf -> "$bdir"backup/etc/" cp /etc/rc.conf $bdir\backup/etc/ echo " /etc/resolv.conf -> "$bdir"backup/etc/" cp /etc/resolv.conf $bdir\backup/etc/ if [ $bdir == "/home/agilo/" ]; then # Personal backups. echo " /home/agilo/.enlightenment -> "$bdir"backup/home/agilo/" cp -R /home/agilo/.enlightenment $bdir\backup/home/agilo/ echo " /home/agilo/.mozilla/default/*/bookmarks.html -> "$bdir"backup/home/agilo/.mozilla/default/" cp /home/agilo/.mozilla/default/*/bookmarks.html $bdir\backup/home/agilo/.mozilla/default/ fi; echo " /sbin/rc -> "$bdir"backup/sbin/rc/" cp /sbin/rc $bdir\backup/sbin/ echo " /usr/X11R6/bin/startx -> "$bdir"backup/usr/X11R6/bin/" cp /usr/X11R6/bin/startx $bdir\backup/usr/X11R6/bin/ echo -e "\nDone!\n\n"