# Evergreen crontab.example # Author: Joe Atzberger, ESI # Author: Bill Erickson, ESI # # This is an example of a crontab file for Debian. It may not work # in other versions of crontab, like on Solaris 8 or BSD, for example. # # 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 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 # users. DO NOT RUN OR SCHEDULE these jobs without being sure you # really intend to. Make sure the relevant message templates are # configured to your liking before scheduling messages to be sent. # # Except where indicated, these processes only need to run # on 1 Evergreen server/brick. # ENVIRONMENT: # First, establish Evergreen ENV variables. # OPENILS = /openils SRF_CORE = /openils/conf/opensrf_core.xml EG_BIN_DIR = /openils/bin # crontab format: # m h dom mon dow command # Run the hold targeter */15 * * * * . ~/.bashrc && $EG_BIN_DIR/hold_targeter.pl --osrf-config $SRF_CORE # Run the hold thawer 5 0 * * * . ~/.bashrc && $EG_BIN_DIR/thaw_expired_frozen_holds.srfsh # Generate fines 30 0 * * * . ~/.bashrc && $EG_BIN_DIR/fine_generator.pl $SRF_CORE # Run the reshelving completer 2 0 * * * . ~/.bashrc && $EG_BIN_DIR/reshelving_complete.srfsh # Run the pending user purger 30 2 * * * . ~/.bashrc && $EG_BIN_DIR/purge_pending_users.srfsh # create the list of blocked patrons for offline use # Note: The resulting list.txt file needs to be copied to all Apache servers 30 6 * * * . ~/.bashrc && $EG_BIN_DIR/offline-blocked-list.pl $SRF_CORE > $OPENILS/var/web/standalone/list.txt # Restart SIP nightly to free up any orphaned processes. # Note: Run on all SIP servers # 5 2 * * * . ~/.bashrc && oils_ctl.sh -d $OPENILS/var/pid -s $OPENILS/conf/oils_sip.xml -a stop_sip # 8 2 * * * . ~/.bashrc && oils_ctl.sh -d $OPENILS/var/pid -s $OPENILS/conf/oils_sip.xml -a start_sip # Run the circ history cleanup job # Note: destroys link between user and item #2 0 * * * . ~/.bashrc && $EG_BIN_DIR/clear_expired_circ_history.srfsh # Run the hard due date updater 2 3 * * * . ~/.bashrc && $EG_BIN_DIR/update_hard_due_dates.srfsh # Run the credit card number clearing script #5 4 * * * . ~/.bashrc && $EG_BIN_DIR/clear_cc_number.srfsh # Calculate scores for popularity badges #30 4 * * * . ~/.bashrc && $EG_BIN_DIR/badge_score_generator.pl $SRF_CORE # Action/Trigger entries ---- # Runs all pending A/T events every half hour */30 * * * * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --run-pending # Passive A/T event generation. # Note: push these back to 3am so they will run after the fine generator and spread out the start minute to reduce dogpiling 0 * * * * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity hourly 5 3 * * * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity daily 10 3 * * 1-5 . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity weekdays 15 3 * * 0 . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity weekly 20 3 1 * * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity monthly 25 3 1 1 * . ~/.bashrc && $EG_BIN_DIR/action_trigger_runner.pl --osrf-config $SRF_CORE --process-hooks --granularity yearly # Purge old A/T events 15 1 * * * . ~/.bashrc && $EG_BIN_DIR/purge_at_events.srfsh # Legacy overdue/predue notice generator. Change to suit. #XML_FILE_PREFIX = /openils/var/data/overdue/overdue #0 3 * * * . ~/.bashrc && cd $EG_BIN_DIR && ./generate_circ_notices.pl --osrf_config $SRF_CORE --notice-types overdue,predue --generate-global-templates --send-email > $XML_FILE_PREFIX.$(date +"\%F").xml # TODO: add other entries