Piste: crontab

Paramétrage de la Crontab

Paramétrage de la Crontab

Anonymisation historique de prêts

Suppression des adhérents

Demandes de réservations expirées

# Manage holds
# Cancel expired reserves
20 4 * * * /home/koha/src/misc/cronjobs/holds/cancel_expired_holds.pl > /dev/null 2>&1
25 4 * * * /home/koha/src/misc/cronjobs/holds/auto_unsuspend_holds.pl > /dev/null 2>&1

Le script archive les réservations pour lesquelles la date d'expiration est dépassée dans la table old_reserves.
Pour les réservations sans date d'expiration, si la préférence ExpireReservesMaxPickUpDelay est actif, les réservations non mises de côté et dont la date de réservations est supérieure à la préférence ReservesMaxPickUpDelay sont supprimées.

TODO 2 scripts donc 2 docs

Mise à jour des réservations

# update reserves
25 4 * * * /home/koha/src/misc/cronjobs/holds/cancel_unfilled_holds.pl --days 30 --holidays --confirm
Usage:
     cancel_unfilled_holds.pl [--days][--library][--holidays][--confirm][--verbose]

Options:
    --help | -h
            Print brief help and exit.

    --days  Specify the number of days waiting since a hold that remains
            unfilled was placed. E.g. a value of 730 would cancel holds
            placed 2 years ago or more that have never been filled

    --library
            Repeatable option to specify which branchcode(s) to cancel holds
            for.

    --holidays
            This switch specifies whether to count holidays as days waiting.
            Default is no.

    --confirm
            Without this option, the script will run in test mode, and only
            report what it would have done if it were not running in test
            mode.

    --verbose | -v
            More verbose output.

Purge des tables

Il est important de "nettoyer" régulièrement la base afin que celle-ci conserve des proportions raisonnables et de bonnes performances. Un certain nombre de données n'ont pas vocation à être conservé indéfiniment. C'est le rôle du script suivant :

cleanup_database.pl

On l'intègre dans les tâches planifiées (crontab) comme dans cet exemple :

# Cleanup database 
10 4 * * * /home/koha/src/misc/cronjobs/cleanup_database.pl --sessdays 1 --zebraqueue 30 --z3950 --temp-uploads --temp-uploads-days 6 --import 730 --logs 730

Voici les types de données que le script peut purger (version 19.11) :

  • sessions : sessions de connexion des utilisateurs
  • sessdays DAYS : supprimer les données de sessions vieilles de X jours
  • zebraqueue : file des modifications/ajouts/suppressions de notices que le moteur de recherche doit indexer (par défaut : 30 jours)
  • mail : file des mails à envoyer (par défaut : 30 jours)
  • merged : table de fusion des autorités (need_merge_authorities)
  • import : imports de notices (par défaut : 60 jours)
  • z3950 : notices d'import Z39.50
  • fees : table des paiements usagers
  • logs : table des logs (dite de journalisation)
    • À noter que la purge s'effectue sur tous les logs (il n'est pas possible de filtrer sur les logs de catalogage, circulation, etc).
    • Biblibre recommande un paramétrage de six mois maximum.
  • searchhistory : historiques de recherche (par défaut : 30 jours)
  • list-invites : liste d'invitations refusées (par défaut : 14 jours)
  • restrictions : pénalisations expirées des usagers (par défaut : 30 jours)
  • del-exp-selfreg : auto inscriptions expirées
  • del-unv-selfreg : auto inscriptions non vérifiées
  • unique-holidays : jours de fermeture unique (calendrier)
  • temp-uploads : téléversements temporaires de notices
  • temp-uploads-days : passe outre la préférence système UploadPurgeTemporaryFilesDays
  • uploads-missing : fichiers de téléversements vides
  • oauth-tokens : jetons d'authentification OAuth2
  • statistics : table des statistiques de circulation
  • deleted-catalog : notices supprimées (agit sur les tables deleteditems, deletedbiblioitems, deletedbiblio_metadata et deletedbiblio)
  • deleted-patrons : données d'usagers supprimées
  • old-issues : anciens prêts (qui ont été retournés)
  • old-reserves : anciennes réservations
  • transfers : données de transferts entre bibliothèques
Koha >= 20.11 ajout de l'option confirm

Purge des suggestions

Supprime les anciennes suggestions, sauf celles en attente.

Koha >= 18.11

