* * $Id: cdbackup.dat,v 1.2 1996/04/16 10:09:02 jamie Exp $ * * $Log: cdbackup.dat,v $ * Revision 1.2 1996/04/16 10:09:02 jamie * bring in sync with /afs/cern.ch/project/hepdb/scripts, aix 4 upgrade * * Revision 1.1.1.1 1996/02/28 16:24:01 mclareni * Hepdb, cdlib, etc * * #if defined(CERNLIB_UNIX) #!/bin/ksh d=`date` echo echo CDBACKUP running at $d echo # # Fix for CERNSP based fatcat server # this_host=`hostname` if [ $this_host = "sp019" ] then export CDHOST=hepdb echo ${0}: setting HEPDB hostname to $CDHOST fi # # Delete old backup files # find /cdback0 -name *.[0-9]* -mtime +4 -exec rm {} \; find /cdback1 -name *.[0-9]* -mtime +4 -exec rm {} \; # # Loop over all HEPDB servers and # stop them # copy all database files to the backup area, verifying in the process # restart current server # log=" " run=" " nos=" " b="." # # Ensure that variables are defined... # for i in /hepdb/cd* do typeset -u cdgrp typeset -l cdserv cdpath=$i cdgrp=`basename $i` cdserv=$cdgrp eval $cdgrp=$cdpath;export $cdgrp # # Skip CDMOVE # if test $cdserv != "cdmove" then # # and stop those servers that are running... # if [ -x ${i}/cdserv ] then # # does a log file exist? # if [ -f /hepdb/${cdgrp}.log ] then echo Log file exists for ${cdgrp} - looking for existing process log=${log}${b}${cdgrp} pid=`cat /hepdb/${cdgrp}.log | awk '{printf "%s\n",$14}'` if (test $pid) then echo Looking for server process for $cdgrp if(ps -ae | grep -ws $pid ) then echo CDSERV running PID = $pid run=${run}${b}${cdgrp} d=`date` echo Stopped at $d for backup > /hepdb/${cdserv}/todo/signal.stop # # Wait until the server is stopped # while (ps -ae | grep -s $pid ) do d=`date` echo Server ${cdserv} still running - sleeping at $d sleep 60 done # # Check that output directory exists # if [ ! -d /cdback/${cdserv} ] then echo Creating directory /cdback/${cdserv} mkdir /cdback/${cdserv} fi # # Server is now stopped - backup RZ files # echo Backing up HEPDB files in /hepdb/${cdserv} ... /afs/cern.ch/project/hepdb/@sys/bin/cdbackup /hepdb/${cdserv} \ /cdback/${cdserv} >> /cdback/cdback.log rc=$? if [ $rc -ne 0 ] then echo RC = $rc for backup of RZ file for ${cdserv} | mail \ -s "HEPDB backup for ${cdserv}" hepdb-mgr@zfatal.cern.ch fi # # Touch good backup file(s) # touch /cdback/${cdserv}/*.good # # and copy over names file for save keeping # cp -p /hepdb/${cdserv}/hepdb.names /cdback/${cdserv} # # Now restart server # d=`date` echo Restarting server for ${cdserv} at ${d} rm /hepdb/${cdserv}/todo/signal.stop cwd=`pwd` cd /hepdb/${cdserv} nohup /hepdb/${cdserv}/cdserv ${cdgrp} > /hepdb/${cdserv}/cdserv.log & cd ${cwd} else echo No existing server found for $cdgrp echo Removing old log file... rm /hepdb/${cdgrp}.log nos=${nos}${b}${cdgrp} fi fi fi fi fi done echo echo Log files found for $log | tr '.' ' ' echo Servers running for $run | tr '.' ' ' echo No server found for $nos | tr '.' ' ' #endif