Hi folks, thought I'd give back a little,
we have many directories on our UNIX servers that contain application development code, some of it is very old of course. And of course we can't just delete it. So I wanted a quick a dirty way to save it to TSM. I wrote a little script that archives a directory (and sub dirs) to TSM and leaves a script in the directory to do the restore, so you don't have to look very hard when you need the files.
Have a look at the script if you think this could help you. You will have to change the default archive management class. I made one called 'forever' (which is 9999 days). Please test it before you run it on your production servers! Be careful which input directory you use also, the script runs a 'rm -r $DIRECTORY/*'.
These are the key lines of code: # archive it dsmc arch -archmc=$ARCHMC -desc="$DIRECTORY $DATE" ${DIRECTORY}/ # delete it rm -r ${DIRECTORY}/* #make a script echo dsmc retrieve -desc=\"$DIRECTORY $DATE\" ${DIRECTORY}/ >$OUT_FILE
Miles
You might want to change the line
if [[ $DIRECTORY = '/' || $DIRECTORY = '/usr' || $DIRECTORY = '/etc' || $DIRECTORY = '/var' ||
to include ("${DIRECTORY} = "")
as well to catch a NULL (Implied root)
H
#!/usr/bin/ksh # # Name: archive_directory # # Purpose: Will send a directory and all its subdirectories to TSM, to save disk space, # leaving a script to restore the directory. # # Date: 5 Mar 2003 # # Required Parameters: # ------------------------------------------------------------------------- # Directory - the full path of the directory to archive # # Optional Parameters: # ------------------------------------------------------------------------- # None. # # Change History: # # Date Name Comments # _________________________________________________________________________ # 5 Mar 2003 purdym new
# Verify command line arguments if [[ $# -lt 1 ]] then echo echo "Usage: $0 directory [archive_management_class]" echo exit -1 fi
# command line args DIRECTORY=$1 MC=$2 ARCHMC=${MC:=forever} # put your default archiving MC here
WORK_DIR=${WORK_DIR:=/tmp} COLUMNS=`stty -a 2>/dev/null | grep columns | cut -d" " -f6`
UNIX_SYSTEM_DIRECTORY=${UNIX_SYSTEM_DIRECTORY:=/home/unxsa} SCRDIR=$UNIX_SYSTEM_DIRECTORY/bin
SEP="==========================================================================================================" SEP1="---------------------------------------------------------------------------------------------------------" RETCODE=0 RETCODE1=0 RETCODE1=$?; if [[ $RETCODE -eq 0 ]]; then RETCODE=$RETCODE1; fi
OUT_FILE=$DIRECTORY/run_me_to_restore_this_directory_from_tsm.$$ DATE=`date +%d%b%Y_%H:%M:%S` ################################################################################### # ################################################################################### echo "\n\n$0 started at $(date)." echo $SEP1 | cut -c -${COLUMNS}
if [[ $DIRECTORY = '/' || $DIRECTORY = '/usr' || $DIRECTORY = '/etc' || $DIRECTORY = '/var' || $DIRECTORY = '/home' ]] then echo "Can't use $DIRECTORY." exit -1 fi
if [[ `whoami` != "root" ]] then echo "Error: this script can only be run by root." exit -1 fi
if [[ -f $OUT_FILE ]] then exit -1 fi
# first let's archive it echo running dsmc arch -archmc=$ARCHMC -desc="$DIRECTORY $DATE" ${DIRECTORY}/ dsmc arch -archmc=$ARCHMC -desc="$DIRECTORY $DATE" ${DIRECTORY}/ RETCODE1=$?; if [[ $RETCODE -eq 0 ]]; then RETCODE=$RETCODE1; fi if [[ $RETCODE1 -ne 0 ]] then exit -1 fi
echo running rm -r ${DIRECTORY}/ rm -r ${DIRECTORY}/* RETCODE1=$?; if [[ $RETCODE -eq 0 ]]; then RETCODE=$RETCODE1; fi
echo dsmc retrieve -desc=\"$DIRECTORY $DATE\" ${DIRECTORY}/ >$OUT_FILE chmod 700 $OUT_FILE RETCODE1=$?; if [[ $RETCODE -eq 0 ]]; then RETCODE=$RETCODE1; fi
################################################################################### # ################################################################################### echo "\n\n$0 Ended at $(date)" echo $SEP1 | cut -c -${COLUMNS}
exit $RETCODE
---------------------------------------------------------------------------------------------- Miles Purdy System Manager Information Systems Team (IST), Farm Income Programs Directorate (FIPD), Agriculture and Agri-Food Canada (AAFC) Winnipeg, MB, CA [EMAIL PROTECTED] ph: (204) 984-1602 fax: (204) 983-7557
"If you hold a UNIX shell up to your ear, can you hear the C?" -------------------------------------------------------------------------------------------------
--
I don't suffer from Insanity... | Linux User #16396
I enjoy every minute of it... |
|
http://www.travellingkiwi.com/ |
