Packages also available for linux x84_64, ppc64 and ppc64le
REAR will generate a bootable iso file (minimum image <100M), to recover your system, and a compressed tar file containing all other data.
First install rear and dependencies:
[root@rhlab1 ~]$ yum -y install mkisofs genisoimage attr bind-utils rear
Configure rear using a NFS v4 mount point on nfssrv:
[root@rhlab1 ~]$ cat /etc/rear/local.conf # Default is to create Relax-and-Recover rescue media as ISO image # set OUTPUT to change that # set BACKUP to activate an automated (backup and) restore of your data # Possible configuration values can be found in /usr/share/rear/conf/default.conf # # This file (local.conf) is intended for manual configuration. For configuration # through packages and other automated means we recommend creating a new # file named site.conf next to this file and to leave the local.conf as it is. # Our packages will never ship with a site.conf. OUTPUT=ISO BACKUP=NETFS BACKUP_URL=nfs://nfssrv/export/backup/linux # ONLY_INCLUDE_VG=( ca ) EXCLUDE_MOUNTPOINTS=( /data ) BACKUP_PROG_EXCLUDE=( '/tmp/*' )
Test a backup using validation on each step:
[root@rhlab1 output]$ rear -v -d -S -c /etc/rear mkbackup Relax-and-Recover 1.17.2 / Git Using log file: /var/log/rear/rear-rhldapr1.log Press ENTER to include '/etc/rear/os.conf' ... Press ENTER to include '/usr/share/rear/conf/Linux-ppc64le.conf' ... Press ENTER to include '/usr/share/rear/conf/GNU/Linux.conf' ... Press ENTER to include '/etc/rear/local.conf' ... Press ENTER to include '/usr/share/rear/init/default/01_set_drlm_env.sh' ... ....
For production backup use, remove validation option and or verbose and debug:
$ rear -v -d -c /etc/rear mkbackup
Rear supports also most backup software like Bacula, TSM… A full sample config file is located in /usr/share/rear/conf/default.conf
Sample config file using TSM (dsm.opt and dsm.sys must be register):
[root@rhlab1 output]$ cat /etc/rear/local.conf OUTPUT=ISO #BACKUP=NETFS #BACKUP_URL=nfs://systemh/export/backup/linux # ONLY_INCLUDE_VG=( ca ) EXCLUDE_MOUNTPOINTS=( /data ) # BACKUP=TSM COPY_AS_IS_TSM=( /etc/adsm/TSM.PWD /opt/tivoli/tsm/client /usr/local/ibm/gsk8* ) COPY_AS_IS_EXCLUDE_TSM=( ) PROGS_TSM=(dsmc) # Should the result from mkrecover/backup saved via TSM TSM_RESULT_SAVE=y # TSM archive management class definition TSM_ARCHIVE_MGMT_CLASS= # if TSM server confirms the backup was successful (to preserve space on the local system) TSM_RM_ISOFILE=y # where to copy the resulting files to and save them with TSM TSM_RESULT_FILE_PATH=/opt/tivoli/tsm/rear
To exclude specific folders or files add the following line into the config file
BACKUP_PROG_EXCLUDE=( ${BACKUP_PROG_EXCLUDE[@]} '/var/www/html/*' '/software/*' '/repo/*')
On AIX server (or linux), configure NFSv4 Ex:
[root@aixsrv1]/export/rear# cat /etc/exports /export/rear -vers=3:4,rw,root=linux1:linux2:10.0.0.123
[root@aixsrv1]/export/rear# cat /root/scripts/rear.sh
#!/bin/ksh93 #set -x ################################################ #@(#) Create a rear backup for all linux clients ################################################ # version 1.0 ############################################# dir=`dirname $0` . $dir/.env rearbackup="linux1 linux2" rearpath=/export/rear HOSTNAME=$(hostname -s) dest="test@yahoo.fr" sender="${HOSTNAME}@yahoo.fr" errlog=$logpath/${sn}_err.out detail=$logpath/${sn}_detail.out start_time=$(date "+%d-%m-%Y %H:%m") #------------------------------------------------ usage () { echo "Usage: "$0 [linuxname1,linuxname2...] echo "\t<linuxname> is optional" echo "\twithout parameters will create rear backup for all known linux partitions on local site" echo "\tIf you add a specific linux, then only that linux will be saved" exit 1 } #------------------------------------------------ initialize () { cat /dev/null > $errlog cat /dev/null > $detail cat /dev/null > $logname } #------------------------------------------------ mkrear () { for client in ${rearbackup} do ssh $client "/usr/sbin/rear mkbackup" if [ $? -ne 0 ] then echo "Rear backup for $client failed" >> $errlog else size=$(du -sg $rearpath/$(echo ${client}|cut -d. -f1)/ | awk '{print $1}') echo "Rear backup size" echo "$size GB $rearpath/${client}" print "***** mksysb Successful on host $client *****" print "Successful rear on host $client : size $size GB" >> $logname echo fi done } #------------------------------------------------ sendemail () { echo "###############" > $logname.tmp echo "### $HOSTNAME ###" >> $logname.tmp echo "###############" >> $logname.tmp echo "\tRear started at: ${start_time}" >> $logname.tmp #echo "\tRear ended at: "$(date "+%d-%m-%Y %H:%m") >> $logname.tmp if [ -s $errlog ] then echo "\n######## Failed rear ########" >> $logname.tmp cat $errlog >> $logname.tmp echo "Detailled error on $HOSTNAME $detail" fi echo "\n######## Successful rear ########" >> $logname.tmp cat $logname >> $logname.tmp echo | mailx -a $logname.tmp -r "$sender" -s "Report rear on $HOSTNAME" $dest #test -f $logname.tmp && rm $logname.tmp } ############################################# # main ############################################# case "$*" in help|-h|-help) usage ;; esac initialize mkrear $* > $detail 2>&1 sendemail