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 task 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 webserver (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.
Cet exemple contient quelques propositions de paramétrages de cron pour les cronjobs les plus utilisés.
Cron jobs¶
Les chemins de fichier mentionnés ci-dessous présupposent que les fichiers crons sont placés dans misc/. Si vous disposez d’une installation standard et que ceux-co ne sont pas dans misc/, regardez dans bin/.
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.
Il est contre-indiqué de laisser StaticHoldsQueueWeight vide pour le moment. Cela force le script build_holds_queue à ignorer RandomizeHoldsQueueWeight, les demandes sont alors assignées aux sites non pas aléatoirement, mais par ordre alphabétique.
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 Permettre 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.
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 Réactiver toutes les réservations suspendues 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 posts fines to patron accounts.
Requis par : finesMode system preference
Périodicité préconisée : chaque jour
Amendes fixes¶
Chemin du script : misc/cronjobs/staticfines.pl
Does: calculates and charges overdue fines to patron accounts
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
Ce cronjob peut être utilisé s’il y a un problème de performance. Sinon, utiliser la préférence système UpdateTotalIssuesOnCirc.
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
Adhérents¶
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.
- –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.
Unverified registrations¶
Chemin du script : misc/cronjobs/delete_expired_opac_registrations.pl
Does: deletes patron registrations that were submitted via the OPAC but not reviewed by the library within the number of days entered in the PatronSelfRegistrationExpireTemporaryAccountsDelay preference.
Périodicité préconisée : chaque jour
Unconfirmed registrations¶
Chemin du fichier : misc/cronjobs/delete_unverified_opac_registrations.pl
Does: deletes patron self registrations that were submitted via the OPAC but not confirmed via email within 24 hours. This is only necessary if you are requiring patrons to confirm their registrations via email with the PatronSelfRegistrationVerifyByEmail preference.
Périodicité préconisée : chaque jour
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 child to adult patron type¶
Chemin du fichier : misc/cronjobs/fines.pl
Does: converts juvenile/child patrons from juvenile patron category and category code to corresponding adult patron category and category code when they reach the upper age limit defined in the Patron Categories.
Périodicité préconisée : chaque jour
DESCRIPTION
Ce script transforme les adhérents de type enfant en adhérents de type adulte, supprime le garant, et met à jour leur catégorie d’usager lorsqu’ils atteignent la limite d’âge supérieure définie dans les catégories d’adhérents.
EXEMPLES D’UTILISATION
« juv2adult.pl »
« juv2adult.pl » -b=<branchcode> -f=<categorycode> -t=<categorycode> (Traite un seul site, et met à jour les adhérents de l’une des categorycode vers l’autre categorycode)
« juv2adult.pl » -f=<categorycode> -t=<categorycode> -v -n (Traite tous les sites, montre tous les messages, indique les adhérents qui vont être traités. Ne modifie pas la base de données)
Notifications¶
Message queue¶
Chemin du script : misc/cronjobs/process_message_queue.pl
Tâche effectuée : traite la file des messages (message queue) pour envoyer les courriels de prêts, de retours et de réservations disponibles ; pour envoyer les SMS et les courriels sortant aux adhérents. Nécessite d’activer EnhancedMessagingPreferences
Périodicité préconisée : toutes les 15 mn
Important
Item due and Advanced due notices are controlled by the advance_notices cron.
Advanced notice¶
Chemin du script : misc/cronjobs/advance_notices.pl
Tâche effectuée : prépare les notifications « pre-due » et « item due » pour les adhérents qui en ont fait la demande. Nécessite d’activer EnhancedMessagingPreferences
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
Note
This script does not actually send the notices. It queues them in the message queue for later or generates the HTML for later printing
Voir aussi
Le cron job misc/cronjobs/advance_notices.pl permet d’envoyer aux adhérents des messages pour les documents à retourner prochainement ou pour les documents à retourner dès à présent (messages de courtoisie).
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.
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.
Requiert : MembershipExpiryDaysNotice
Périodicité: chaque soir
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, InProcessingToShelvingCart, and ReturnToShelvingCart 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
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.
Note
Ce script remplace le script check-url.pl
PARAMETERS
–host=http://default.tld Server host used when URL doesn’t have one, ie 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 simulaneous HTTP requests. By default 200 connexions.
Retour¶
Chemin du fichier : misc/cronjobs/fines.pl
Fonction: vérifie les URL des champs 856$. La production du script peut maintenant être formattée en CSV ou HTML. La version HTML est lié directement avec l’édieur de notices.
Périodicité préconisée : chaque jour
Pour en savoir plus : http://wiki.koha-community.org/wiki/Check-url_enhancements
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.
Update authorities¶
Chemin du script : misc/cronjobs/merge_authorities.pl
Does: updates biblio data with changes to authorities records
Note
Le nom du script est trompeur. Ce script ne fusionne pas les autorités entre elles, mais à la place met à jour les données d’autorité dans les données bibliographiques liées. Les modifications faites dans une notice d’autorité seront appliquées dans les notices bibliographiques qui utilisent cette autorité lorsque ce script est lancé.
Required by: AuthorityMergeLimit system preference
Périodicité préconisée : chaque jour
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
Tâche effectuée : met à jour les exemplaires sur la base d’une liste de règles définies préalablement dans l’outil Modification automatique d’exemplaires par ancienneté
Nécessaire pour Modification automatique d’exemplaires par ancienneté
Périodicité préconisée : chaque nuit
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
Authorities browser¶
Chemin du script : misc/cronjobs/build_browser_and_cloud.pl
Does: generates content for authorities browse in OPAC
Requis par : OpacBrowser system preference
Important
Cette préférence et job de Cron devraient être seulement utilisés dans des systèmes Français.
Subject/author clouds¶
Chemin du fichier : misc/cronjobs/fines.pl
Does: generates HTML keywords clouds from Koha Zebra indexes. misc/cronjobs/cloud-sample.conf has a sample of how this script operates.
Fréquence: Ceci est le type de scripte qui s’active une fois par mois ou environ,et le contenu généré
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.
Acquisitions¶
Nettoie les vieilles suggestions¶
Chemin du script : misc/cronjobs/purge_suggestions.pl
Does: removes old (defined by you) suggestions from the suggestion management area.
Note
The system preference PurgeSuggestionsOlderThan defines the number of days used in the script
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
Rapports¶
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. Ie. 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
Import les données des adhérents¶
NL sync to Koha¶
Script path: misc/cronjobs/nl-sync-to-koha.pl
Does: syncs patrons from the Norwegian national patron database (NL) to Koha
Note Relies on NorwegianPatronDBUsername and NorwegianPatronDBPassword system preferences
NL sync from Koha¶
Script path: misc/cronjobs/nl-sync-from-koha.pl
Does: syncs patrons from Koha to the Norwegian national patron database (NL)
Note Relies on NorwegianPatronDBUsername and NorwegianPatronDBPassword system preferences
Daemons¶
Daemons are continuously running tasks that help support Koha operation. Your database and webserver 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 :ref:”cron job approach <_rebuild-index-label>”.
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