# Cleanup suggestions that are not in ASKED status
25 4 * * * /home/koha/src/misc/cronjobs/purge_suggestions.pl --confirm --days 365

Il est possible d'utiliser la préférence système PurgeSuggestionsOlderThan, du coup lancer le script sans l'option days.

Koha < 18.11

# Cleanup suggestions that are not in ASKED status
25 4 * * * /home/koha/src/misc/cronjobs/purge_suggestions.pl --days 365

Synchro dates BDD et MARC

Script UNIMARC_sync_date_created_with_marc_biblio.pl, voir tri_par_date_d_acquisition

Nombre total de prêts

Script update_totalissues.pl, voir tri_par_popularite

Long retards

Les préférences systèmes permettent d'éviter les arguments :

  • lost : DefaultLongOverdueLostValue et DefaultLongOverdueDays
  • charge : DefaultLongOverdueChargeValue

maxdays est par défaut défaut 366, c'est l'ancienneté des prêts à laquelle le script s'arrête.
mark-returned est par défaut 0.

# Turn long overdues to lost item
10 05 * * * /home/koha/src/misc/cronjobs/longoverdue.pl --confirm
Utiliser sans --confirm et avec -v pour tester

Renouvellement automatique

Concerne les prêts effectués durant la journée et dont la mention Renouvellement automatique a été cochée lors du prêt (cf module circulation).

Doit être paramétré en fin de journée mais avant la génération des lettres de relance.
# Automatic issues renewal
10 20 * * * /home/koha/src/misc/cronjobs/automatic_renewals.pl
En 3.22 :
Le système en 3.22 va comparer les dates avec l'heure, fonction de "Pas de renouvellement avant" (lequel est pourtant en jours).
Pour un prêt avec la date de retour jour J H 23:59, le renouvellement ne peut se faire qu'après mais après il est en retard.
Le patch BZ14395 corrige cela mais il n'est intégré qu'en 16.05.
Une façon de corriger est de mettre dans la règle de circulation la valeur 1 pour "Pas de renouvellement avant".
Un script tournant en cron le soir va renouveler à la date d’échéance du prêt.

Expiration compte adhérent

Envoi courriel aux adhérents dont le compte va expirer (cf préférence système : MembershipExpiryDaysNotice).
Il faut également paramétrer le texte de la notification MEMBERSHIP_EXPIRY

# Notify patrons expiration
0 8 * * * /home/koha/src/misc/cronjobs/membership_expiry.pl -c

Périodiques en retard

Passe de en attente à en retard les fascicules de périodiques.

# Change status of serial issues that are late
0 8 * * * /home/koha/src/misc/cronjobs/serialsUpdate.pl -c

Une note en anglais "Automatically set to late" va être posée sur le fascicule, il est possible de la spécifier avec :

--note "Mise en retard automatique"

Amendes

# Calculating fines (must be run after midnight)
5 2 * * * /home/koha/src/misc/cronjobs/fines.pl

Amendes statiques

FIXME

# Static fines
20 4 * * * /home/koha/src/misc/cronjobs/staticfines.pl --library ROCH --category ADULT,1 --category PERSONNEL,1 --delay 21

FIXME 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.

Modifications automatiques d'exemplaires par ancienneté

# Item modification by age
0 3 * * * /home/koha/src/misc/cronjobs/automatic_item_modification_by_age.pl --confirm > /dev/null 2>&1

Retirer --confirm pour tester sans modifier la base de données.

Pour le paramétrage, voir Paramétrer la suppression automatique d'un statut.

Passage de catégorie enfant à adulte

A partir de 19.11

# Category change by age
50 3 * * * /home/koha/src/misc/cronjobs/update_patrons_category.pl --too_old -f=ENFANT1 -t=ADULTE1 --confirm
Utiliser -v pour plus de verbosité

Avant 19.11

# Category change by age
50 3 * * * /home/koha/src/misc/cronjobs/j2a.pl -f=ENFANT1 -t=ADULTE1

Rotation des stocks

FIXME à developper

# Stock rotation
20 1 * * *  /home/koha/src/misc/cronjobs/stockrotation.pl --execute

Introduit par Bug 11897

koha/scripts/crontab.txt · Dernière modification: 2021/04/06 12:36 de fsomers
CC Attribution-Share Alike 4.0 International Sauf mention contraire, le contenu de ce wiki est placé sous les termes de la licence suivante : CC Attribution-Share Alike 4.0 International