# How your system names core files
#
# This is a pattern rather than a name, because modern kernels can put
-# fancy stuff in the name we can't always predict.
+# fancy stuff in the name we can't always predict. Modern user space
+# can squirrel away core dumps in fancy places; you may need to switch
+# that off for this insufficiently fancy script to work.
core_pattern=core.*
#core_pattern=emp_server.core
#core_pattern=core
# End of configuration
saved=
+core_name=
alert_deity ()
{
- local msg;
+ local msg
if [ "$saved" ]
then msg="Core dump $saved_core saved."
- else msg="Could not save core dump."
+ elif [ "$core_name" ]
+ then msg="Could not save core dump $core_name."
+ else msg="Could not find core dump to save."
fi
- echo $msg | $mailx -s "emp_server dumped core in $PWD" "$privlog"
+ echo "$msg" | $mailx -s "emp_server dumped core in $PWD" "$privlog"
}
test -n "$privlog" && trap 'alert_deity' EXIT
-core_name=`ls -td $core_pattern | head -n 1`
+core_name=`ls -td $core_pattern 2>/dev/null | head -n 1`
test -n "$core_name"
test -r "$core_name"
tstamp=`/bin/date +%Y-%m-%d-%H:%M`
mkdir -p $core_dir
if [ `df -kP $core_dir | awk 'NR!=1 { print $4 }'` -lt "$space_low" ]
-then rm -f $core_name; exit
+then rm -f "$core_name"; exit
fi
-mv -f $core_name $saved_core
+mv -f "$core_name" $saved_core
saved=y