# Author: Joe Atzberger <atz@liblime.com>
#
# This is an example of a crontab file for Debian. It may not work
-# in other versions of crontab, like on Solaris 8, for example.
+# in other versions of crontab, like on Solaris 8 or BSD, for example.
#
-# While similar in strcture,
+# While similar in structure,
# this is NOT an example for cron (as root). Cron takes an extra
# argument per line to designate the user to run as. You could
-# reasonably extrapoloate the needed info from here though.
+# reasonably extrapolate the needed info from here though.
#
# WARNING: These jobs will do things like charge fines, send
# potentially VERY MANY emails to patrons and even debar offending
# ENVIRONMENT:
# First, establish Koha's two important ENV variables.
-PERL5LIB=/home/liblime/kohaclone
-KOHA_CONF=/home/liblime/kohaclone/etc/koha-conf.xml
+PERL5LIB=/usr/share/koha/lib
+KOHA_CONF=/etc/koha/koha-conf.xml
+# Some additional variables to save you typing
+KOHA_CRON_PATH = /usr/share/koha/bin/cronjobs
#
# MULTIPLE KOHA SUPPORT:
-# You can still run jobs for this user's additional koha installs.
+# You can still run jobs for this user's additional koha installs,
+# by manipulating those variables in the command.
#
# For example, on the same codebase:
-# */10 * * * * KOHA_CONF=/home/liblime/koha-test/etc/koha-conf.xml /home/liblime/kohaclone/misc/migration_tools/rebuild_zebra.pl -b -z >/dev/null
+# */10 * * * * __KOHA_USER__ KOHA_CONF=/etc/koha/koha-conf.xml /usr/share/koha/bin/migration_tools/rebuild_zebra.pl -b -a -z >/dev/null
#
# For example, on a separate codebase:
-# */10 * * * * KOHA_CONF=/home/liblime/koha-test/etc/koha-conf.xml PERL5LIB=/home/liblime/koha-test /home/liblime/koha-test/misc/migration_tools/rebuild_zebra.pl -b -z >/dev/null
+# */10 * * * * __KOHA_USER__ KOHA_CONF=/etc/koha/koha-conf.xml PERL5LIB=/home/koha/kohaclone /home/koha/kohaclone/misc/migration_tools/rebuild_zebra.pl -b -a -z >/dev/null
#
+# ADDITIONAL INFO:
+# See the perldoc of individual scripts to determine what other options
+# are available. Check the man page for crontab to understand the
+# schedule syntax for your system.
#
-# SCHEDULED JOBS:
-# Don't forget to keep the empty line at the bottom.
+# NOTE: Don't forget to keep the empty line at the bottom.
# Cron/crontab will choke without it.
#
-# m h dom mon dow command
-0 1 * * * /home/liblime/kohaclone/misc/cronjobs/overdue_notices.pl
-5 1 * * * /home/liblime/kohaclone/misc/cronjobs/fines-ll.pl
-10 1 * * * /home/liblime/kohaclone/misc/cronjobs/advance_notices.pl -c
-15 * * * * /home/liblime/kohaclone/misc/cronjobs/process_message_queue.pl
-*/10 * * * * /home/liblime/kohaclone/misc/migration_tools/rebuild_zebra.pl -b -z >/dev/null
+# SCHEDULED JOBS:
+# m h dom mon dow user command
+
+
+# AUTOMATIC RENEWAL + AUTOMATIC CHECK-IN + FINES + OVERDUE NOTICES
+# Sequence is important - renew what can be renewed, check things in if set to, charge fines for the rest, print fine amount into overdue notices
+5 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/automatic_renewals.pl -c; $KOHA_CRON_PATH/automatic_checkin.pl ; $KOHA_CRON_PATH/fines.pl; $KOHA_CRON_PATH/overdue_notices.pl -t
+
+# ADVANCE NOTICES
+10 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/advance_notices.pl -c
+
+# MEMBERSHIP_EXPIRY NOTICES
+
+15 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/membership_expiry.pl -c
+
+# SERIALS UPDATE
+18 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/serialsUpdate.pl -c
+
+# PROCESS LONG OVERDUES
+# updates item status from available to longoverdue for items long overdue
+# 19 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/longoverdue.pl --lost 90=1 --confirm
+
+# SEND EMAILS
+15 * * * * __KOHA_USER__ $KOHA_CRON_PATH/process_message_queue.pl
+
+# Hourly holds queue updated
+52 * * * * __KOHA_USER__ $KOHA_CRON_PATH/holds/build_holds_queue.pl >/dev/null 2>&1
+
+# Cancel expired holds
+0 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/holds/cancel_expired_holds.pl >/dev/null 2>&1
+
+# Auto unsuspend holds
+0 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/holds/auto_unsuspend_holds.pl > /dev/null 2>&1
+
+# Update popularity counts for biblio records
+0 2 * * * __KOHA_USER__ $KOHA_CRON_PATH/update_totalissues.pl --commit=1000 --use-stats --incremental --interval=1d >/dev/null 2>&1
+
+# ZEBRA INDEX UPDATES with -z option, incremental index updates throughout the day
+# for both authorities and bibs
+*/10 * * * * __KOHA_USER__ $KOHA_CRON_PATH/../migration_tools/rebuild_zebra.pl -b -a -z >/dev/null
+
+# clean up databases nightly. Be sure not to run this with --sessions during a time when the system is in use!
+16 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/cleanup_database.pl --confirm --sessions --zebraqueue 10 --list-invites --temp-uploads
+
+# delete old purchase suggestions weekly. Replace XX with a number to define the age of suggestions to delete.
+@weekly __KOHA_USER__ $KOHA_CRON_PATH/purge_suggestions.pl --confirm --days XX > /dev/null 2>&1
+
+# share_usage_with_koha_community.pl every months
+0 0 1 * * __KOHA_USER__ $KOHA_CRON_PATH/share_usage_with_koha_community.pl
+
+# run merge authorities
+20 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/merge_authorities.pl -b
+# PLUGIN JOBS
+10 1 * * * __KOHA_USER__ $KOHA_CRON_PATH/plugins_nightly.pl