Celebrate National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Shell/Cron/Htdig Problems

Posted on 2004-09-07
1
Medium Priority
?
340 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 375 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

Moving data to the cloud? Find out if you’re ready

Before moving to the cloud, it is important to carefully define your db needs, plan for the migration & understand prod. environment. This wp explains how to define what you need from a cloud provider, plan for the migration & what putting a cloud solution into practice entails.

Question has a verified solution.

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

This is to be the first in a series of articles demonstrating the development of a complete windows based application using the MFC classes.  I’ll try to keep each article focused on one (or a couple) of the tasks that one may meet.   Introductio…
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.
This is my first video review of Microsoft Bookings, I will be doing a part two with a bit more information, but wanted to get this out to you folks.

730 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