Cron jobs and daemons
Koha is supported by a number of background tasks. These tasks can either be periodically executed tasks (cron jobs) or continuously running tasks called daemons.
A cron job is a Linux command for scheduling a command or script on your server to complete repetitive tasks automatically. Scripts executed as a cron job are typically used to modify files or databases; however, they can perform other tasks that do not modify data on the server, like sending out email notifications.
A daemon is a Linux command that is typically started when the system is booted and runs in the background doing some function. The database used by Koha (either MySQL or MariaDB) is a daemon as is the web server (typically Apache).
Koha has many cron jobs in place that you can enable (search engine indexing, overdue notice generation, data cleanup and more), and a few daemons. This chapter will explain those for you.
Exemple de crontab
Un exemple de crontab Koha se trouve dans misc/cronjobs/crontab.example.
The example includes sample boilerplate cron job entries for the most commonly-used cron jobs.
Cron jobs
The locations in the documentation assume a development install where files are found in misc/ relative to the git root checkout. If you have installed using Debian packages or the standard install from source, you will want to look for files in /usr/share/koha/bin/.
Other locations are possible with other installation methods. You can perform a simple find search if they are not located in these directories.
Note
For anyone with shell access using Debian packages, the following command is an easy way to find files installed by a Debian package:
dpkg -L koha-common
This provides a comprehensive listing of the files installed by the koha-common package. You can then easily find the file from there.
Sauvegarde
Daily backup
Chemin du script : misc/cronjobs/backup.sh
Does: creates a daily backup of the Koha database.
Périodicité préconisée : chaque jour
Rechercher
Carte du site
Chemin du script : misc/cronjobs/sitemap.pl
Does: processes all biblio records from a Koha instance and generates sitemap files complying with the protocol as described on http://sitemaps.org. The goal of this script is to be able to provide to search engines direct access to biblio records. It avoids leaving search engines browsing Koha’s OPAC which would generate a lot of site traffic and server workload.
Note Un fichier nommé sitemapindex.xml est généré. Il contient les références aux différents fichiers sitemap. Chaque fichier contient au maximum 50 000 URLs et est nommé sitemapXXXX.xml.
Ces fichiers doivent être stockés dans le répertoire racine (root) de l’OPAC Koha. Dans le même répertoire, il faut un fichier robots.txt avec le contenu suivant :
Sitemap: sitemapindex.xml User-agent: * Disallow: /cgi-bin/
Rebuild index
Chemin du script : misc/migration_tools/rebuild_zebra.pl
Does: updates Zebra indexes with recently changed data.
Requis par : Zebra
Périodicité préconisée : tous les n minutes (plutôt entre 5 et 15 mn), selon le niveau de performance recherché
Note On newer Koha installations, this cron job has been replaced by the koha-indexer daemon which indexes new and modified Koha data every 30 seconds.
Circulation
Holds queue
Chemin du script : misc/cronjobs/holds/build_holds_queue.pl
Does: updates holds queue report
Required by: Holds queue report
Périodicité préconisée : toutes les 15 mn
Description :
Ce script devrait être exécuté régulièrement si vos adhérents sont autorisés à placer des réservations sur des documents en rayon. Le script établit quelle bibliothèque doit prendre en charge la demande de réservation.
It’s behavior is controlled by the system preferences StaticHoldsQueueWeight and RandomizeHoldsQueueWeight.
Si vous ne voulez pas que toutes vos sites participent au processus de réservation en rayon, vous devez répertorier ici les sites qui *participent* au processus en saisissant leurs codes (branchcodes), séparés par des virgules (par ex. « MPL, CPL, SPL, BML », etc).
La file d’attente des réservation sera générée par défaut de manière à ce que le système gère d’abord les réservations disponibles sur le site de retrait. S’il n’y a pas d’exemplaire disponible sur le site de retrait pour établir la liste des réservations, build_holds_queue.pl utilisera la liste des bibliothèques définie dans StaticHoldsQueueWeight. Si RandomizeHoldsQueueWeight est désactivé (il l’est par défaut), le script assignera les demandes de traitement dans l’ordre des autre sites indiqués dans la préférence système StaticHoldsQueueWeight.
Par exemple si votre réseau compte trois sites de taille variable (petit, moyen et grand) et que vous souhaitez que la gestion des réservations soit effectuée par le plus grand site avant le plus petit, votre préférence système StaticHoldsQueueWeight ressemblera à quelquechose comme « LRG,MED,SML ».
Si vous souhaitez répartir de manière équitable la réponse aux demandes de réservations au sein de votre réseau, activez RandomizeHoldsQueueWeight. Lorsque cette préférence système est activée, l’ordre dans lequel les sites devront répondre aux demandes de réservations pour une demande de document disponible sera généré de façon aléatoire à chaque réactualisation de la liste.
Expired holds
Chemin du script : misc/cronjobs/holds/cancel_expired_holds.pl
Does: cancels holds where the user has set an expiration date. If the library is using the ExpireReservesMaxPickUpDelay and ExpireReservesMaxPickUpDelayCharge preferences then this script will also cancel holds that have been sitting on the hold shelf for too long and will (if the library does) charge the patron for not picking up the hold.
It is possible to add a cancellation reason with the –reason parameter. Use the cancellation code from the HOLD_CANCELLATION authorized value category
Périodicité préconisée : chaque jour
Unsuspend holds
Chemin du script : misc/cronjobs/holds/auto_unsuspend_holds.pl
Does: checks to find holds that should no longer be suspended and removes the suspension if the AutoResumeSuspendedHolds preference is set to “allow”. This puts the patron back in to the queue where they were when the hold was suspended.
Périodicité préconisée : chaque jour
Amendes
Chemin du fichier : misc/cronjobs/fines.pl
Does: calculates and charges (or increments) overdue fines per item to patron accounts. The fine calculation is done using the grace period, fine interval, fine amount and other parameters from the circulation and fines rules.
Required by: finesMode system preference
Périodicité préconisée : chaque jour
Note If the Koha system preference “finesMode” is set to “production”, the fines are charged to the patron accounts. If set to “test”, the fines are calculated but not applied.
Note Fines will not be applied on a holiday.
PARAMETERS - -h|–help
get help message
-l|–log
log the output to a file (optional if the -o parameter is given)
-o|–out
output directory for logs (defaults to env or /tmp if the directory does not exist)
-v|–verbose
verbose mode
-m|–maxdays
how many days back of overdues to process
this can improve performance by simply the number of records that need to be processed. It can be safe to limit the overdues processed to those under X days overdues given that circulation policy often caps fines at a maximum after a number of days.
Static fines
Chemin du script : misc/cronjobs/staticfines.pl
Does: charges a single static fine for any/all overdues a patron currently has outstanding. The charge amount is either defined on the command line per borrower category or will use the circulation rules associated with the oldest overdue item the patron has currently checked out (for the first fine period only) Once charged, the fine is static: No new fines will be added until the existing fine is paid off in full.
Périodicité préconisée : chaque jour
Note If the Koha system preference “finesMode” is set to “production”, the fines are charged to the patron accounts. If set to “test”, the fines are calculated but not applied.
Note Les amendes ne sont pas appliquées pour un jour déclaré fermé.
Long overdues
Chemin du fichier : misc/cronjobs/fines.pl
Fonction: permet de spécifier des délais avant de changer le status d’un exemplaire, et optionnellement mettre une facture pour ceux-ci en utilisant le montant de remplacement listé dans la notice de l’exemplaire.
Périodicité préconisée : chaque jour
Note
Staff can control some of the parameters for the longoverdue cron job with the DefaultLongOverdueLostValue and DefaultLongOverdueChargeValue preferences.
Track total checkouts
Chemin du script : misc/cronjobs/update_totalissues.pl
Tâche effectuée : met à jour le champs biblioitems.totalissues dans la base de donnée avec le dernier décompte de prêts calculé à partir de l’historique des prêts de la table statistics.
Périodicité préconisée : chaque jour
Attention
Si le temps dans votre base de données ne concorde pas avec le temps sur votre serveur Koha, vous devrez prendre cela en compte, et probablement utiliser –since plutôt que –interval pour la mise a jour incrémentielle
Note
This cronjob can be used if there is a performance concern. Otherwise, use the UpdateTotalIssuesOnCirc System preference.
Generate patron file for offline circulation
Chemin du script : misc/cronjobs/create_koc_db.pl
Does: generates the borrowers.db file for use with the Koha offline circulation tool
Périodicité préconisée : chaque jour
Renouvellement automatique
Chemin du script : misc/cronjobs/automatic_renewals.pl
Does: renews items if you’re allowing automatic renewal with your circulation and fines rules.
Périodicité préconisée : chaque jour
Important
To run this properly, you must use the –confirm parameter, otherwise it will only run in test mode
PARAMETERS - -h|–help
get help message
–send-notices
sends the AUTO_RENEWALS notice to patrons if the automatic renewal has been done
-v|–verbose
verbose mode
-c|–confirm
without this parameter no changes will be made, the script will run in test mode
without this parameter, the script will default to verbose mode as well
Automatic checkin
Script path: misc/cronjobs/automatic_checkin.pl
Does: automatically checks in items after the loan period. This is set at the item type level.
Périodicité préconisée : chaque jour
Recalls
Expire recalls
Script path: misc/cronjobs/recalls/expire_recalls.pl
Does: automatically marks as expired recalls that
have been requested, but have not been fulfilled and are past their expiry date
recalls that have been awaiting pickup longer than the pickup period in the circulation rules or the period set in the RecallsMaxPickUpDelay system preference
Périodicité préconisée : chaque jour
Overdue recalls
Script path: misc/cronjobs/recalls/overdue_recalls.pl
Does: sets a recalled item as overdue if it hasn’t been returned by the adjusted due date
Périodicité préconisée : chaque jour
Utilisateurs
Batch delete patrons
Chemin du script : misc/cronjobs/delete_patrons.pl
Does: deletes patron records in batch based on date not borrowed since, expired before, last seen, category code, or library branch.
Note
Dates should be in ISO format, e.g., 2013-07-19, and can be generated with date -d “-3 month” « +%Y-%m-%d ».
Important
The options to select the patron records to delete are cumulative. For example, supplying both –expired_before and –library specifies that patron records must meet both conditions to be selected for deletion.
PARAMETERS
–not_borrowed_since Delete patrons who have not borrowed since this date.
Avertissement
Patrons who have all their old checkouts anonymized will have an empty circulation history and be deleted if this option is used. Anonymization can happen because the patron has borrowers.privacy = 2, through cronjobs doing anonymization or by the patron choosing to anonymize their history in the OPAC.
–expired_before Delete patrons with an account expired before this date.
–last_seen Delete patrons who have not been connected since this date. The system preference TrackLastPatronActivity must be enabled to use this option.
–category_code Delete patrons who have this category code.
–library Delete patrons in this library.
-c|–confirm This flag must be provided in order for the script to actually delete patron records. If it is not supplied, the script will only report on the patron records it would have deleted.
-v|–verbose Verbose mode.
Anonymize patron data
Chemin du script : misc/cronjobs/batch_anonymise.pl
Does: removes borrowernumbers from circulation history so that the stats are kept, but the patron information is removed for privacy reasons.
Update patron categories
Script path: misc/cronjobs/update_patrons_category.pl
Does: Updates the patron category of patrons matching the given criteria to another specified patron category. This can be used to convert child patrons from a child patron category to an adult patron category when they reach the upper age limit defined in the patron category.
This script replaces the j2a.pl script.
Périodicité préconisée : chaque jour
DESCRIPTION
This script is designed to update patrons from one category to another using the criteria specified using command line arguments.
PARAMETERS
–too_old Update, if patron is over the upper age limit of their current patron category.
–too_young Update, if patron is below the minimum age limit of their patron category.
–fo=X|–fineover=X Update, if the total fine amount on the patron account is over X.
–fu=X|–fineunder=X Update, if the total fine amount on the patron account is below X.
–rb=date|regbefore=date Update, if the registration date of the patron is before the given date.
–ra=date|regafter=date Update, if the registration date of the patron is after the given date.
-d –field name=value Update, if the given condition is met. <name> has to be replaced by a column name of the borrowers table. The condition is met, if the the content of the field equals <value>.
–where <conditions> Update, if the SQL <where> clause is met.
-v|–verbose Verbose mode: Without this flag only fatal errors are reported.
-c|–confirm Commits the changes to the database. No changes will be made unless this argument is added to the command.
-b|–branch <branchcode> Update, if the home branch of the patron matches the <branchcode> given.
-f|–form <categorycode> Update, if the patron currently has this patron category.
-t|–to <categorycode> Update the patrons matching the criteria to this patron category.
EXEMPLES D’UTILISATION
« update_patrons_category.pl »
« update_patrons_category.pl » -b=<branchcode> -f=<categorycode> -t=<categorycode> -c » (Processes a single branch, and updates the patron categories from category to category)
« update_patrons_category.pl » -f=<categorycode> -t=<categorycode> -v » (Processes all branches, shows all messages, and reports the patrons who would be affected. Takes no action on the database)
Update patrons” messaging preferences
Script path: misc/maintenance/borrowers-force-messaging-defaults.pl
Does: updates patrons” messaging preferences to the default values set in the patron categories.
Messaging preferences defaults are automatically set when adding a new patron or when importing patrons with the patron import tool. However, if you import patrons directly in the database, these messaging preferences will not be set.
There is no suggested frequency. This is a tool to be used when needed, although if you regularly import patrons directly in the database (through a third-party, for example), you can add it to your crontab.
DESCRIPTION
If the EnhancedMessagingPreferences system preference is enabled after borrowers have been created in the DB, those borrowers won’t have messaging transport preferences default values as defined for their borrower category. So you would have to modify each borrower one by one if you would like to send them “Hold Filled” notice for example.
This script creates/overwrites messaging preferences for all borrowers and sets them to default values defined for the category they belong to (unless you use the options -not-expired or -no-overwrite to update a subset).
PARAMETERS
–doit
Update the patrons. The script will not update patrons” messaging preferences without this option. It will only list the patrons who would have been updated.
–not-expired
Only update patrons who are still active (whose files are not yet expired).
–no-overwrite
Only update patrons without any messaging preferences. This option will skip patrons who have already set their preferences.
–category
Only update patrons from the specified category.
Avertissement
This option cannot be repeated.
For example:
borrowers-force-messaging-defaults.pl --doit --category PT --category Bwill only update patrons from category B (the last category specified).
–since
Only update patrons enrolled since the specified date.
Note
This option can use specific or relative dates.
For example:
borrowers-force-messaging-defaults.pl --doit --since "2022-07-12"will only update patrons enrolled since July 12, 2022.
And:
borrowers-force-messaging-defaults.pl --doit --since `date -d "1 day ago" '+%Y-%m-%d'will only update patrons enrolled since yesterday.
EXEMPLES D’UTILISATION
borrowers-force-messaging-defaults.pl --doitUpdates all patrons to give them the default messaging preferences values from their respective category.
borrowers-force-messaging-defaults.pl --doit --not-expiredUpdates all patrons whose memberships are not expired to give them the default messaging preferences values from their respective category.
borrowers-force-messaging-defaults.pl --doit --category PTUpdates all patrons in the PT category to give them the default messaging preferences for that category.
borrowers-force-messaging-defaults.pl --doit --no-overwrite --since "2022-03-01"Updates patrons who do not have any messaging preferences set and who are enrolled since March 1st, 2022.
Notifications
Message queue
Chemin du script : misc/cronjobs/process_message_queue.pl
Does: processes the message queue to send outgoing emails and SMS messages to patrons. Messages are queued in the message queue by other scripts, such as advance_notices.pl, overdue_notices.pl, and holds_reminder.pl.
Note
Requires that EnhancedMessagingPreferences be set to “Allow”.
Périodicité préconisée : toutes les 15 mn
DESCRIPTION
This script processes the message queue in the message_queue database table. It sends out the messages in that queue and marks them appropriately to indicate success or failure. It is recommended that you run this regularly from cron, especially if you are using the advance_notices.pl script.
PARAMETERS
-u | –username
Username of the mail account used to send the notices.
-p | –password
Password of mail account used to send the notices.
-t | –type
If supplied, only processes this type of message. Possible values are
sms
Repeatable
-c | –code
If supplied, only processes messages with this letter code.
Repeatable.
-l | –limit
The maximum number of messages to process for this run.
-m | –method
Authentication method required by SMTP server (see perldoc Sendmail.pm for supported authentication types).
-h | –help
Help message.
-v | –verbose
Provides verbose output to STDOUT.
-w | –where
Filter messages to send with additional conditions in a where clause.
Advanced notice
Chemin du script : misc/cronjobs/advance_notices.pl
Does: prepares « pre-due » notices and « item due » notices for patrons who request them prepares notices for patrons for items just due or coming due soon. requires EnhancedMessagingPreferences to be on
Périodicité préconisée : chaque jour
Note
This script does not actually send the notices. It queues them in the message queue for later
Overdue notice
Chemin du script : misc/cronjobs/overdue_notices.pl
Fonction : prépare les messages de retard pour les usagers (à la fois en version email et imprimée)
Périodicité préconisée : chaque jour
DESCRIPTION
This script creates and queues the overdue notices according to the parameters set in the overdue notice/status triggers tool.
PARAMETERS
-n | –nomail
Do not send any email. Overdue notices that would have been sent to the patrons or to the admin are printed to standard out. CSV data (if the –csv flag is set) is written to standard out or to any CSV filename given.
–max <days>
Maximum days overdue to deal with.
Items overdue since longer than max days are assumed to be handled somewhere else, probably the longoverdues script. They are therefore ignored by this script. No notices are sent for them, and they are not added to any CSV files.
Defaults to 90 days.
–library <branchcode>
Only deal with overdues from this library.
Use the value in the branches.branchcode table.
This parameter is repeatable, to process overdues for a group of libraries.
–csv <filename>
Produces a CSV file.
If the -n (no mail) flag is set, this CSV data is sent to standard out or to a filename if provided. Otherwise, only overdues that could not be emailed are sent in CSV format to the admin.
–html <directory>
Output html to a file in the given directory.
If a patron does not have an email address or if the -n (no mail) flag is set, an HTML file is generated in the specified directory. This can be downloaded or further processed by library staff.
The file will be called notices-YYYY-MM-DD.html and placed in the directory specified.
–text <directory>
Output plain text to a file in the given directory.
If a patron does not have an email address or if the -n (no mail) flag is set, a text file is generated in the specified directory. This can be downloaded or further processed by library staff.
The file will be called notices-YYYY-MM-DD.txt and placed in the directory specified.
–itemscontent <list of fields>
Item information in templates.
Takes a comma separated list of fields that get substituted into templates in places of the <<items.content>> placeholder.
Defaults to due date,title,barcode,author
Other possible values come from fields in the biblio, items and issues tables.
–borcat <categorycode>
Prepare only overdue notices for specified patron categories.
This parameter is repeatable, to include several patron categories.
Use the value in categories.categorycode.
–borcatout <categorycode>
Do not prepare overdue notices for specified patron categories.
This parameter is repeatable, to exclude several patron categories.
Use the value in categories.categorycode.
t | –triggered
This option causes a notice to be generated if and only if an item is overdue by the number of days defined in the overdue notice trigger.
By default, a notice is sent each time the script runs, which is suitable for less frequent run cron script, but requires syncing notice triggers with the cron schedule to ensure proper behavior.
Add the –triggered option for daily cron, at the risk of no notice being generated if the cron fails to run on time.
–test
This option makes the script run in test mode.
In test mode, the script won’t make any changes on the DB. This is useful for debugging configuration.
–list-all
By default, <<items.content>> lists only those items that fall in the range of the currently processing notice.
Choose –list-all to include all overdue items in the list (limited by the –max setting).
–date <yyyy-mm-dd>
Emulate overdues run for this date.
–email <email_type>
Specify the type of email that will be used.
Can be “email”, “emailpro” or “B_email”.
This parameter is repeatable.
–frombranch
Organize and send overdue notices by home library (item-homebranch) or checkout library (item-issuebranch).
Defaults to item-issuebranch.
Note
This option is only used if the OverdueNoticeFrom system preference is set to “command-line option”.
EXEMPLES D’UTILISATION
« overdue_notices.pl »
(All libraries are processed individually, and notices are prepared for all patrons with overdue items for whom we have email addresses. Messages for those patrons for whom we have no email address are sent in a single attachment to the library administrator’s email address, or to the address in the KohaAdminEmailAddress system preference.)
« overdue_notices.pl -n –csv /tmp/overdues.csv »
(Sends no email and populates /tmp/overdues.csv with information about all overdue items.)
« overdue_notices.pl –library MAIN max 14
(Prepares notices of overdues in the last 2 weeks for the MAIN library.)
Note
This script does not actually send the notices. It queues them in the message queue to be sent later or generates the HTML for printing.
Note
See also:
The misc/cronjobs/advance_notices.pl script allows you to send messages to patrons in advance of their items becoming due, or to alert them of items that have just become due.
The misc/cronjobs/process_message_queue.pl script sends the emails.
Holds reminder
Script path: misc/cronjobs/holds/holds_reminder.pl
Does: prepares reminder messages to be sent to patrons with waiting holds.
EnhancedMessagingPreferences must be set to “Allow”, and patrons must have requested to have this notice (either through the Messaging tab in their online account in the OPAC, if EnhancedMessagingPreferencesOPAC is set to “Show”, or in their messaging preferences in the staff interface).
Périodicité préconisée : chaque jour
PARAMETERS
-c | –confirm
Confirm flag, no email will be generated if this parameter is not set
-date <YYYY-MM-DD>
Send notices as would have been sent on a specific date
-days <number of days>
Number of days the hold has been waiting
If this parameter is not set, a notice will be sent to all patrons with waiting holds
Optional parameter
-holidays
Use the calendar exclude holidays from waiting days
-lettercode <lettercode>
Code of the predefined notice to use
Optional parameter, the default is HOLD_REMINDER
-library <branchcode>
Only deal with holds from this library
This flag is repeatable, to select notices for a group of libraries
-mtt <message_transport_type>
Type of messages to send (email, sms, print)
“email” and “sms” will fall back to “print” if the patron does not have an email address/phone number
The default is to use the patrons” messaging preferences for the “Hold reminder” notice
Passing this parameter will force send even if the patron has not chosen to receive hold reminder notices
This can be repeated to send various notices
-t | –triggered
Include only holds <days> days waiting, and not longer
If this is not set, the script will send messages for all holds waiting for equal to or more than <days> days
This option is useful if the cron is being run daily to avoid spamming the patrons
Optional parameter
-v
Verbose
Without this flag set, only fatal errors are reported.
If verbose is set but not confirm, a list of notices that would have been sent to the patrons are printed to standard out
-help
Brief help message
-man
Full documentation
EXAMPLES
The following are examples of this script:
- ::
holds_reminder.pl -library MAIN -days 14
prepares notices of holds waiting for 2 weeks for the MAIN library
- ::
holds_reminder.pl -lettercode LATE_HOLDS -library MAIN -days 14
prepares notices of holds waiting for 2 weeks for the MAIN library, using the “LATE_HOLDS” notice template
Print overdues
Chemin du fichier : misc/cronjobs/printoverdues.sh
Tâche effectuée : génère des fichiers PDF à partir des fichiers HTML contenus dans les répertoires, et les imprime.
Print hold notices
Chemin du script : misc/cronjobs/gather_print_notices.pl
Tâche effectuée : recherche dans la file des messages (message queue) les notifications de réservation qui n’ont pas été envoyées parce que l’adhérent n’a pas d’adresse de courriel, et génère une notification papier.
Périodicité préconisée : chaque jour
Talking Tech
To learn more about setting up this third party product view the Talking Tech chapter.
Sending notices file
Chemin du script : misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl
Does: generates Spec C outbound notifications file for Talking Tech i-tiva phone notification system.
Required by: TalkingTechItivaPhoneNotification
Périodicité préconisée : chaque jour
Receiving notices file
Chemin du script : misc/cronjobs/thirdparty/TalkingTech_itiva_inbound.pl
Does: processes received results files for Talking Tech i-tiva phone notification system.
Required by: TalkingTechItivaPhoneNotification
Périodicité préconisée : chaque jour
Notify patrons of expiration
Chemin du script : misc/cronjobs/membership_expiry.pl
Does: sends messages to warn patrons of their card expiration to the message queue cron.
Requires: MembershipExpiryDaysNotice
Périodicité: chaque soir
PARAMETERS
- --man
Prints the manual page and exits.
- -v
Verbose. Without this flag set, only fatal errors are reported.
- -n
Do not send any email. Membership expiry notices that would have been sent to the patrons are printed to standard out.
- -c
Confirm flag: Add this option. The script will only print a usage statement otherwise.
-branch Optional branchcode to restrict the cronjob to that branch.
- -before Optional parameter to extend the selection with a number of days
BEFORE the date set by the preference.
- -after
- Optional parameter to extend the selection with a number of days
AFTER the date set by the preference.
- e.g. –before 100 –after 100 will notify patrons who have accounts expiring within a date range
of 100 days before and 100 days after the preference.
- -where
- Use this option to specify a condition. Add « me » (alias) followed by the column name from
the borrowers table.
e.g. –where= »me.categorycode !=”YA” » will notify patrons from categories other than “YA”
–where= »me.categorycode = “S” » will notify patrons from the category “S” only
—where “me.lastseen IS NOT NULL” will only notify patrons who have been seen.
- -letter Optional parameter to use another notice than the default:
MEMBERSHIP_EXPIRY
In processing/book cart
Chemin du script : misc/cronjobs/cart_to_shelf.pl
Does: updates all items with a location of CART to the item’s permanent location.
Required by: NewItemsDefaultLocation, and UpdateItemLocationOnCheckin system preferences
Périodicité préconisée : chaque jour
Catalogue
Import webservice batch
Chemin du script : misc/cronjobs/import_webservice_batch.pl
Does: processes import bach queues of type “webservice”. Batches can also be processed through the UI.
Note
Ce script est utilisé pour la connexion OCLC
Connexion import daemon
Chemin du script : misc/bin/connexion_import_daemon.pl
Does: listens for OCLC Connexion requests and is compliant with OCLC Gateway specification. It takes requests with MARC XML and import batch parameters from a configuration file and forwards it to svc/import_bib
Note
Ce script est utilisé pour la connexion OCLC
Batch item deletion
Chemin du script : misc/cronjobs/delete_items.pl
Does: generates a query against the items database and deletes the items matching the criteria specified in the command line arguments.
PARAMETERS
–verbose Send the « WHERE » clause generated by the collected C<–where> arguments, as well as items affected to Standard Out.
–where The C<–where> option may called multiple times. The following argument must be a syntactically valid SQL statement which is part of the C<WHERE> clause querying the items table. These are joined by C<AND>.
–commit No items will be deleted unless the C<–commit> flag is present.
EXAMPLES
The following are examples of this script:
delete_items.pl –where « items.withdrawn ! 0 » –where « items.withdrawn_on < $(date –date= »13 month ago » –rfc-3339=date) » –commit
delete_items.pl –where « itemlost >= “1” » –where « itemlost <=”4” » –where « itemlost_on < “2014-04-28” » –commit
Check URL quick
Chemin du script : misc/cronjobs/check-url-quick.pl
Note
This script replaces the deprecated check-url.pl script
Does: checks URLs from biblio records; scans all URLs found by default in 856$u of bibliographic records and displays if resources are available or not.
PARAMETERS
–host=http://default.tld Server host used when URL doesn’t have one, i.e. doesn’t begin with “http:”. For example, if –host=mylib.com, then when 856$u contains “img/image.jpg”, the url checked is: http://www.mylib.com/image.jpg.
–tags Tags containing URLs in $u subfields. If not provided, 856 tag is checked. Multiple tags can be specified, for example:
check-url-quick.pl –tags 310 410 856
–verbose|v Outputs both successful and failed URLs.
–html Formats output in HTML. The result can be redirected to a file accessible by http. This way, it’s possible to link directly to the bibliographic record in edit mode. With this parameter –host-intranet is required.
–host-intranet=http://koha-pro.tld Server host used to link to bibliographic record editing page in Koha intranet interface.
–timeout=10 Timeout for fetching URLs. By default 10 seconds.
–maxconn=1000 Number of simultaneous HTTP requests. By default 200 connections.
Delete records via leader
Chemin du script : misc/cronjobs/delete_records_via_leader.pl
Does: attempts to delete any MARC records where the leader character 5 equals “d”.
PARAMETERS
-c|–confirm Script will do nothing without this parameter
-v|–verbose Verbose mode
-t|–test Test mode, does not delete records. Test mode cannot determine if a record/item will be deleted successfully, it will only tell you what records and items the script will attempt to delete.
-i|–delete-items Try deleting items before deleting record. Records with items cannot be deleted.
Serials update
Chemin du fichier : misc/cronjobs/fines.pl
Tâche effectuée : vérifie s’il y a un numéro en retard dans les abonnements actifs, et s’il y en a, le déclare “en retard” et ajoute le numéro suivant comme “attendu”.
Périodicité préconisée : chaque jour
Mise à jour automatique d’exemplaire
Chemin du script : misc/cronjobs/automatic_item_modification_by_age.pl
Does: updates items based on the list of rules set forth in the Automatic item modifications by age tool
Required by: Automatic item modifications by age
Périodicité préconisée : chaque nuit
Stock rotation
Script path: misc/cronjobs/stockrotation.pl
Does: moves items from one stock rotation stage to the next, if they are available for processing.
Each library will receive a report with « items of interest » for them for today’s rota checks. Each item there will be an item that should, according to Koha, be located on the shelves of that branch, and which should be picked up and checked in.
Note
The email sent is based on the SR_SLIP template. It can be customized in the Notices and slips tool.
The item will either:
have been placed in transit to their new stage library;
have been placed in transit to be returned to their current stage library;
have just been added to a rota and will already be at the correct library;
Upon check-in,
items that need to be transferred elsewhere will be put in transit and a message will pop up requesting the item be sent to their new branch.
items that are already at the correct library will be checked in and no message will pop up.
Required by: Stock rotation tool
Périodicité préconisée : chaque jour
PARAMETERS
-a|–admin-email
An address to which email reports should also be sent
This is an additional email address to which all email reports will be sent, in addition to sending them to branch email addresses.
-b|–branchcode
Select branch to report on for “email” reports (default: all)
If the “email” report is selected, you can use the “branchcode” parameter to specify which branch’s report you would like to see.
The default is “all”.
-x|–execute
Actually perform stockrotation housekeeping
By default, this script merely reports on the current status of the stock rotation subsystem. In order to actually place items in transit, the script must be run with the “execute” argument.
-r|–report
Select either “full” or “email”
The “report” argument allows you to select the type of report that will be emitted.
The default is “full”.
If the “email” report is selected, you can use the “branchcode” parameter to specify which branch’s report you would like to see.
-S|–Send-all
Send email reports even if the report body is empty
This argument causes even reports with an empty body to be sent.
-s|–send-email
Send reports by email
This argument causes the script to send reports by email.
-h|–help
Display the help message
OPAC
RSS feeds
Chemin du fichier : misc/cronjobs/fines.pl
Does: produces an RSS XML document for any SQL query (not used for search results RSS feed). Learn more.
Périodicité préconisée : chaque jour
System administration
Services throttle
Chemin du script : misc/cronjobs/services_throttle.pl
Tâche effectuée : Réinitialise le nombre de services xISBN
Périodicité préconisée : chaque jour
Clean up database
Chemin du script : misc/cronjobs/cleanup_database.pl
Does: truncates the sessions table, cleans out old zebraqueue entries, action logs and staged MARC files.
See http://schema.koha-community.org/ for the Koha database schema.
PARAMETERS - –del-exp-selfreg
Delete expired self registration accounts (accounts that haven’t been upgraded from the “temporary” category) from the borrowers table.
The number of days for expiry is set in the PatronSelfRegistrationExpireTemporaryAccountsDelay system preference.
The temporary patron category is set in the PatronSelfRegistrationDefaultCategory system preference.
–del-unv-selfreg DAYS
Delete all unverified self registrations in borrower_modifications older than DAYS.
–deleted-catalog DAYS
Purge bibliographic records deleted more than DAYS days ago from tables deletedbiblio, deletedbiblio_metadata, deletedbiblioitems and deleteditems.
–deleted-patrons DAYS
Purge patrons deleted more than DAYS days ago from the deletedborrowers table.
–fees DAYS
Purge entries in the accountlines table older than DAYS days, where the amountoutstanding is 0 or NULL.
In the case of –fees, DAYS must be greater than or equal to 1.
-h|–help
Get help message
–import DAYS
Purge entries from import tables older than DAYS days.
This includes import_batches, import_biblios, import_items, import_record_matches and import_records.
In import_batches, the batches that are the result of Z39.50 searches are removed with the –z3950 parameter.
Defaults to 60 days if no days specified.
- --list-invites
DAYS
Purge (unaccepted) list share invites from the virtualshelfshares table older than DAYS days
Defaults to 14 days if no days specified.
–logs DAYS
Purge entries from the action_logs table older than DAYS days.
Defaults to 180 days if no number of days specified.
–log-modules
Specify which action_log modules to purge.
This option is repeatable.
See action logs modules and actions for the module names
–preserve-logs
Specify which action_log modules to exclude.
This option is repeatable.
See action logs modules and actions for the module names
-m|–mail DAYS
Purge entries from the message_queue table that are older than DAYS days.
Defaults to 30 days if no days specified.
–merged
Purge completed entries from the need_merge_authorities table.
–oauth-tokens
Delete expired OAuth2 tokens
–old-issues DAYS
Purge checkouts returned more than DAYS days ago from the old_issues table.
–old-reserves DAYS
Purge holds more than DAYS old from the old_reserves table.
–restrictions DAYS
Purge patrons restrictions from the borrower_debarments table expired since more than DAYS days.
Defaults to 30 days if no days specified.
–return-claims
Purge all resolved return claims older than the number of days specified in the system preference CleanUpDatabaseReturnClaims.
–all-restrictions
Purge all expired patrons restrictions from the borrower_debarments table.
–searchhistory DAYS
Purge entries from the search_history table older than DAYS days.
Defaults to 30 days if no days specified
–sessions
Purge the sessions table.
If you use this while users are logged into Koha, they will have to reconnect.
–sessdays DAYS
Purge only sessions older than DAYS days.
–statistics DAYS
Purge entries from the statistics tables that are more than DAYS days old.
–temp-uploads
Delete temporary uploads from the uploaded_files table older than the number of days specified in the UploadPurgeTemporaryFilesDays system preference.
–temp-uploads-days DAYS
Override the UploadPurgeTemporaryFilesDays system preference value.
–transfers DAYS
Purge transfers completed more than DAYS days ago from the branchtransfers table.
–unique-holidays DAYS
Delete all unique holidays from the special_holidays table older than DAYS
–uploads-missing FLAG
Delete upload records for missing files when FLAG is true, count them otherwise
-v|–verbose
verbose mode
–zebraqueue DAYS
Purge completed zebraqueue entries older than DAYS days.
Defaults to 30 days if no days specified.
–z3950
Purge records from import tables that are the result of Z39.50 searches.
To purge all other import information, see the –import parameter above.
Search for data inconsistencies
Script path: misc/maintenance/search_for_data_inconsistencies.pl
Does: reveals problems in data, such as
items without home or holding library
bibliographic records without item type or with invalid item type
bibliographic records with invalid MARCXML
bibliographic records without biblionumber or biblioitemnumber in MARCXML
bibliographic records without title
invalid values in fields where the framework limits to an authorized value category
authority records without authority type or with invalid authority type
patrons who are too old or too young for their category
Some of these issues can cause problems in circulation or catalog search, so it’s important that they be corrected.
There is no suggested frequency. This is a tool to be used when needed.
Acquisitions
Nettoie les vieilles suggestions
Chemin du script : misc/cronjobs/purge_suggestions.pl
Does: removes old suggestions from the suggestion management area.
PARAMETERS
help|?
Show help message
days
Define the age of suggestions to be deleted, based on “managed on” date
Note
The system preference PurgeSuggestionsOlderThan can also be used to define the number of days used in the script. If using the system preference, don’t use the “days” parameter.
Note
The number of days is based on the “managed on” date of the suggestion.
confirm
This parameter is mandatory for the script to run.
Courriel de suggestions à traiter
Chemin du script : misc/cronjobs/notice_unprocessed_suggestions.pl
Does: generates a notice to the fund owner that there are suggestions in need of processing
EDI message processing
Chemin du script : misc/cronjobs/edi_cron.pl
Does: sends and received EDI messages
Périodicité préconisée : toutes les 15 minutes
Remove temporary EDI files
Chemin du script : misc/cronjobs/remove_temporary_edifiles.pl
Tâche effectuée : supprime les fichiers EDI temporaires vieux de plus de 5 jours
Bilans et statistiques
Run report
Chemin du script : misc/cronjobs/runreport.pl
Does: runs pre-existing saved reports
PARAMETERS
-v|–verbose Verbose output
–format=s Selects format. Choice of text, html, csv or tsv
-e|–email Whether or not to use e-mail (implied by –to or –from)
-a|–attachment Attach the report as a file. Cannot be used with html format
–username Username to pass to the SMTP server for authentication
–password Password to pass to the SMTP server for authentication
–method The type of authentication, i.e. LOGIN, DIGEST-MD5, etc.
–to=s E-mail address to send report to
–from=s E-mail address to send report from
–subject=s Subject for the e-mail
–store-results Store the result of the report
–csv-header Add column names as first line of csv output
ARGUMENTS
reportID Report ID Number from saved_sql.id, multiple ID’s may be specified
Daemons
Daemons are continuously running tasks that help support Koha operation. Your database and web-server are run as daemons. Newer versions of Koha start two different daemons for most koha instances:
zebra - this is the index server
koha-indexer - this daemon updates the index server with new and modified data (biblios and authorities)
These daemons are started by the script /etc/init.d/koha-common.
Zebra indexer daemon
Script path: /usr/sbin/koha-indexer (invoked from /etc/init.d/koha-common)
The koha-indexer script invokes rebuild_zebra.pl in daemon mode. In this mode, the script will run continuously and check the database for new or modified data every 30 seconds. New or modified records are then sent to Zebra for indexing, which only takes a second or so. The advantage of this approach is a search system which is much more responsive to changes, compared to the cron job approach.
Supprimer abonnement
Il n’y a pas de modification d’adhérent en attente.
Chemin du script : misc/cronjobs/update_items.pl
Chemin du fichier : misc/cronjobs/fines.pl
Chemin du fichier : misc/cronjobs/fines.pl
Chemin du fichier : misc/cronjobs/fines.pl
Chemin du script : misc/cronjobs/zebraqueue_start.pl
Social data
Get report social data
Script path: misc/cronjobs/social_data/get_report_social_data.pl
Does: downloads data from Babelthèque to add to OPAC records
Périodicité préconisée : chaque jour
Update social data
Script path: misc/cronjobs/social_data/update_social_data.pl
Does: updates OPAC records with Babelthèque social data