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.
Esempio di crontab¶
Un esempio di crontab di Koha si trova in misc/cronjobs/crontab.example
L’esempio include tipiche righe di cron job usati più spesso.
Cron jobs¶
Le posizioni indicate di seguito presumono un’installazione di sviluppo, che mette la programmazione dei processi nella cartella misc/; se si lavora su un’installazione standard, cercare i file di programmazione nella cartella bin/, se non si trovano in misc/
Copia di sicurezza¶
Daily backup¶
Script path: misc/cronjobs/backup.sh
Does: creates a daily backup of the Koha database.
Frequenza consigliata: giornaliera
Cerca¶
Mappa del sito¶
Script path: 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.
Nota Viene generato un file denominato sitemapindex.xml. Contiene riferimenti ad altri file sitemap, che a loro volta contengono al massimo 50mila URLs e sono denominati sitemapXXXX.xml.
I file devono stare nella directory radice dell’OPAC di Koha. Nella stessa directory ci deve essere il file robots.txt con il seguente contenuto:
Sitemap: sitemapindex.xml User-agent: * Disallow: /cgi-bin/
Rebuild index¶
Script path: misc/migration_tools/rebuild_zebra.pl
Does: updates Zebra indexes with recently changed data.
Richiesto da: Zebra
Frequenza consigliata: ogni x minuti (con x compreso tra 5 e 15 minuti), a seconda delle prestazioni richieste.
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.
Circolazione¶
Holds queue¶
Script path: misc/cronjobs/holds/build_holds_queue.pl
Does: updates holds queue report
Required by: Holds queue report
Frequenza consigliata: ogni 1-4 ore
Descrizione:
Si tratta di uno script che dovrebbe essere eseguito periodicamente, se la vostra biblioteca permette agli utenti di richiedere prenotazioni a scaffale. Questo script decide quale biblioteca deve incaricarsi di soddifare una data richiesta di prenotazione.
It’s behavior is controlled by the system preferences StaticHoldsQueueWeight and RandomizeHoldsQueueWeight.
Se non vuoi che le tue biblioteche partecipino al processo di assegnazione di prenotazioni, *devi* comunque elencare qui le biblioteche che vi prendono parte, con una lista di codici di biblioteca separate da virgola (es.: «MPL,CPL,SPL,BML» ecc. ).
Per default, la coda delle prenotazioni funziona in modo che il sistema prima tenta di soddisfare una prenotazione utilizzando copie che sono già presso la biblioteca del ritiro. In mancanza, build_holds_queue.pl userà la lista di biblioteche definite in StaticHoldsQueueWeight. Se RandomizeHoldsQueueWeight non è attiva (come da default), lo script assegnerà le richieste in base alla preferenza di sistema StaticHoldsQueueWeight.
Per esempio, se il tuo sistema ha tre biblioteche, di varia dimensione (piccola, media e grande) e vuoi che il processo di assegnazione prenotazioni usi prima la alla grande biblioteca e poi le piccole, potresti impostare la preferenza di sistema “StaticHoldsQueueWeight” a «LRG,MED,SML».
Se vuoi che il carico delle prenotazioni venga suddiviso equamente tra le varie biblioteche del sistema, abilita la preferenza di sistema RandomizeHoldsQueueWeight. Quando è attiva, l’ordine delle biblioteche verrà rigenerato casualmente ogni volta che viene creata la loro lista.
Lasciare vuota la preferenza di sistema StaticHoldsQueueWeight è controindicato. Se fosse, lo script build_holds_queue script ignorerà RandomizeHoldsQueueWeight e processerà le richieste di prenotazione per ordine alfabetico, non a caso.
Expired holds¶
Script path: 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.
Frequenza consigliata: giornaliera
Unsuspend holds¶
Script path: 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.
Frequenza consigliata: giornaliera
Multe¶
Script: misc/cronjobs/fines.pl
Does: calculates and posts fines to patron accounts.
Richiesto dalla preferenza di sistema: finesMode
Frequenza consigliata: notturna
Multe statiche¶
Script path: 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.
Nota Le multe non verranno attribuite durante le feste.
Long overdues¶
Percorso dello script: misc/cronjobs/longoverdue.pl
Che cosa fa: permette di specificare i ritardi necessari per cambiare lo stato di “smarrito” di un elemento ad un valore differente. Opzionalmente addebita gli elementi smarriti, utilizzando il prezzo di sostituzione registrato nel record di ciascun elemento.
Frequenza consigliata: notturna
Nota
Staff can control some of the parameters for the longoverdue cron job with the DefaultLongOverdueLostValue and DefaultLongOverdueChargeValue preferences.
Track total checkouts¶
Script path: misc/cronjobs/update_totalissues.pl
Che cosa fa: aggiorna il campo biblioitems.totalissues nel database con il il totale aggiornato dei prestiti basandosi sulle statistiche dello storico prestiti.
Frequenza consigliata: notturna
Avvertimento
Se l’ora sul server del database non coincide con l’ora sul server di Koha, bisogna tenerne conto e probabilmente utilizzare l’opzione –since, invece dell’opzione –interval, per l’aggiornamento incrementale.
Nota
Questo cron job può essere usato in caso di problemi di performance. Altrimenti usare la preferenza di sistema UpdateTotalIssuesOnCirc.
Generate patron file for offline circulation¶
Script path: misc/cronjobs/create_koc_db.pl
Does: generates the borrowers.db file for use with the Koha offline circulation tool
Frequenza consigliata: settimanale
Rinnovo automatico¶
Script path: misc/cronjobs/automatic_renewals.pl
Does: renews items if you’re allowing automatic renewal with your circulation and fines rules.
Frequenza consigliata: notturna
Utenti¶
Batch delete patrons¶
Script path: 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.
Nota
Dates should be in ISO format, e.g., 2013-07-19, and can be generated with date -d “-3 month” «+%Y-%m-%d».
Importante
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¶
Script path: 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.
Frequenza consigliata: notturna
Unconfirmed registrations¶
Script path: 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.
Frequenza consigliata: oraria
Anonymize patron data¶
Script path: 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¶
Script: misc/cronjobs/j2a.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.
Frequenza consigliata: notturna
DESCRIZIONE
Questo script è concepito per trasformare gli utenti delle categorie giovanili in adulti, rimuovere il garante ed aggiornare corrispondentemente i loro codici di categoria quando raggiungono il limite superiore di età stabilito nelle Categorie utenti.
ESEMPI DI USO
«juv2adult.pl»
«juv2adult.pl» -b=<branchcode> -f=<categorycode> -t=<categorycode> (Elabora una singola biblioteca e cambia le categorie utenti da categoria a categoria)
«juv2adult.pl» -f=<categorycode> -t=<categorycode> -v -n (Elabora tutte le biblioteche, mostra tutti i messaggi ed elenca gli utenti che sarebbero influenzati dalla modifica. Non apporta nessun cambiamento sul database)
Avvisi¶
Message queue¶
Script path: misc/cronjobs/process_message_queue.pl
Che cosa fa: elabora la coda dei messaggi, allo scopo di inviare agli utenti i messaggi e-mail o gli SMS di prestito, di rientro e di prenotazione. Richiede che la preferenza EnhancedMessagingPreferences sia attiva
Frequenza consigliata: 1-4 ore
Importante
Item due and Advanced due notices are controlled by the advance_notices cron.
Advanced notice¶
Script path: misc/cronjobs/advance_notices.pl
Che cosa fa: prepara gli avvisi «ante scadenza» e gli avvisi di scadenza per gli utenti che chiedono di essere avvisati della scadenza dei prestiti, o che vogliono di essere avvertiti dell’imminenza di tale termine. Richiede che EnhancedMessagingPreferences sia attiva
Frequenza consigliata: notturna
Nota
This script does not actually send the notices. It queues them in the message queue for later
Overdue notice¶
Script path: misc/cronjobs/overdue_notices.pl
Che cosa fa:prepara gli avvisi per avvertire gli utenti (sia via mail, sia su carta) che il termine del prestito è scaduto.
Frequenza consigliata: notturna
Nota
This script does not actually send the notices. It queues them in the message queue for later or generates the HTML for later printing
Vedi anche
Il programma misc/cronjobs/advance_notices.pl permette di inviare un messaggio agli utenti prima che il loro prestito scada, o di avvisarli che il prestito è appena scaduto.
Print overdues¶
Script path: misc/cronjobs/printoverdues.sh
Esegue: genera file PDF da file HTML contenuti in directories e li stampa
Print hold notices¶
Script path: misc/cronjobs/gather_print_notices.pl
Che cosa fa: cerca nella coda dei messaggi gli avvisi di prenotazione che non sono partiti perchè l’utente non ha un indirizzo e-mail e genera una notifica stampata
Frequenza consigliata: notturna
Talking Tech¶
To learn more about setting up this third party product view the Talking Tech chapter.
Sending notices file¶
Script path: misc/cronjobs/thirdparty/TalkingTech_itiva_outbound.pl
Does: generates Spec C outbound notifications file for Talking Tech i-tiva phone notification system.
Richiesto da: TalkingTechItivaPhoneNotification
Frequenza consigliata: notturna
Receiving notices file¶
Script path: misc/cronjobs/thirdparty/TalkingTech_itiva_inbound.pl
Does: processes received results files for Talking Tech i-tiva phone notification system.
Richiesto da: TalkingTechItivaPhoneNotification
Frequenza consigliata: notturna
Notify patrons of expiration¶
Script path: misc/cronjobs/membership_expiry.pl
Does: sends messages to warn patrons of their card expiration to the message queue cron.
Richiede: MembershipExpiryDaysNotice
Frequenza consigliata: notturna
In processing/book cart¶
Script path: 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
Frequenza consigliata: oraria
Catalogo¶
Import webservice batch¶
Script path: misc/cronjobs/import_webservice_batch.pl
Does: processes import bach queues of type “webservice”. Batches can also be processed through the UI.
Nota
Questo script si usa per OCLC Connexion
Connexion import daemon¶
Script path: 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
Nota
Questo script si usa per OCLC Connexion
Batch item deletion¶
Script path: 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¶
Script path: 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.
Nota
Lo script sostituisce lo 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.
Controlla gli URL¶
Script: misc/cronjobs/check-url.pl
Che cosa fa: controlla gli URL contenuti nel campo 856$u. L’output dello script si può formattare come CSV o HTML. La versione HTML collega direttamente all’editor MARC del record bibliografico.
Frequenza consigliata: mensile
Per saperne di più: http://wiki.koha-community.org/wiki/Check-url_enhancements
Delete records via leader¶
Script path: 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¶
Script path: misc/cronjobs/merge_authorities.pl
Does: updates biblio data with changes to authorities records
Nota
Il nome di questo script è fuorviante: il programma non fonde inisieme le autorità; invece, fonde i dati delle autorità con i record bibliografici collegati. Le modifiche ai record di atuorità saranno applicate ai record bibliografici che usano quelle autorità nel momento in cui si esegue lo script.
Required by: AuthorityMergeLimit system preference
Frequenza consigliata: notturna
Serials update¶
Script: misc/cronjobs/serialsUpdate.pl
Che cosa fa: verifica se è presente un’uscita «in ritardo» sugli abbonamenti attivi; se c’è, la marca come ritardataria ed aggiunge la successiva come attesa.
Frequenza consigliata: notturna
Forza l’aggiornamento.¶
Script path: misc/cronjobs/automatic_item_modification_by_age.pl
Fa: Aggiorna copie sulla base dell’elenco di regole prescritte nella Modifiche automatiche modifiche copie per età
Richiesto da: Modifiche automatiche copie per età
Frequenza consigliata: notturna
OPAC¶
RSS feeds¶
Script: misc/cronjobs/rss/rss.pl
Does: produces an RSS XML document for any SQL query (not used for search results RSS feed). Learn more.
Frequenza consigliata: oraria
Authorities browser¶
Script path: misc/cronjobs/build_browser_and_cloud.pl
Does: generates content for authorities browse in OPAC
Richiesto da: preferenza di sistema OpacBrowser
Importante
Questa preferenza ed il realtivo cron job devono essere utilizzati solo su sistemi in Francese.
Subject/author clouds¶
Script: misc/cronjobs/cloud-kw.pl
Does: generates HTML keywords clouds from Koha Zebra indexes. misc/cronjobs/cloud-sample.conf has a sample of how this script operates.
Frequenza: questo è il tipo di script che si può eseguire una volta al mese o giù di lì; il contenuto prodotto non cambia moltissimo con l’andar del tempo.
System administration¶
Services throttle¶
Script path: misc/cronjobs/services_throttle.pl
Esegue: reimposta i servizi basati su xISBN
Frequenza consigliata: notturna
Clean up database¶
Script path: misc/cronjobs/cleanup_database.pl
Does: truncates the sessions table, cleans out old zebraqueue entries, action logs and staged MARC files.
Acquisizioni¶
Cancella i suggerimenti più vecchi¶
Script path: misc/cronjobs/purge_suggestions.pl
Does: removes old (defined by you) suggestions from the suggestion management area.
Nota
The system preference PurgeSuggestionsOlderThan defines the number of days used in the script
Invia per email i suggerimenti da elaborare¶
Script path: 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¶
Script path: misc/cronjobs/edi_cron.pl
Does: sends and received EDI messages
Frequenza: ogni 15 minuti
Remove temporary EDI files¶
Script path: misc/cronjobs/remove_temporary_edifiles.pl
Esegue: rimuove i file temporanei dell’EDI più vecchi di 5 giorni
Reports¶
Run report¶
Script path: 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
Database di utenti norvegese¶
Sincronizzazione NL -> Koha¶
Script: misc/cronjobs/nl-sync-to-koha.pl
Does: syncs patrons from the Norwegian national patron database (NL) to Koha
Nota Si basa sull preferenze NorwegianPatronDBUsername e NorwegianPatronDBPassword
Sincronizzazione NL - Koha¶
Script: misc/cronjobs/nl-sync-from-koha.pl
Does: syncs patrons from Koha to the Norwegian national patron database (NL)
Nota Si basa sull preferenze NorwegianPatronDBUsername e NorwegianPatronDBPassword
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>”.
Script di uso sconsigliato:¶
Questi non dovrebbero essere eseguiti senza modifiche:
Script path: misc/cronjobs/update_items.pl
Script: misc/cronjobs/smsoverdues.pl
Script: misc/cronjobs/notifyMailsOp.pl
Script: misc/cronjobs/reservefix.pl
Script path:misc/cronjobs/zebraqueue_start.pl
Social data¶
Ricevi i social data¶
Script path: misc/cronjobs/social_data/get_report_social_data.pl
Fa: scarica i dati da Babelthèque per aggiungerli ai record dell’Opac
Frequenza consigliata: notturna
Aggiorna i social data¶
Script path: misc/cronjobs/social_data/update_social_data.pl
Fa: aggiorna i records dell’Opac con i social data di Babelthèque