This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re:Cron.Hourly



How do I get the folders /etc/cron.hourly, etc/cron.daily etc/cron.weekly
correctly working in cygwin?
regards
-totte

Using etc/cron.* was an old way of doing things. Debian has long since dropped support for this. The only distro I know that still supports this is redhat.

Nevertheless, I know it can be very useful and I feel nice today so I will
tell you what you need to do.

(Caveat: I have not tested these, but they should work. I'm not certain of
the copyright but they clain to be from an old debian cron (despite saying
slackware) so the licence should be free.)

Add the folowing to the bootom of crontab (I think it is located at
etc/crontab):

------------------CUT HERE------------------
# Run scripts in cron.hourly on first minute of every hour
01 * * * * run-parts /etc/cron.hourly
# Run scripts in cron.daily at 0:02 each day
02 0 * * * run-parts /etc/cron.daily
#Run scripts in cron.weekly at 2:45 each Saturday
45 2 * * 6 run-parts /etc/cron.weekly
#Run scripts in cron.monthly at  0:03 on the firstday of each month
03 0 1 * * run-parts /etc/cron.monthly
#Run scripts in cron.yearly at 0:04 each January 1.
04 0 1 1 * run-parts /etc/cron.yearly
----------------END CUT HERE----------------


Then create /bin/run-parts using the text below. After you have created it run 'chmod 755 /bin/run-parts'.

------------------CUT HERE------------------#!/bin/bash
# run-parts:  Runs all the scripts found in a directory.

# keep going when something fails
set +e

if [ $# -lt 1 ]; then
 echo "Usage: run-parts <directory>"
 exit 1
fi

if [ ! -d $1 ]; then
 echo "Not a directory: $1"
 echo "Usage: run-parts <directory>"
 exit 1
fi

# There are several types of files that we would like to
# ignore automatically, as they are likely to be backups
# of other scripts:
IGNORE_SUFFIXES="~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp"

# Main loop:
for SCRIPT in $1/* ; do
 # If this is not a regular file, skip it:
 if [ ! -f $SCRIPT ]; then
   continue
 fi
 # Determine if this file should be skipped by suffix:
 SKIP=false
 for SUFFIX in $IGNORE_SUFFIXES ; do
   if [ ! "`basename $SCRIPT $SUFFIX`" = "`basename $SCRIPT`" ]; then
     SKIP=true
     break
   fi
 done
 if [ "$SKIP" = "true" ]; then
   continue
 fi
 # If we've made it this far, then run the script if it's executable:
 if [ -x $SCRIPT ]; then
   echo "$SCRIPT:"
   echo
   $SCRIPT 2>&1
   echo
 fi
done

exit 0
----------------END CUT HERE----------------

Finally here is a man page that you can place as run-parts.1 in
/usr/share/man/1/

------------------CUT HERE------------------
\" -*- nroff -*-
ds g \" empty
ds G \" empty
\" Like TP, but if specified indent is more than half
\" the current line-length - indent, use the default indent.
de Tp
ie \\n(.$=0:((0\\$1)*2u>(\\n(.lu-\\n(.iu)) .TP
el .TP "\\$1"
.
TH RUN-PARTS 8 "14 Apr 2002" "Slackware Version 8.1.0
SH NAME
run-parts \- run scripts found in a directory
SH SYNOPSIS
B run-parts <directory>
LP
SH DESCRIPTION
B run-parts
is a utility that will run scripts that are found in a directory.  For
example,
it might be useful to create an /etc/cron.daily directory and put scripts in
there for daily cron jobs.  Then
B run-parts
can be called once a day from root's crontab to run all the scripts found in
/etc/cron.daily:

40 4 * * * run-parts /etc/cron.daily

B run-parts
automatically skips files with certain suffixes that are generally
associated
with backup or extra files.  Any file that ends in one of these will be
silently
ignored:  ~ ^ , .bak .new .rpmsave .rpmorig .rpmnew .swp
SH AUTHOR
Patrick J. Volkerding <volkerdi@slackware.com>, with ideas borrowed from the
Red Hat and Debian versions of this utility.
SH "SEE ALSO"
BR crond(8),
BR crontab(8).
----------------END CUT HERE----------------


If that is all then goodbye.
Tacvek


--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]