Scripts ligne de commande

Paul POULAIN

This document is related to Koha and is licensed to you under the GNU General Public License version 2 or later (http://www.gnu.org/licenses/gpl.html).

Koha-related documents may be reproduced and distributed in whole or in part, in any medium physical or electronic, as long as this copyright notice is retained on all copies.

You may create a derivative work and distribute it provided that you:

  1. License the derivative work with this same license, or the Linux Documentation Project License (http://www.tldp.org/COPYRIGHT.html). Include a copyright notice and at least a pointer to the license used.

  2. Give due credit to previous authors and major contributors.

Commercial redistribution is allowed and encouraged; however, the author would like to be notified of any such distributions.

No liability for the contents of this document can be accepted. Use the concepts, examples and information at your own risk. There may be errors and inaccuracies, that could be damaging to your system. Proceed with caution, and although this is highly unlikely, the author(s) do not take any responsibility.

All copyrights are held by their by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark. Naming of particular products or brands should not be seen as endorsements.

2005-02-25

Revision History
Revision 2.2.02005-02-25pp

Version initiale


1. Introduction
1.1. Généralités
1.2. Pré-requis
2. Les scripts
2.1. overduenotice.pl
2.2. fines2.pl
2.3. notifys/fines.pl
2.4. misc/merge_authorities.pl
2.5. misc/migration_tools/build_marc_word.pl
2.6. misc/migration_tools/bulkauthimport.pl
2.7. misc/migration_tools/cleanmarcdb.pl
2.8. misc/migration_tools/compare_iso_and_marc_parameters.pl
2.9. misc/migration_tools/dumpmarc.pl
2.10. misc/koha2marc.pl
2.11. misc/rebuildnonmarc.pl
2.12. misc/rebuildthesaurus.pl
2.13. update_marcsubjects.pl
2.14. misc/migration_tools/buildLANG.pl
2.15. misc/migration_tools/buildEDITORS.pl
2.16. misc/migration_tools/build6xx.pl
2.17. misc/migration_tools/bulkmarcimport.pl
2.18. misc/migration_tools/check_marc_definition.pl

1. Introduction

1.1. Généralités

Ce document présente les différents scripts d'exploitation fournis avec Koha. Il ne présente pas les scripts utilisables pour la migration des données, mais ceux qu'une bibliothèque peut mettre en place pour son fonctionnement quotidien.

Par exemple, les scripts de relance pour les retards.

1.2. Pré-requis

Pré-requis techniques :

  • Installation de Koha : on suppose que Koha est installé. $KOHA est le répertoire dans lequel se trouve l'interface bibliothécaire.

    ls -l
        $KOHA

    doit renvoyer : cgi-bin htdocs modules scripts

  • Le fichier de configuration de Koha se trouve dans /etc/koha.conf. Si ce n'est pas le cas, vous devez préciser sa localisation :

    export
        KOHA_CONF=/etc/mykoha.configfile
  • Toutes les manipulations décrites ci-après sont effectuées sur une console (shell) sur le serveur.

  • se placer dans un shell (ligne de commande) et vérifier que Perl peut trouver vos modules :

    export
        PERL5LIB=$KOHA/modules
  • Les scripts se trouvent dans le répertoire script/misc. Vous pouvez les déplacer en dehors de l'arboresence de Koha si vous les modifiez. En effet, chaque mise à jour de l'application va les écraser (en fait ils sont sauvegardés dans le répertoire de backup, mais il ne seront plus utilisés par la crontab.

  • Tous ces scripts ont vocation à être mis dans une table de tâches périodiques (crontab). En conséquence, on n'abordera pas ici la question de la méthode à suivre pour les exécuter périodiquement. Reportez vous à la doc de la crontab :

    man
        crontab

    et

    man 5
        crontab
  • Tous les scripts décrits ci-après ont fonctionné à un moment donné. Cela ne signifie pas qu'ils fonctionnent encore, ni qu'ils fonctionneront pour la version que vous avez téléchargé. Vous êtes prévenus !

2. Les scripts

2.1. overduenotice.pl

Ce script recherche les lecteurs ayant un ouvrage en retard et envoie les rappels.

Il ne fait appel à aucun paramètre de l'application, tout ce qui est personnalisable est au début du script.

Il fonctionne de la manière suivante :

  • Seuls les lecteurs dont la catégorie a "overduenoticerequired" d'activé sont traités. Les autres sont ignorés.

  • Le script envoie un mail à tous les lecteurs ayant une adresse mail renseignée.

  • Le script envoie à une adresse interne à la bibliothèque un mail avec tous les retards, pour gestion manuelle.

Les paramètres qui sont modifiables sont les suivants :

  • le délai de grâce avant les notifications (7 jours dans la version officielle)

  • le nombre de jours au delà duquel on n'envoie plus de rappel (30 jours dans la version officielle). Habituellement, au delà de ce nombre de jours le lecteur est suspendu, mais cette suspension n'est pas gérée par ce script.

  • L'adresse apparaissant en "From" sur les mails que les lecteurs recoivent.

  • Le sujet du message.

  • Le corps du message. Celui-ci est présenté sous la forme de texte, avec 2 éléments spécifiques :

    • les caractères spéciaux comme \n (saut de ligne) ou \t (tabulation)

    • les zones qui seront remplacées par leur valeur lors de l'exécution du script. Ces zones sont entre crochets : <date> (la date du jour) <itemcount> (le nombre de documents en retard) <firstname> (le prénom) <lastname> (le nom) <address1> <address2> <address3> <city> (l'adresse) <postcode> (le code postal)

2.2. fines2.pl

Ce script calcule les amendes.

Il ne fonctionne probablement plus avec la version 2.2

2.3. notifys/fines.pl

Ce script calcule les amendes.

Il ne fonctionne probablement plus avec la version 2.2

2.4. misc/merge_authorities.pl

Ce script fusionne 2 autorités passées en paramètre.

Il se lance avec les options suivantes :

  • -h (ou aucune option) : affiche les paramètres d'exécution

  • -f X (pour "from"), ou X est un numéro d'autorité. Va fusionner l'autorité X

  • -t Y (pour "to"), ou Y est un numéro d'autorité. Va fusionner dans l'autorité Y

Toutes les notices bibliographiques pointant sur l'autorité X pointent après l'exécution de ce script sur l'autorité Y.

Avant de s'exécuter, ce script va :

  • Vérifier que les 2 autorités sont du même genre.

  • Afficher les autorités pour validation (l'autorité X et l'autorité Y)

  • Effectuer la fusion si l'utilisateur la confirme.

A l'issue de la confirmation, l'autorité X devient donc inutilisée. Elle peut être supprimée depuis l'interface graphique de Koha.

Ce script dispose de deux paramètres supplémentaires :

  • -b (pour "batch", fusion en série). En mode batch, le script recherche toutes les autorités qui ont été modifiées, et modifie toutes les notices bibliographiques en conséquence. Les numéros des autorités qui ont été modifiées sont stockées dans un répertoire spécifique.

  • -n (pour "no", pas de confirmation, mode silencieux). Lorsque cette option est spécifiée, le script n'affiche rien et effectue la fusion sans demande de confirmation.

Classiquement, les modes -b et -q sont utiles lorsque l'on met le script dans les tâches périodiques (crontab), pour mettre à jour les notices bibliographiques qui utilisent une notice d'autorité qui vient d'être modifiées.

Voici un exemple de ce que j'ai dans ma crontab :

SHELL=/bin/bash

*/5 * * * * export PERL5LIB=/home/httpd/koha;export KOHA_CONF=/etc/koha.conf;/home/httpd/koha/scripts/misc/merge_authorities.pl -b -n

2.5. misc/migration_tools/build_marc_word.pl

Script qui ne concerne que les installations en MARC21. Reconstruit la table marc_word avec certains mots seulement, pour de meilleurs temps de réponse.

2.6. misc/migration_tools/bulkauthimport.pl

script qui devrait migrer des notices d'autorités iso2709, sur le même modèle que bulkmarcimport.pl Ne fonctionne pas dans la version 2.2.2.

2.7. misc/migration_tools/cleanmarcdb.pl

Ne fonctionne pas au moment de la rédaction du document (2.2.2), mais devrait être simple à corriger.

2.8. misc/migration_tools/compare_iso_and_marc_parameters.pl

Affiche la liste des sous-champs MARC qui sont utilisés dans un fichier iso2709, mais pas déclarés dans le paramétrage des grilles de catalogage.

Affiche la liste des sous-champs déclarés dans le paramétrage des grilles de catalogage mais inutilisés dans un fichier iso2709.

Ce script aide à détecter les erreurs de paramétrage.

Il se lance avec les options suivantes :

  • -v ou aucune option : affiche les paramètres d'exécution.

  • -file fichier.iso : le fichier iso à comparer à la structure du catalogue.

  • -w élimine des avertissements si le fichier iso2709 présente des irrégularités de format.

  • -c codegrille : la grille de catalogage d'ou récupérer les paramètres MARC. Si ce paramètre est omis, ce script utilise la grille de catalogage par défaut.

2.9. misc/migration_tools/dumpmarc.pl

Ce script affiche un fichier iso2709 sous une forme lisible.

Il se lance avec les options suivantes :

  • -v ou aucune option : affiche les paramètres d'exécution.

  • -file fichier.iso : le fichier à afficher

  • -n numero : le numéro de la notice à afficher (numéro d'ordre dans le fichier)

  • -w : active ou désactive les averstissements si le fichier n'est pas strictement iso2709. Si le script échoue sans le -w, essayez de le relancer avec, mais sachez que votre fichier n'est pas iso2709 ! Si cela fonctionne avec l'option -w, c'est que le défaut n'est pas énorme. Sinon, même le -w aboutira à un échec.

2.10. misc/koha2marc.pl

Utile seulement pour les bibliothèques avec une ancienne version de Koha (1.2) ou un paramétrage MARC=OFF, ce qui n'est le cas d'aucune bibliothèque francophone.

Ce script reconstruit la base MARC à partir de la base non-MARC.

Attention, il ne faut JAMAIS le lancer si vous avez MARC=ON, sinon vous allez supprimer une bonne partie de vos données !!!

2.11. misc/rebuildnonmarc.pl

Ce script est le contraire du précédent. Il n'est utile que pour les bibliothèques ayant MARC=ON.

Il reconstruit la base non-MARC de Koha à partir du paramétrage et des données MARC.

Il doit être lancé lorsque quelque chose est modifié dans le paramétrage des grilles de catalogage (notamment un lien koha <=> MARC). Ce devrait être assez rare.

Si vous vous interrogez sur la nécessité de relancer le script, expliquez sur la liste de discussion ce que vous avez fait, et nous vous répondrons bien volontiers.

2.12. misc/rebuildthesaurus.pl

script inutile, à oublier, il sera supprimé.

2.13. update_marcsubjects.pl

Script mettant à jour les mots-clefs dans la base MARC. Utile seulement pour les bibliothèques avec MARC=OFF, ce qui n'est le cas d'aucune bibliothèque francophone.

2.14. misc/migration_tools/buildLANG.pl

Petit script pour reconstruire la liste des codes de langue (liste de valeurs autorisées nommées LANG) à partir du contenu de la base de données.

Il se lance avec les paramètres suivants :

  • -h ou aucun paramètre : affiche les options d'exécution

  • -s le ou les champ/sous-champ contenant les codes langues (par exemple : "('101a','101b')" pour l'UNIMARC

  • -d supprime la table existante avant de la reconstruire

  • -l LANGUE (la langue dans laquelle les libellés de langue doivent être générés. seuls fr et en sont disponibles)

Notez que dans tous les cas la liste des codes sera la liste iso, que le libellé soit en français ou en anglais.

Vous pouvez compléter la liste après qu'elle ait été construite automatiquement, mais si vous migrez une base, une valeur qui n'est pas présente après l'exécution de ce script est une valeur qui n'est pas utilisée dans votre base, donc elle devrait être inutile (sauf en cas de nouvelle notice, bien entendu)

2.15. misc/migration_tools/buildEDITORS.pl

Script qui construit automatiquement la liste d'autorités "EDITORS", utilisée par les plugins 210$c et 225$a pour "deviner" l'auteur et la liste des collections possibles à partir de l'ISBN.

Pour que ce script fonctionne, il faut que la catégorie d'autorité ait été définie comme indiqué dans le document "migrer ses données".

Il se lance avec les paramètres suivants :

  • -c (pour "confirmation"). Ce script n'a pas besoin de paramètre. Pour éviter qu'il ne s'exécute un peu trop rapidement, s'il est lancé sans le -c, il s'arrètera sans rien faire. Il faut le lancer avec le -c pour qu'il reconstruise les "autorités" EDITORS.

  • -d efface la liste existant avant de la reconstruire. Devrait logiquement être appelé avec cette option.

2.16. misc/migration_tools/build6xx.pl

Ce script reconstruit les fichiers d'autorité à partir des notices migrées dans Koha. Il ne fonctionne pas directement en l'état. Il faut le modifier pour l'adapter aux besoins de la bibliothèques, selon la manière de gérer les autorités (la structure des autorités : $a, $a et $b, $a et $x répétés, ...)

Le présent script est juste une aide au démarrage et doit être adapté.

2.17. misc/migration_tools/bulkmarcimport.pl

Ce script importe un fichier iso2709 dans la base active de Koha. c'est le principal script de migration. Il fonctionne, mais profitez de la migration de vos données pour les nettoyer, c'est généralement une bonne idée. Dans ce cas, vous devrez modifier ce script pour l'adapter à votre comportement. Ce script fonctionne assez simplement : il lit notice par notice, met à part la ou les notices d'exemplaire, importe la notice bibliographique, puis la ou les notices d'exemplaires.

Le détail du fonctionnement de ce script est dans le document "migrer ses données"

2.18. misc/migration_tools/check_marc_definition.pl

Ce script compare les données dans la base et la structure du catalogue. Il affiche la liste des champs dans la base (probablement importés par bulkmarcimport), mais inactifs dans la grille de catalogage, et la liste des champs activés dans la grille de catalogage mais jamais remplis.

Dans le premier cas, c'est surement une erreur de paramétrage de vos grilles. Si ce n'est pas une erreur de paramétrage, vous devriez supprimer le champ au moment de l'import (bulkmarcimport).

Dans le second cas, c'est peut être une erreur, ou alors le champ est inutilisé jusqu'à ce jour et vous souhaitez commencer à l'utiliser.