cd
test -f installed/dcron-2.3.3.tar.gz && mv installed/dcron-2.3.3.tar.gz .
test ! -f dcron-2.3.3.tar.gz &&
wget http://ibiblio.org/pub/Linux/system/daemons/cron/dcron-2.3.3.tar.gz
cd /usr/local/src
find -type d -maxdepth 1 -name "dcron-*" -exec rm -r {} \;
tar xzvf ~/dcron-2.3.3.tar.gz
cd dcron-2.3.3
chown -R root.root .
# Slackware 8.1+ has a separate dcron package, before 8.1 it was in the bin
# package. If you have < 8.1, do this to clear mention of the old one out
# of /var/adm/packages/bin, then remove the old docs and man pages
# (the binaries will be replaced):
FNAME=`find /var/adm/packages/bin* -type f | head -1`
cat $FNAME | \
grep -v "^usr/bin/crontab$" | \
grep -v "^usr/sbin/crond$" | \
grep -v "^usr/doc/dcron-" | \
grep -v "^usr/man/man1/crontab.1.gz$" | \
grep -v "^usr/man/man8/crond.8.gz$" > ${FNAME}.new
test -s ${FNAME}.new &&
(
mkdir -p ~/backup/packages
mv -f $FNAME ${FNAME}.`date +%Y%m%d`
mv ${FNAME}.`date +%Y%m%d` ~/backup/packages/
mv -f ${FNAME}.new $FNAME
)
FNAME=
find /usr/doc -type d -maxdepth 1 -name "dcron-*" -exec rm -r {} \;
rm -f /usr/man/man1/crontab.1.gz /usr/man/man8/crond.8.gz
# Back up existing crontabs:
mkdir -p -m 0700 ~/backup
tar cjvf ~/backup/crontabs-`date +%Y%m%d`.tar.bz2 /var/spool/cron/crontabs/*
chmod 600 ~/backup/crontabs-`date +%Y%m%d`.tar.bz2
# I took the 5 patches that are used to build the Slackware package (as of
# slackware-current Jan 6, 2003) for dcron and combined them into one patch.
cd
wget http://englanders.cc/pub/linux/patches/dcron-2.3.3.patch
cd /usr/local/src/dcron-2.3.3
patch -p1 < ~/dcron-2.3.3.patch && rm ~/dcron-2.3.3.patch
# No need to strip the binaries, the makefile already does that
# crond will log to syslog at log level 8 by default. To shut off logging
# pass it -l 10, to increase logging use 8 or lower. To log to a file use
# -L /var/log/cron. Slack used to run it like this:
# "/usr/sbin/crond -l8 >>/var/adm/cron 2>&1"
# this is no longer necessary due to the patches that have been applied.
# crond usually starts out of rc.M, if you don't already have it in there,
# add something like this to rc.local:
if [ -x /usr/sbin/crond ]; then
echo "Starting crond..."
/usr/sbin/crond -l10
fi