› Clovertech Forums › Read Only Archives › Cloverleaf › Support Web › How to migrate site from CL 5.7 to 6.1.2
I am trying to promote a site from a cloverleaf 5.7 to a 6.1.2. I know that there is the hcisitepromoteprep command to get the hsc file for the hcisitepromote command but somehow I always get the error message
I’ve never used hcisitepromoteprep so I’m not going to try and speak to that.
I’ve always used hcirootcopy to upgrade a site from one cloverleaf version to another.
I can’t say if one is better than the other but hcirootcopy has done the job for me in case you haven’t tried it.
Here is a relevant code snipett of interest to illustrate, which came from my bigger script ( 60_site__hcirootcopy.ksh ) also seen later on.
#—————————-
# migrate specified site name
#—————————-
# Name:
# hcirootcopy
#
# Usage:
# hcirootcopy [-f] [-n] [-v] [-s ] [-l ] sourceRoot
# where
# -f = don’t query
# -n = test only
# -v = verbose
# -s = copy a single site or colon-separated list of sites
# i.e. site1 or site1:site2:site3
# -l = copy the sites listed in the file
# should be newline-formatted, i.e.
# site1
# site2
# site3
# sourceRoot = source root directory
# Options -s and -l may not be used simultaneously
#
# Description:
# This tool copies files from one root (the source) into another (the
# ‘current,’ setroot-ed destination). It is normally used during the
# process of installing a new Cloverleaf release (i.e., the new root)
# and preparing it to asuume production-ness from the source root.
#
# It identifies root-level configuration files and prompts the user
# for confirmation to copy each (unless ‘-f’ is used). It also
# identifies site directories and attempts to hcisiteinit/copy them.
cd $MDA_UPDIR/work
did_or_die “(040) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
$HCIROOT/bin/hcirootcopy -v -s $siteName $oldRoot 2>hcirootcopy.err
did_or_die “(050) $HCIROOT/bin/hcirootcopy -n -v -s $siteName $oldRoot 2>hcirootcopy.err”
Here is my entire script ( 60_site__hcirootcopy.ksh ) I wrote for to help with my last upgrade I did from cloverleaf 5.6 to cloverleaf 6.0 if that might help illustrate the code snippet above.
#!/usr/bin/ksh
#————————————————————————————————————-
# define subroutine to terminate this script if the last command execute before calling this subroutine failed
#————————————————————————————————————-
did_or_die ()
{
if test $? -ne 0 ; then
print
print “$*”
show_fatal_error_marker.ksh
exit 1
fi
}
#———————————————————-
# set the MDA_UPDIR environment variable if not already set
#———————————————————-
if [[ “`echo $MDA_UPDIR`” = “” ]]; then
export MDA_UPDIR=/upgrade
fi
#————————–
# initialize some variables
#————————–
timeStamp=$(date +”%Y.%m.%d__%H:%M:%S”)
myRoot=$HCIROOT
mySite=$HCISITE
#————————————-
# set the old and new Cloverleaf roots
#————————————-
export oldRoot=/cloverleaf/qdx5.6/integrator
export newRoot=/cloverleaf/cis6.0/integrator
oldData=/nfs/data
#————————————————
# test to be sure the specified directories exist
#————————————————
if [[ ! -d $oldRoot ]]; then
echo “”
echo “ERROR – the following oldRoot does not exist”
echo “”
echo ” $oldRoot”
echo “”
show_fatal_error_marker.ksh
exit 1
fi
if [[ ! -d $newRoot ]]; then
echo “”
echo “ERROR – the following newRoot does not exist”
echo “”
echo ” $newRoot”
echo “”
show_fatal_error_marker.ksh
exit 1
fi
if [[ ! -d $oldData ]]; then
echo “”
echo “ERROR – the following oldData does not exist”
echo “”
echo ” $oldData”
echo “”
show_fatal_error_marker.ksh
exit 1
fi
#———————————————————
# set the default directory to a work directory for safety
#———————————————————
if [[ ! -d $MDA_UPDIR/work ]]; then
echo “”
echo “ERROR – the following work directory used for safety does not exist; please create!”
echo “”
echo ” $MDA_UPDIR/work”
echo “”
show_fatal_error_marker.ksh
exit 1
fi
cd $MDA_UPDIR/work
did_or_die “(010) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
#———————————————
# make sure this script is run by the hci user
#———————————————
me=`whoami`
if [ “$me” != “hci” ]; then
echo “”
echo ” $0 must be run as hci”
echo “”
show_fatal_error_marker.ksh
exit 1
fi
#———————————————-
# check if old site name was give as argument 1
#———————————————-
siteName=”$1″
if [ “$siteName” = “” ]; then
echo “”
echo “***** ERROR – must supply OLD site name *****”
echo “”
echo “Here is one example of normal usage of this scripts:”
echo “”
echo ” $MDA_UPDIR/scripts/60_site__hcirootcopy.ksh test_russ”
echo “”
show_fatal_error_marker.ksh
exit 2
fi
#—————————————————————————–
# confirm that site name exists in the old HCIROOT
# this if logic will work if the site is either a directory or a symoblic link
#—————————————————————————–
if [ ! “`ls $oldRoot/$siteName 2>/dev/null`” ]; then
echo “”
echo “***** ERROR – the site ( $siteName ) does not exist in the old HCIROOT ( $oldRoot )”
echo “***** this script is terminating without taking any action”
echo “”
show_fatal_error_marker.ksh
exit 3
fi
#——————————————-
# confirm that the old data directory exists
#——————————————-
if [ ! -d “$oldData/$siteName” ]; then
echo “”
echo “***** ERROR – the old data directory ( $oldData/$siteName ) does not exist”
echo “***** this script is terminating without taking any action”
echo “”
show_fatal_error_marker.ksh
exit 3
fi
#———————————————————————-
# confirm that $HCIROOT/siteProto/Alerts/off.alrt file has been created
#———————————————————————-
if [[ ! -a $HCIROOT/siteProto/Alerts/off.alrt ]]; then
echo””
echo “***** ERROR – need to create the off.alrt file in $HCIROOT/siteProto/Alerts”
echo “***** Also be sure to:”
echo””
echo “cd $HCIROOT/siteProto/Alerts”
echo “cp -p default.alrt default.alrt_`date +”%Y.%m.%d”`_original”
echo “vi default.alrt”
echo “cp -p default.alrt off.alrt”
echo “”
show_fatal_error_marker.ksh
exit 3
fi
#——————————————————
# warn and prompt if the site has already been migrated
#——————————————————
if [ “`ls $HCIROOT/$siteName 2>/dev/null`” ]; then
echo “”
echo “*************************************************”
echo “***** IMPORTANT YOU READ THIS CAREFULLY !!! *****”
echo “*************************************************”
echo “”
echo “***** The site ( $siteName ) has already been upgraded”
echo “***** type upgrade-again to continue with hiding and re-migrating the site or”
echo “***** hit ctrl-c or to terminate this script”
echo “”
read xyz
if [ ! “$xyz” = “upgrade-again” ]; then
echo ” terminating without taking any action”
exit
fi
echo “Now proceeding to continue this script”
#——————————————————-
# check to be sure the already migrated site is shutdown
# before deleting it ad re-migrating
#——————————————————-
if [ “`find -L $HCIROOT/$siteName -name pid 2>/dev/null`” ]; then
echo “”
echo “***** ERROR – the site ( $siteName ) is NOT shutdown and contains the following pid file(s)”
echo “”
find -L $HCIROOT/$siteName -name pid 2>/dev/null
echo “”
echo “***** you must shutdown the active processes listed above before proceeding”
echo “***** this script is terminating without taking any action”
echo “”
show_fatal_error_marker.ksh
exit 4
fi
#—————————————————————————
# hide the previously migrated site that is now shutdown
# NOTE: will get rid of later manually in case picked wrong site by mistake
#—————————————————————————
mv $HCIROOT/${siteName}
$HCIROOT/${siteName}__${timeStamp}__hide
2>/dev/null
did_or_die “(020) hide the previously migrated site $HCIROOT/${siteName} that is now shutdown”
if [ “`ls /sites/$HCIVERSION/${siteName} 2>/dev/null`” ]; then
mv /sites/$HCIVERSION/${siteName}
/sites/$HCIVERSION/${siteName}__${timeStamp}__hide
2>/dev/null
did_or_die “(030) hide the previously migrated site /sites/$HCIVERSION/${siteName} that is now shutdown”
fi
fi
#—————————-
# migrate specified site name
#—————————-
# Name:
# hcirootcopy
#
# Usage:
# hcirootcopy [-f] [-n] [-v] [-s ] [-l ] sourceRoot
# where
# -f = don’t query
# -n = test only
# -v = verbose
# -s = copy a single site or colon-separated list of sites
# i.e. site1 or site1:site2:site3
# -l = copy the sites listed in the file
# should be newline-formatted, i.e.
# site1
# site2
# site3
# sourceRoot = source root directory
# Options -s and -l may not be used simultaneously
#
# Description:
# This tool copies files from one root (the source) into another (the
# ‘current,’ setroot-ed destination). It is normally used during the
# process of installing a new Cloverleaf release (i.e., the new root)
# and preparing it to asuume production-ness from the source root.
#
# It identifies root-level configuration files and prompts the user
# for confirmation to copy each (unless ‘-f’ is used). It also
# identifies site directories and attempts to hcisiteinit/copy them.
cd $MDA_UPDIR/work
did_or_die “(040) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
$HCIROOT/bin/hcirootcopy -v -s $siteName $oldRoot 2>hcirootcopy.err
did_or_die “(050) $HCIROOT/bin/hcirootcopy -n -v -s $siteName $oldRoot 2>hcirootcopy.err”
#———————————–
# confirm that the site got migrated
#———————————–
if [[ ! -d $HCIROOT/$siteName ]]; then
echo “”
echo “***** ERROR – the site ( $HCIROOT/$siteName ) didn’t get migrated”
echo “***** this script is terminating without taking any action”
echo “”
#—————————————————————————————–
# if exists, unhide previously migrated site
# since hcirootcopy did not migrate the specified site
# probably because the user did not answer “y” when prompted to migrate the specified site
#—————————————————————————————–
if [ “`ls $HCIROOT/${siteName}__${timeStamp}__hide 2>/dev/null`” ]; then
mv $HCIROOT/${siteName}__${timeStamp}__hide
$HCIROOT/$siteName
2>/dev/null
did_or_die “(060) unhide the previously migrated site $HCIROOT/${siteName}__${timeStamp}__hide since hcirootcopy did not migrate the specified site”
fi
if [ “`ls /sites/$HCIVERSION/${siteName}__${timeStamp}__hide 2>/dev/null`” ]; then
mv /sites/$HCIVERSION/${siteName}__${timeStamp}__hide
/sites/$HCIVERSION/${siteName}
2>/dev/null
did_or_die “(070) unhide the previously migrated site /sites/$HCIVERSION/${siteName}__${timeStamp}__hide since hcirootcopy did not migrate the specified site”
fi
show_fatal_error_marker.ksh
exit 5
fi
#————————————
# make first backup copy of NetConfig
#————————————
cp -p $HCIROOT/$siteName/NetConfig $HCIROOT/$siteName/NetConfig_`date +”%Y.%m.%d”`_before_6.0_fix
did_or_die “(075) not able to make first backup copy of NetConfig”
#———————–
# clean up migrated site
#———————–
echo “”
echo “cleaning up migrated site”
cd $MDA_UPDIR/work
did_or_die “(080) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName
did_or_die “(090) not able to cd to $HCIROOT/$siteName”
rm -f $(
ls -al | grep “^-” | awk ‘{print $9}’
| grep -v “keep”
| grep -v “^NetConfig*”
| grep -v “^siteInfo$”
| grep -v “template”
)
rm -rf lock; mkdir lock
rm -rf logs; mkdir logs
rm -rf revisions; mkdir revisions
rm -rf stats; mkdir stats
rm -f NetConfig_before_*
#——————————————-
# hide Alerts and clean out Alerts directory
# ??? probably need to make sure if default.alrt is not a symbolic link before doing hcirootcopy
#——————————————-
echo “”
echo “Hiding alerts and cleaning out Alerts directory”
echo “”
if [[ ! -d $HCIROOT/$siteName/Alerts ]]; then
echo “”
echo “***** ERROR – no Alerts directory exists”
echo “”
show_fatal_error_marker.ksh
exit 9
fi
cd $MDA_UPDIR/work
did_or_die “(100) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/Alerts
did_or_die “(110) not able to cd to $HCIROOT/$siteName/Alerts”
if [[ ! -a ${HCIVERSION}_hide_default.alrt ]]; then
cp -p default.alrt ${HCIVERSION}_hide_original_default.alrt
did_or_die “(120) cp -p default.alrt ${HCIVERSION}_hide_original_default.alrt”
fi
ls -al
rm -rf `ls -1 | grep -v “${HCIVERSION}_hide_original_default.alrt”`
cp -p $HCIROOT/siteProto/Alerts/off.alrt $HCIROOT/$siteName/Alerts/off.alrt
did_or_die “(130) cp -p $HCIROOT/siteProto/Alerts/off.alrt $HCIROOT/$siteName/Alerts/off.alrt”
ln -sf off.alrt default.alrt
did_or_die “(140) ln -sf off.alrt default.alrt”
echo “——————-”
ls -al
#———————————-
# clean up and sync views directory
# ??? see what views directory looks like after hcirootcopy
#———————————-
echo “”
echo “cleaning up views directory and synching netconfig view with netmonitor view”
cd $MDA_UPDIR/work
did_or_die “(150) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/views
did_or_die “(160) cd $HCIROOT/$siteName/views”
rm -f .* 2>/dev/null
rm -f $(
ls -al | grep “^-” | awk ‘{print $9}’
| grep -v “^dflt.mvw$”
)
cp -p config_dflt.view monitor_dflt.view 2>/dev/null
# did_or_die “(170) cp -p config_dflt.view monitor_dflt.view 2>/dev/null”
#————————————————–
# clean up any parallel copies of scripts directory
#————————————————–
echo “”
echo “cleaning up any parallel copies of scripts directory”
cd $MDA_UPDIR/work
did_or_die “(172) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
rm -rf $HCIROOT/$siteName/scripts_*
#——————————–
# recreate site scripts directory
#——————————–
echo “”
echo “recreating site scripts directory”
rm -rf $HCIROOT/$siteName/scripts
mkdir $HCIROOT/$siteName/scripts
did_or_die “(180) mkdir $HCIROOT/$siteName/scripts”
tar_tar_dir $oldRoot/$siteName/scripts $newRoot/$siteName/scripts
did_or_die “(190) tar_tar_dir $oldRoot/$siteName/scripts $newRoot/$siteName/scripts”
echo “”
echo “recreating site startup backups directory”
rm -rf $HCIROOT/$siteName/scripts/site_startup_backups
did_or_die “(195) rm -rf $HCIROOT/$siteName/scripts/site_startup_backups”
mkdir $HCIROOT/$siteName/scripts/site_startup_backups
did_or_die “(196) mkdir $HCIROOT/$siteName/scripts/site_startup_backups”
#—————————
# get rid of all *.bak files
#—————————
echo “”
echo “getting rid of bak files”
cd $MDA_UPDIR/work
did_or_die “(200) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName
did_or_die “(210) $HCIROOT/$siteName”
find . -name “*.bak” -exec rm -rf {} ;
find . -name “backup” -exec rm -rf {} ;
find . -name “x.x” -exec rm -rf {} ;
find . -name “core” -exec rm -rf {} ;
#————————————————-
# clean up any backup copies of tclprocs directory
#————————————————-
echo “”
echo “cleaning up any parallel copies of tclprocs directory”
cd $MDA_UPDIR/work
did_or_die “(215) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
rm -rf $HCIROOT/$siteName/bkup_tclprocs
rm -rf $HCIROOT/$siteName/tclprocs_*
rm -rf $HCIROOT/$siteName/tclprocs/backup_*
#——————————————-
# clean up any backups of format directories
#——————————————-
echo “”
echo “cleaning up any backups of format directories”
cd $MDA_UPDIR/work
did_or_die “(217) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
rm -rf $HCIROOT/$siteName/formats/fixed_*
#————————————————————————-
# make sure the site specific tclprocs directory only contains *.tcl files
#————————————————————————-
echo “”
echo “making sure the tclporcs directory only contains TCL files”
cd $MDA_UPDIR/work
did_or_die “(220) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/tclprocs
did_or_die “(230) cd $HCIROOT/$siteName/tclprocs”
rm -f .* 2>/dev/null
rm -f $(
ls -al | grep “^-” | awk ‘{print $9}’
| grep -v “keep”
| grep -v “.tcl$”
| grep -v “template”
)
rm -rf *.pre38
#—————————————————
# clean up any parallel copies of tclprocs directory
#—————————————————
echo “”
echo “cleaning up any parallel copies of Xlate directory”
cd $MDA_UPDIR/work
did_or_die “(215) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
rm -rf $HCIROOT/$siteName/Xlate_*
#———————————————————————-
# make sure the site specific Xlate directory only contains *.xlt files
#———————————————————————-
echo “”
echo “making sure the Xlate directory only contains xlt files”
cd $MDA_UPDIR/work
did_or_die “(240) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/Xlate
did_or_die “(250) cd $HCIROOT/$siteName/Xlate”
rm -f .* 2>/dev/null
rm -f $(
ls -al | grep “^-” | awk ‘{print $9}’
| grep -v “keep”
| grep -v “.xlt$”
| grep -v “template”
)
#————————————————–
# set the ownership of the entire site to hci:staff
#————————————————–
chown -R hci:staff $HCIROOT/$siteName
did_or_die “(260) chown -R hci:staff $HCIROOT/$siteName”
#———————————————————-
# recreate the process directories defined in the NetConfig
#———————————————————-
echo “”
echo “recreating the process directories defined in the Netconfig”
rm -rf $HCIROOT/$siteName/exec/processes
mkdir $HCIROOT/$siteName/exec/processes
did_or_die “(270) mkdir $HCIROOT/$siteName/exec/processes”
cd $MDA_UPDIR/work
did_or_die “(280) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/exec/processes
did_or_die “(290) $HCIROOT/$siteName/exec/processes”
procList=`grep “^process” $HCIROOT/$siteName/NetConfig | awk ‘{print $2}’ | sort`
for proc in $procList; do
rm -rf $proc
mkdir $proc
did_or_die “(300) mkdir $proc”
done
ls -al
echo “”
#——————–
# link data directory
#——————–
echo “”
echo “—————”
echo “ln -s /data/$siteName $HCIROOT/$siteName/data”
echo “—————”
echo “”
rm -rf $HCIROOT/$siteName/data
rm -rf /data/$siteName
mkdir /data/$siteName
did_or_die “(310) mkdir /data/$siteName”
ln -sf /data/$siteName $HCIROOT/$siteName/data
did_or_die “(320) ln -sf /data/$siteName $HCIROOT/$siteName/data”
tar_tar_dir $oldData/$siteName /data/$siteName
did_or_die “(330) tar_tar_dir $oldData/$siteName /data/$siteName”
#——————————————————————-
# make TCL index
# NOTE: I noticed that in Cloverleaf 6.0 mktclindex creates 2 files
# .upocindex
# tclIndex
#——————————————————————-
echo “”
echo “Doing a mktclindex”
cd $MDA_UPDIR/work
did_or_die “(340) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/tclprocs
did_or_die “(350) cd $HCIROOT/$siteName/tclprocs”
cd $HCIROOT/$siteName/tclprocs
if [ “`ls $HCIROOT/$siteName/tclprocs/*.tcl 2>/dev/null`” ]; then
mktclindex
did_or_die “(360) mktclindex”
fi
ls -al
echo “”
#————————
# make TCL packages index
#————————
cd $MDA_UPDIR/work
did_or_die “(370) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
if [[ -d $HCIROOT/$siteName/tclprocs/packages ]]; then
if [ “`ls $HCIROOT/$siteName/tclprocs/packages/*.tcl 2>/dev/null`” ]; then
echo “”
echo “Doing a mkpkgindex.tcl”
cd $HCIROOT/$siteName/tclprocs/packages
did_or_die “(380) cd $HCIROOT/$siteName/tclprocs/packages”
# ??? skip this step until we figure out how to get mkpkgindex.tcl to work in cloverleaf 6.0
### mkpkgindex.tcl -verbose —
### did_or_die “(390) mkpkgindex.tcl -verbose –”
fi
ls -al
echo “”
fi
#———————-
# compile any PDL files
#———————-
echo “”
echo “Compiling via hcipdc any PDL file(s)”
cd $MDA_UPDIR/work
did_or_die “(400) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/pdls
did_or_die “(405) cd $HCIROOT/$siteName/pdls”
if [ “`ls $HCIROOT/$siteName/pdls/*.pdl 2>/dev/null`” ]; then
hcipdc *.pdl 2>/dev/null
did_or_die “(410) hcipdc *.pdl”
fi
echo “”
#————————————————
# clear database for safety
# and reset shared memory pointer/file for safety
#————————————————
echo “”
echo “About to clear data base for safety”
setroot -clear
did_or_die “(420) setroot -clear”
setroot $myRoot $siteName
did_or_die “(430) setroot $myRoot $siteName”
showroot
clear_db.ksh
did_or_die “(440) clear_db.ksh”
cd $MDA_UPDIR/work
did_or_die “(450) set the default directory to a work directory ( $MDA_UPDIR/work ) for safety”
cd $HCIROOT/$siteName/exec
did_or_die “(460) cd $HCIROOT/$siteName/exec”
rm -f monitorShmemFile
hcimsiutil -R
did_or_die “(470) hcimsiutil -R”
setroot -clear
did_or_die “(480) setroot -clear”
setroot $myRoot $siteName
did_or_die “(490) setroot $myRoot $mySite”
#———————————————————————————————————————-
# no longer necessary to reconcile symbolic links in the formats directory now that cloverleaf knows about master site
#———————————————————————————————————————-
#———————————
# sort the sites listed in the IDE
#———————————
$HCIROOT/mda_global/scripts/set_server_ini_environs.ksh
did_or_die “(500) set_server_ini_environs.ksh”
Russ Ross
RussRoss318@gmail.com
Hi Russ,
thanks a lot for your answer. My problem was, that the sites were on different servers. What I did was creating a new site on the newer Server and import everything there. The only difference was in a few lookup tables and translations.
Here I could solve the problem by opening the tables with notepad++ and comparing the “old” tables with tables from a site I set up at the new system. It turned out, that only the encoding was new.
The problem could be solved by adding the correct header:
#
dflt_passthrough=0
dflt=
dflt_encoded=false
#
In Addition to that it is necessary to also enter the following code snippet after every table row. It will look like this afterwards:
encoded=0,0 (The snippet which needs to be added)
…. header information ….
#
dflt_passthrough=0
dflt=
dflt_encoded=false
#
Col1
Col2
encoded=0,0
If you experience problems with translations, you can simply change a small thing (like adding a comment) and save. This will solve the problem.
When I did my upgrade, my cloverleaf sites for 5.6 and 6.0 were on different boxes, too.
I did a NFS mount read only of the physical location of /cloverleaf/qdx5.6 directory onto my cloverleaf 6.0 server and used a symbolic link to make it look like they existed in the right place on my new cloverleaf 6.0 server.
Then I was able to trick it into running hcirootcopy copy as if the older cloverleaf 5.6 version existed on the same box as the newly installed cloverleaf 6.0.
Since the NFS mount is read only no harm can come to the older live cloverleaf version while referencing it on the new cloverleaf box with things like hcirootcopy.
Nor do I run the risk of stepping on environment variables since each version of cloverleaf is running independently on separate servers, which is a common problem when upgrading in place on the same server.
This technique has worked on every upgrade I’ve done to date and also had the added benefit of being able to do a clean scratch install of everything including a higher level of the OS without impacting older existing production.
Here is a directory listing of my /cloverleaf directory on my newer cloverleaf 6.0 server to help illustrate
drwxrwxr-x 3 hci staff 256 Feb 8 2013 cis6.0
lrwxrwxrwx 1 hci staff 41 Mar 1 2013 qdx5.6 -> /nfs/mdahub4sna/upgrade/cloverleaf/qdx5.6
Russ Ross
RussRoss318@gmail.com