ZFS script to take backup


# Ayotunde ITAYEMI (28-July-2009) and Modify for this backup by Lloyd Johnson

# Please modify if deployed on another system or if the configuration

# of this system changes

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

# Areas to modify (zfs list )file system : Note  during the installation make sure, that the directory #make /root must be check before installation, if that path is there, the script cannot execute, #however you can delete it or change the path from your script. AERAS marked with red must be #check before executing the script.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Restoring  ZFS file system

# NOTE: I have commented out the backup for mmp01pool since that's

# the temporary location in which rpool will be backed up to

# the backup administrator MUST remember to take the backup

# of the mmp01pool as the ZONE O/S resides in that pool

#

# alternatively, change the BACKUPLOCATION to a mounted external (NFS) filesyste

m

# then uncomment the commented steps for backing up the mmp01pool zpool.

#


HOSTNAME=`hostname`

DATE=`date +%d%m%Y`

#BACKUPLOCATION=/mmp01pool/$HOSTNAME.OS.BACKUP.$DATE

BACKUPLOCATION=/tmp/osbackup/$HOSTNAME.OS.BACKUP.$DATE

# directory to mount your backup location

mkdir /tmp/osbackup

# The backup Location i use nfs, use can be different

mount -f nfs 172.16.103.47:/vol/bkup4unixtest/ /tmp/osbackup

if [ $? != 0 ]

then

# mount of backup destination failed. Abort backup

   exit

fi


mkdir $BACKUPLOCATION

#This path must not be there, check from cd / delete it or change the location

mkdir /root

cd /root


# Save various details about O/S storage configuration:

echo "O/S storage configuration ...." > $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "\nzpool list" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zpool list >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "\nzpool status" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zpool status >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "\nzfs list" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs list >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

 

# Take a copy of the properties that are set in the rpool and all filesystems associated with it:


zpool get all rpool >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/ROOT >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/ROOT/s10s_u7wos_08 >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/ROOT/s10s_u7wos_08/var >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/dump >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/export >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/export/home >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all rpool/swap >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt


# ZONE pool (include filesystem for mmp01lz ZONE)

# Take a copy of the properties that are set in the mmp01pool and all filesystems associated with it:

# ---------------- applies to mmp01gz ----------------------------

zpool get all mmp01pool >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all mmp01pool >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all mmp01pool/mmp01lz >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

zfs get all mmp01pool/oracleapps >> $HOSTNAME.zfs.zpools.props.$DATE.txt

echo "" >> $HOSTNAME.zfs.zpools.props.$DATE.txt

# ---------------- end applies to mmp01gz ------------------------

 

# Prepare TEMPORARY! backup location

#mkdir $BACKUPLOCATION


cp $HOSTNAME.zfs.zpools.props.$DATE.txt $BACKUPLOCATION/


# Actually take the Backups

# I will take the backup of the zpools (rpool) to mmp01pool/

# then move them out and then take the backup of mmp01pool/ to somewhere else


# Preparation - destroy existing snapshots????

zfs destroy rpool@backup

zfs destroy rpool/ROOT@backup

zfs destroy rpool/ROOT/s10s_u7wos_08@backup

zfs destroy rpool/ROOT/s10s_u7wos_08/var@backup

zfs destroy rpool/export@backup

zfs destroy rpool/export/home@backup


zfs destroy mmp01pool@backup

zfs destroy mmp01pool/mmp01lz@backup

zfs destroy mmp01pool/oracleapps@backup

 

# Now snapshot the rpools with a suitable snapshot name:

zfs snapshot -r rpool@backup

zfs snapshot -r mmp01pool@backup


# Destroy the SWAP and DUMP snapshots - they don't need to be backed up

zfs destroy rpool/swap@backup

zfs destroy rpool/dump@backup


# For each filesystem, send the data to a suitable backup file/location.

zfs send -v rpool@backup > $BACKUPLOCATION/$HOSTNAME.rpool.$DATE.dump

zfs send -v rpool/ROOT@backup > $BACKUPLOCATION/$HOSTNAME.rpool.ROOT.$DATE.dump

zfs send -vR rpool/ROOT/s10s_u7wos_08@backup > $BACKUPLOCATION/$HOSTNAME.rpool.ROOT.s10s_u7wos_08.$DATE.dump

zfs send -v rpool/ROOT/s10s_u7wos_08/var@backup > $BACKUPLOCATION/$HOSTNAME.rpool.ROOT.s10s_u7wos_08.var.$DATE.dump

zfs send -v rpool/export@backup > $BACKUPLOCATION/$HOSTNAME.rpool.export.$DATE.dump

zfs send -v rpool/export/home@backup > $BACKUPLOCATION/$HOSTNAME.rpool.export.home.$DATE.dump

 

# Now snapshot the mmp01pool with a suitable snapshot name:

# backup mmp01pool

zfs send -v mmp01pool@backup > $BACKUPLOCATION/$HOSTNAME.mmp01pool.$DATE.dump

zfs send -v mmp01pool/mmp01lz@backup > $BACKUPLOCATION/$HOSTNAME.mmp01pool.mmp01lz.$DATE.dump

zfs send -v mmp01pool/oracleapps@backup > $BACKUPLOCATION/$HOSTNAME.mmp01pool.oracleapps$DATE.dump


# Cleaning up - destroy snapshotss?????

zfs destroy rpool@backup

zfs destroy rpool/ROOT@backup

zfs destroy rpool/ROOT/s10s_u7wos_08@backup

zfs destroy rpool/ROOT/s10s_u7wos_08/var@backup

zfs destroy rpool/export@backup

zfs destroy rpool/export/home@backup


zfs destroy mmp01pool@backup

zfs destroy mmp01pool/mmp01lz@backup

zfs destroy mmp01pool/oracleapps@backup

 

# Transfer backup files off system

# will stop script run and prompt for password unless using password-less authentication:  ssh user equivalence with RSA/DSA keys

# scp -r $BACKUPLOCATION jlloyd@172.16.65.32:/test


Scp –r $BACKUPLOCATION jlloyd@172.16.65.32:/test


umount /tmp/osbackup

rmdir /tmp/osbackup


# END OF BACKUP SCRIPT

 

Comments

Popular posts from this blog

Push command for NetWorker Client Upgrade

Factors Affecting Users’ Sense of Security and Trust in Integrating Electronic health record to the cloud

Basic Elastic Cloud Storage Troubleshooting Commands