I realised that there was not documentation for setting up cron jobs for evergreen, and that I hadn't done it myself already, so I decided to write some while I was going along. Its VERY incomplete, and probably has quite a few errors somebody should check though Nathanael Schilling
Cron Jobs Certain evergreen scripts need to be run at specific intervals. An example of this is the reshelving_complete script, which checks how long books have been in the reshelving status, and then flips them from the Reshelving copy status to the Available one. We will be using Cron for scheduling these scripts. 1)The Reshelving->Available script. This script, as mentioned earlier flips books from the reshelving to the available status. It resides in /openils/bin/reshelving_complete.srfsh . You will need to set a value for how long it takes your library to reshelve books. Open the reshelving_complete.srfsh file with your favourite text editor. You should get something like this: <file> #!/openils/bin/srfsh request open-ils.storage open- ils.storage.action.circulation.reshelving.complete "24h" </file> change the last part of line 2 (24h) to the length it takes your library to reshelve the book. This value can be seconds(e.g. 3s), minutes(e.g. 23m) or hours(e.g. 2h) or a mixture of these(e.g. 2h3m1s). The resulting line should look something like this: <file> request open-ils.storage open- ils.storage.action.circulation.reshelving.complete "3h2m1s" </file> In this example, the reshelving interval is 3h2m1s. Run the script to test whether it worked, if you get an error message , the reshelving interval was probably not set correctly, try setting it again. 2)The thaw expired holds script This script resides in /openils/bin/thaw_expired_frozen_holds.srfsh 3)The fine generator script You'll find this script in /openils/bin/fine_generator.pl This script generates your fines. You'll need to add the argument /openils/conf/opensrf_core.xml to this script later on. 4)The find orphaned reports script This script sits in /openils/bin/find_orphaned_reports.pl the name is self explanatory 5)The long overdue status update script This script sits in /openils/bin/long-overdue-status-update.pl You'll need to add “/openils/conf/opensrf_core.xml” and a number to specify what you mean with “long” as arguments later on. Note: you'll probably not need this one. 6)The Hold Targeter Script This script can be found in /openils/bin/hold-targeter.pl You'll need to add “/openils/conf/opensrf_core.xml” as an argument later on. TODO:Find arguments for this script 7)The offline blocked list This script can be found in /openils/bin/offline-blocked-list.pl The offline blocked list generates a list of "bad" patrons that the offline interface makes use of for warning staff So, you'll need to set a time for each of these scripts to run. If you haven't insThe talled cron yet, you'll need to install it now, it'll probably be installed already on most systems. Cron is basically a daemon that executes certain commands at regulat intervals. The file we will be editin is the opensrf crontab. Each user has their own crontab. It has the followin syntax: minute hour dayofmont month dayofweek user command minute- is the minute of the hour the command should run. hour – The hour it should run dayofmonth - the day of month is something like the 10th month- is the month, eg March. Can be specified as a number or name dayofweek – What day of the week should a command be run on e.g every tuesday. This can be numeric(e.g. 2) or oa name (e.g tues) – Note : the numeric value for Sunday is zero (0) user – The user that should run the command. You'll only need this if you're editing the global crontab cmd- The command to be run. If you wish to leave a value blank, put an asterix there (*) and here is a sample row in this table: 17 * * * * root do_something this would run the command do_something on the 17th minute of every hour as the user root. To edit the opensrf user's crontab, do <command> crontab -e </command> For each of the scripts I listed earlier, add an entry. e.g. if you wanted the thaw_expired_frozen_holds.srfsh script to be run the first minute of every hour, insert something like: <file> 01 * * * /openils/bin/ reshelving_complete.srfsh </file> or, if you want to run the fine_generator.pl at 4am wednesday: <file> 00 04 * wed /openils/bin/ fine_generator.pl /openils/conf/opensrf_core.xml </file> You'll need to add entries for all of the scripts mentioned above. Add the arguments specified aboce Set all the cron values to a sensible value, so you don't end up running theses scripts every hour. Every day would probably be sensible. _______________________________________________ OPEN-ILS-DOCUMENTATION mailing list [email protected] http://list.georgialibraries.org/mailman/listinfo/open-ils-documentation
