Solved

Shell/Cron/Htdig Problems

Posted on 2004-09-07
1
285 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
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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Title # Comments Views Activity
xyBalance chalenge 58 88
repeatEnd java challenge 42 84
not able to insert into temp table 68 156
matchUp  challenge 6 52
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. …
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
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.
Get a first impression of how PRTG looks and learn how it works.   This video is a short introduction to PRTG, as an initial overview or as a quick start for new PRTG users.

948 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now