Need Urgent Help!!

I have onse script running a SOLARIS machine. This script will run every tuesday at 5.00 AM EST ........... the script may take one hour or two hour or may be a day....to complete............ My problem is incase if system gets panic and rebooted....... how will I come to know the status of the script............. this script loads some data.......... so i want to know if the script was in progress when system was rebooted or script was completed before the sytem got panic ... is there any way i can write a script whci sends me the status of the scipt........... capturing the details of the ststus............ I need this very urgetn as clients are on my head ....... and i have time till end of day ........ Please some one help on this..........

I tried trap command but it is not capturing the reboot signal.......

Below is the code....... Please advice if the below trap code is correct and usable or any other options........... need help ASAP...

#!/bin/ksh
cp /dev/null ~/scripts/trap/trap31.log
function moni {
while true
do
sleep 2
tput clear
echo "TEST"
done
}

function error_trap
{
DATE=`date`
echo "Program was killed at" $DATE >> trap31.log
#echo "Program killed" | mailx -s "Error Signal trapped" rk4083@att.com
}

trap error_trap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 45

moni

Regards,
Vangalli

If the kernel panics on Solaris, no running scripts will get any signals as the point of a panic is to immediatly halt any io of any kind to protect the system in the event of an inconsitancy. At the very least, there certainly won't be any emails getting out of the system between it deciding to panic and the rebot as this is exactly the sort of IO the system is trying to protect itself from.

So no, your code will not be able to react to a kernel panic sorry.

Instead, I would suggest you log the progress of the script at regular intervals instead. If you see a panic before it's finished, you'll be able to determine how far through it got from these logs.

If you need the script to be aware of this itself, add something into the rc2.d to bring up a watchdog of sorts once the system reboots (assuming it gets that far). This can look at the log you've made and make the approriate decisions or email for help.
You could even use dmesg, uptime and the /var/adm/messages logs to provide additional information as to the time and nature of the reboot.

We dont have root permsissions..... on our production box......... we have been given sudo access to some of the admin users.....

and if incase we need to capture the script progress .... i will do as below:

#####Supose below is my main script#####

#!/bin/ksh
function moni {
while true
do
echo "TEST"
done
}
:w abc.ksh

### Now i will call this script as below:#####

$nohup ./abc.ksh> ~/progress.log &

now the above command run in background..... now incase system gets panic........... how can i put a simple status........... for example the below three status to be added...........

IN PROGRESS
COMPLETE WITH SUCCESS
COMPLETE WITH FAIL

How to record this message in the log............ is there any simple way...

And also .......... how will the user be sent a status or alarm that script was abonded? because once he come to know that script got failed ... he will be prepared to run it again on the box , once box will come back

hope im not confusing you..........

Thansk and Regards,
Vangalli

cany anybody please help me out?

Well, it looks like you want:

echo "IN PROGRESS"
moni
echo "COMPLETE WITH SUCCESS"

You won't be able to put in "COMPLETE WITH FAIL" because you won't know that it failed.

Perhaps a "IN PROGRESS ($!)" and a "COMPLETE WITH SUCCESS ($!)" then a log scan for each at the beginning of the script. If you don't have matching pairs (you should have two entries for each $!), log a "COMPLETE WITH FAIL ($PID)".

Carl