#! /bin/sh # # botchk # # $Id: botchk,v 1.6 2002-02-27 18:21:46 guppy Exp $ # # This is a script suitable for use in a crontab. It checks to make sure # your bot is running. YOU NEED A SEPARATE CRON JOB FOR EACH BOT. If your # bot isn't found, it'll try to start it back up. # # You'll need to edit this script for your bot. # # To check for your bot every 10 minutes, put the following line in your # crontab: # 0,10,20,30,40,50 * * * * /home/mydir/mybot/botchk # And if you don't want to get email from crontab when it checks you bot, # put the following in your crontab: # 0,10,20,30,40,50 * * * * /home/mydir/mybot/botchk >/dev/null 2>&1 # # change this to the directory you run your bot from (capitalization COUNTS): botdir="/home/sagar/eggdrop" # change this to the name of your bot's config file (capitalization COUNTS): botscript="/home/sagar/eggdrop/eggdrop.conf" # change this to the botnet-nick of your bot (capitalization COUNTS): botname="HamaraBot.chan" # change this to the name of your bot's userfile (capitalization COUNTS): userfile="HamaraBot.user" # change this to the name of your bot's pidfile (capitalization COUNTS): pidfile="/var/run/hamarabot.pid" ########## you probably don't need to change anything below here ########## cd $botdir # is there a pid file? if test -r $pidfile then # there is a pid file -- is it current? botpid=`cat $pidfile` if `kill -CHLD $botpid >/dev/null 2>&1` then # it's still going -- back out quietly echo "Bot is running " exit 0 fi echo "Bot is not running." echo "Stale $pidfile file, erasing..." rm -f $pidfile fi if test -r CANTSTART.$botname then if test -r $userfile || test -r $userfile~new || test -r $userfile~bak then echo "" echo "Userfile found, removing check file 'CANTSTART.$botname'..." rm -f CANTSTART.$botname fi fi # test if we have run botchk previously and didn't find a userfile if test ! -f CANTSTART.$botname then echo "" echo "Couldn't find bot '$botname' running, reloading..." echo "" # check for userfile and reload bot if found if test -r $userfile then # It's there, load the bot $botscript exit 0 else if test -r $userfile~new then # Bot f*@!ed up while saving the userfile last time. Move it over. echo "Userfile missing. Using last saved userfile..." mv -f $userfile~new $userfile $botscript exit 0 else if test -r $userfile~bak then # Userfile is missing, use backup userfile. echo "Userfile missing. Using backup userfile..." cp -f $userfile~bak $userfile $botscript exit 0 else # Well, nothing to work with... echo "No userfile. Could not reload the bot..." echo "no userfile" > CANTSTART.$botname exit 1 fi fi fi fi