Solved

Shell/Cron/Htdig Problems

Posted on 2004-09-07
1
324 Views
Last Modified: 2013-12-26
MacOS X 10.3.5 | Ht://Dig 3.1.6

When I execute the following command as root, everything works great.
$ sh /Library/Tenon/Htdig/bin/rundig-realtree.sh




When the system crontab executes the same command, I get errors:
htdig: Unable to open/create document database '/Library/Tenon/Htdig/db/www.realtree.com/db.docdb.work'

htmerge: Unable to create temporary word file '/Library/Tenon/Htdig/db/www.realtree.com/db.wordlist.work.new'




Here's the crontab:
0      2       *       *       *       root    sh /Library/Tenon/Htdig/bin/rundig-realtree.sh




Here are the contents of the shell script:
#! /bin/sh

if [ "$1" = "-v" ]; then
    verbose="-v"
fi

# This is the directory where htdig lives
BASEDIR=/Library/Tenon/Htdig

# This is the db dir
DBDIR=$BASEDIR/db/www.realtree.com

# This is the directory htdig will use for temporary sort files
TMPDIR=/tmp
export TMPDIR

# This is the name of a temporary report file
REPORT=$TMPDIR/htdig.realtree

# This is who gets the report
REPORT_DEST="webmaster@grayloon.com"
export REPORT_DEST

# This is the subject line of the report
SUBJECT="ht://Dig Report for Realtree"

# This is the name of the conf file to use
CONF=www.realtree.com.conf

# This is the PATH used by this script. Change it if you have problems
#  with not finding wc or grep.
PATH=/usr/local/bin:/usr/bin:/bin

##### Dig phase

STARTTIME=`date`
echo Start time: $STARTTIME
echo rundig: Start time:   $STARTTIME > $REPORT
$BASEDIR/bin/htdig $verbose -s -a -c $BASEDIR/conf/$CONF >> $REPORT
TIME=`date`
echo Done Digging: $TIME
echo rundig: Done Digging: $TIME >> $REPORT

##### Merge Phase

$BASEDIR/bin/htmerge $verbose -s -a -c $BASEDIR/conf/$CONF >> $REPORT
TIME=`date`
echo Done Merging: $TIME
echo rundig: Done Merging: $TIME >> $REPORT

##### Cleanup Phase
# To enable htnotify, uncomment the following line
# $BASEDIR/bin/htnotify $verbose >>$REPORT

# To enable the soundex or endings search, uncomment the following line
$BASEDIR/bin/htfuzzy $verbose -c $BASEDIR/conf/$CONF endings

# Move the work files
mv $DBDIR/db.wordlist.work $DBDIR/db.wordlist
mv $DBDIR/db.docdb.work $DBDIR/db.docdb
mv $DBDIR/db.docs.index.work $DBDIR/db.docs.index
mv $DBDIR/db.words.db.work $DBDIR/db.words.db
END=`date`
echo End time: $END
echo rundig: End time:     $END >> $REPORT
echo

# Grab the important statistics from the report file
# All lines begin with htdig: or htmerge: or rundig:
fgrep "htdig:" $REPORT  
echo
fgrep "htmerge:" $REPORT
echo
fgrep "rundig:" $REPORT
echo

WC=`wc -l $REPORT`
echo Total lines in $REPORT: $WC

# Send out the report ...
mail -s "$SUBJECT - $STARTTIME" $REPORT_DEST < $REPORT

# ... and clean up
rm $REPORT
0
Comment
Question by:kernel-panic
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
1 Comment
 
LVL 38

Accepted Solution

by:
yuzh earned 125 total points
ID: 12002382
add:

#!/bin/sh

as the first line of your script rundig-realtree.sh

modify the crontab to run the script to use root's login ENV settings

eg:
su - root -c "/Library/Tenon/Htdig/bin/rundig-realtree.sh"

man su
to learn more details
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How to create frequencies of a variable from SAS dataset? 10 146
Get filename and folder into excel 7 89
zeroMAx challenge 20 135
mapBully challenge 6 200
Introduction: Finishing the grid – keyboard support for arrow keys to manoeuvre, entering the numbers.  The PreTranslateMessage function is to be used to intercept and respond to keyboard events. Continuing from the fourth article about sudoku. …
In this post we will learn different types of Android Layout and some basics of an Android App.
This video will show you how to get GIT to work in Eclipse.   It will walk you through how to install the EGit plugin in eclipse and how to checkout an existing repository.
Exchange organizations may use the Journaling Agent of the Transport Service to archive messages going through Exchange. However, if the Transport Service is integrated with some email content management application (such as an antispam), the admini…

752 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question