Paramétrage de la Crontab

# Delete patrons
20 4 * * 7 /home/koha/src/misc/cronjobs/delete_patrons.pl --expired_before "$(date -d '-24 month' --iso-8601)" --not_borrowed_since "$(date -d '-12 month' --iso-8601)" -c

Ne seront pas supprimés les adhérents :

  • d'une catégories de type "bibliothécaire" (S)
  • ayant un(des) prêt(s) en cours
  • ayant un débit à payer
  • étant garant

Il y a des options de limiter :

  • --category_code par catégorie d'adhérent
  • --library par site de l'adhérent
Le paramètre -c permet de confirmer. Sinon par défaut ça simule sans impacter les données.
Ajouter -v pour plus de verbosité

Purge de la table deletedborrowers dont delete_patrons.pl se sert comme corbeille

Créer le script /home/koha/bin/clean-deletedborrowers-older-than-1-month.sh

#!/bin/sh
mysql -e 'DELETE FROM deletedborrowers WHERE updated_on < NOW() - INTERVAL 1 MONTH'

Ajouter en crontab :

10 4 * * 7 /home/koha/bin/clean-deletedborrowers-older-than-1-month.sh
# 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
# update reserves
20 6 * * * /home/koha/src/misc/cronjobs/holds/cancel_unfilled_holds.pl -days 30 -holidays --confirm
cancel_unfilled_holds.pl
    [-days][-library][-holidays]

 Options:
    -help                       brief help
    -days                       cancel holds placed this many days ago which have not been filled
    -library                    [repeatable] limit to specified branch(es)
      for example: -library XXX -library YYY -library ZZZ
    -holidays                   skip holidays when calculating days waiting
    -v                          verbose

Script

# Cleanup database
10 4 * * * /home/koha/src/misc/cronjobs/cleanup_database.pl

Texte d'explication :

Le script en cron cleanup_database.pl permet de purger des tables avec une période définie. Cela diminue la taille de la base de données et améliore sa performance.

Sont déjà présents :
--sessdays 1 : table sessions qui gère la session de connexion, suppression des sessions inactives depuis un jour
--zebraqueue : queue d'indexation, 60 jours sont conservés
--z3950 : résultats de recherches z3950, purge complète

Quels durée souhaitez-vous conserver les éléments suivants :
--mail : queue d’envoie des mails, par défaut 30 jours
--logs : logs de modification (dépend de ce qui est activé), par défaut 180 jours
--import : fichier d'import dans le réservoir, par défaut 60 jours
--searchhistory : historique de recherche, par défaut 30 jours
...

FIXME plus de détails

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

Script UNIMARC_sync_date_created_with_marc_biblio.pl, voir tri_par_date_d_acquisition

Script update_totalissues.pl, voir tri_par_popularite

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

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.

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

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"
# Calculating fines (must be run after midnight)
5 2 * * * /home/koha/src/misc/cronjobs/fines.pl

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.

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

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