05-08-2013
Hpux and bacula script
Code :
[root@hpux /]# bacula status
/opt/bacula/bin/bacula-ctl-fd[22]: UNIX95=1;: not found
bacula-fd is stopped
Code :
#! /bin/sh
#
# bacula-ctl-fd This shell script takes care of starting and stopping
# the bacula File daemon.
#
# This is pretty much watered down version of the RedHat script
# that works on Solaris as well as Linux, but it won't work everywhere.
#
# description: The Leading Open Source Backup Solution.
#
PSCMD="UNIX95=1; ps -e -o pid,comm"
PS="ps"
#
# On Solaris, you may need to use nawk, or alternatively,
# add the GNU binaries to your path, such as /usr/xpg4/bin
#
AWK=/usr/bin/awk
# All these are not *really* needed but it makes it
# easier to "steal" this code for the development
# environment where they are different.
#
BACFDBIN=/opt/bacula/sbin
BACFDCFG=/etc/opt/bacula
PIDDIR=/var/run
SUBSYSDIR=/var/run/subsys
FD_PORT=9102
FD_USER=
FD_GROUP=
Bacula="Bacula"
PIDOF=pidof
# A function to stop a program.
killproc() {
RC=0
# Test syntax.
if [ $# = 0 ]; then
echo "Usage: killproc {program} {port} [signal]"
return 1
fi
notset=0
# check for third arg to be kill level
if [ "$3" != "" ] ; then
killlevel=$3
else
notset=1
killlevel="-9"
fi
# Get base program name
base=`basename $1`
# Find pid.
pid=`pidofproc $base $2`
# Kill it.
if [ "$pid" != "" ] ; then
if [ "$notset" = "1" ] ; then
if ${PS} -p "$pid">/dev/null 2>&1; then
# TERM first, then KILL if not dead
kill -TERM $pid 2>/dev/null
sleep 1
if ${PS} -p "$pid" >/dev/null 2>&1 ; then
sleep 1
if ${PS} -p "$pid" >/dev/null 2>&1 ; then
sleep 3
if ${PS} -p "$pid" >/dev/null 2>&1 ; then
kill -KILL $pid 2>/dev/null
fi
fi
fi
fi
${PS} -p "$pid" >/dev/null 2>&1
RC=$?
[ $RC -eq 0 ] && failure "$base shutdown" || success "$base shutdown"
# RC=$((! $RC))
# use specified level only
else
if ${PS} -p "$pid" >/dev/null 2>&1; then
kill $killlevel $pid 2>/dev/null
RC=$?
[ $RC -eq 0 ] && success "$base $killlevel" || failure "$base $killlevel"
fi
fi
else
failure "$base shutdown"
fi
# Remove pid file if any.
if [ "$notset" = "1" ]; then
rm -f ${PIDDIR}/$base.$2.pid
fi
return $RC
}
# A function to find the pid of a program.
pidofproc() {
pid=""
# Test syntax.
if [ $# = 0 ] ; then
echo "Usage: pidofproc {program}"
return 1
fi
# Get base program name
base=`basename $1`
# First try PID file
if [ -f ${PIDDIR}/$base.$2.pid ] ; then
pid=`head -n 1 ${PIDDIR}/$base.$2.pid`
if [ "$pid" != "" ] ; then
echo $pid
return 0
fi
fi
# Next try "pidof"
if [ -x ${PIDOF} ] ; then
pid=`${PIDOF} $1`
fi
if [ "$pid" != "" ] ; then
echo $pid
return 0
fi
# Finally try to extract it from ps
pid=`${PSCMD} | grep $1 | ${AWK} '{ print $1 }' | tr '\n' ' '`
echo $pid
return 0
}
status() {
pid=""
# Test syntax.
if [ $# = 0 ] ; then
echo "Usage: status {program} {port}"
return 1
fi
# Get base program name
base=`basename $1`
# First try "pidof"
if [ -x ${PIDOF} ] ; then
pid=`${PIDOF} $1`
fi
if [ "$pid" != "" ] ; then
echo "$base (pid $pid) is running..."
return 0
else
pid=`${PSCMD} | ${AWK} 'BEGIN { prog=ARGV[1]; ARGC=1 }
{ if ((prog == $2) || (("(" prog ")") == $2) ||
(("[" prog "]") == $2) ||
((prog ":") == $2)) { print $1 ; exit 0 } }' $1`
if [ "$pid" != "" ] ; then
echo "$base (pid $pid) is running..."
return 0
fi
fi
# Next try the PID files
if [ -f ${PIDDIR}/$base.$2.pid ] ; then
pid=`head -n 1 ${PIDDIR}/$base.$2.pid`
if [ "$pid" != "" ] ; then
echo "$base dead but pid file exists"
return 1
fi
fi
# See if the subsys lock exists
if [ -f ${SUBSYSDIR}/$base ] ; then
echo "$base dead but subsys locked"
return 2
fi
echo "$base is stopped"
return 3
}
success() {
return 0
}
failure() {
rc=$?
return $rc
}
OS=`uname -s`
# if /lib/tls exists, force Bacula to use the glibc pthreads instead
if [ -d "/lib/tls" -a $OS = "Linux" -a `uname -r | cut -c1-3` = "2.4" ] ; then
export LD_ASSUME_KERNEL=2.4.19
fi
case "$1" in
start)
[ -x ${BACFDBIN}/bacula-fd ] && {
echo "Starting the $Bacula File daemon"
OPTIONS=''
if [ "${FD_USER}" != '' ]; then
OPTIONS="${OPTIONS} -u ${FD_USER}"
fi
if [ "${FD_GROUP}" != '' ]; then
OPTIONS="${OPTIONS} -g ${FD_GROUP}"
fi
if [ "x${VALGRIND_FD}" = "x1" ]; then
valgrind --leak-check=full ${BACFDBIN}/bacula-fd $2 $3 ${OPTIONS} -v -c ${BACFDCFG}/bacula-fd.conf
else
${BACFDBIN}/bacula-fd $2 $3 ${OPTIONS} -v -c ${BACFDCFG}/bacula-fd.conf
fi
}
;;
stop)
# Stop the FD first so that SD will fail jobs and update catalog
[ -x ${BACFDBIN}/bacula-fd ] && {
echo "Stopping the $Bacula File daemon"
killproc ${BACFDBIN}/bacula-fd ${FD_PORT}
}
;;
restart)
$0 stop
sleep 5
$0 start
;;
status)
[ -x ${BACFDBIN}/bacula-fd ] && status ${BACFDBIN}/bacula-fd ${FD_PORT}
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Someone can help please?
Last edited by Scrutinizer; 05-09-2013 at 05:52 PM ..
Reason: Additional code tags
4 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I am running HPUX and using WLM (workload manager). I want to write a script to fork CPUs to basically take CPUs from other servers to show that the communication is working and CPU licensing is working. Basically, I want to build a script that will use up CPU on a server. Any ideas? (2 Replies)
Discussion started by: cpolikowsky
2 Replies
2. Linux
Hi,
We are looking for the extensive list of Commands/Syntax that were working in HP-UX and will not work on LINUX.
We would find such commands and modify them accordingly.
Do we have any reference sites or documents.
You help would be greatly appreciated.
Thanks in advance (2 Replies)
Discussion started by: vijaipersonal
2 Replies
3. HP-UX
I'm sharing this in case anybody needs it. Modified from the original solaris pwage script. This modified hpux script will check /etc/password file on hpux trusted systems search /tcb and grep the required u_succhg field. Calculate days to expiry and notify users via email.
original solaris... (2 Replies)
Discussion started by: sparcguy
2 Replies
4. HP-UX
This work
#!/usr/bin/sh
COMM=${1}
shift
UNIX95=1 ps -C ${COMM} -o pid='' | while read P
do
kill -15 ${P}
done
This don't work
#!/usr/bin/sh
COMM=${1}
shift
UNIX95=1 ps -C ${COMM} -o pid='' | while read P
do
kill -"$@" ${P}
done (7 Replies)
Discussion started by: Linusolaradm1
7 Replies