RPOST(1)

NOM
rpost – Publication d’articles sur un serveur de nouvelles NNTP

SYNOPSIS
rpost [ hôte ] [ @fichier ] [ -s | -S fichier ] [ -e | -E fichier ] [ -b fichier_batch ] [ -r fichier_rnews chemin_rnews ] [ -p préfixe ] [ -Q ] [ -d ] [ -U id_utilisateur] [ -P mot_de_passe ] [ -M ] [ -N numéro_port ] [ -l fichier_phrases ] [ -D ] [ -T délai ] [ -u ] [ -n ]

[ -F fichier_perl ] [ -i ] [ -z ] [ -f filtre $$o=fichier_émis arg1_filtre ... ]

DESCRIPTION
rpost publie un ou plusieurs articles sur l’hôte. Si cet hôte n’est pas indiqué, rpost utilise la variable d’environnement NNTPSERVER. L’hôte peut facultativement inclure le numéro de port sous la forme hôte:port. Si cette forme est utilisée, tout numéro de port indiqué à l’aide de l’option -N est ignoré.

Options générales

@fichier

Cette option fait que rpost lise d’autres options à partir d’un fichier en plus de celles de la ligne de commande.

-D Cette option fait que rpost journalise dans debug.suck divers messages de débogage destinés principalement aux développeurs.

-e | -E fichier

Ces options font que les messages d’erreur sont envoyés à un fichier de remplacement au lieu de la sortie standard d’erreur. La version en minuscule, -e, envoie les messages d’erreur dans le fichier par défaut défini dans suck_config.h. Le fichier par défaut est suck.errlog. La version en capitale, -E, requiert un fichier comme argument. Tous les messages d’erreur sont envoyés dans ce fichier.

-i

Cette option fait que rpost ignore le 201 (publication non autorisée) du message d’accueil et essaie quand même de publier. Quelques serveurs de nouvelles récents (inn-2.3.1) envoient « 201 no posting allowed » lorsqu’ils utilisent les commandes de AUTHINFO pour vérifier le droit de publier.

-l fichier_phrases

Cette option fait querpost charge un autre fichier de phrases au lieu d’utiliser des messages internes. Cela permet à rpost d’afficher des phrases dans une autre langue ou de personnaliser des messages sans avoir à recompiler. Consulter la section PHRASES EN D’AUTRES LANGUES dans suck(1) pour plus de détails.

-M

Cette option fait que rpost envoie la commande « mode reader » au serveur distant. Si un message de commande non valable de rpost est reçu immédiatement après le message d’accueil, cette option est à essayer.

-n

Cette option fait que rpost affiche le nom du fichier pendant son téléversement.

-N numéro_port

Cette option fait que rpost utilise un autre numéro de port NNTP pour la connexion à l’hôte au lieu de celui par défaut, 119.

-s | -S fichier

Ces options envoient tous les messages d’état dans un fichier de remplacement au lieu de la sortie standard. La version en minuscule, -s, envoie les messages d’état dans le fichier par défaut défini à la compilation dans suck_config.h. Le fichier par défaut est /dev/null, auquel cas aucun message d’état n’est affiché. La version en capitale, -S, requiert un nom de fichier comme argument. Tous les messages d’état sont alors envoyés dans ce fichier.

-T Cette option outrepasse la valeur TIMEOUT définie à la compilation. C’est l’indication du temps d’attente de rpost pour les données de l’hôte distant avant d’abandonner.

-u Cette option fait que rpost envoie la commande « AUTHINFO USER » immédiatement après la connexion au serveur distant plutôt que d’attendre une requête d’autorisation. Les options -U et -P doivent être fournies lors de l’utilisation de cette option.

-U userid -P password

Ces deux options permettent d’indiquer un identifiant d’utilisateur et un mot de passe si le serveur NNTP les demande.

-Q

Cette option permet d’indiquer l’identifiant utilisateur et le mot de passe à l’aide des variables d’environnement NNTP_USER et NNTP_PASS au lieu de les indiquer sur la ligne de commande. Cela évite un problème de sécurité potentiel permettant à quelqu’un effectuant une commande ps(1) de voir l’identifiant de connexion et le mot de passe.

-z Cette option fait que rpost utilise SSL pour communiquer avec les hôtes distants si SSL a été compilé dans rpost.

MODE ENTRÉE STANDARD
rpost

rpost hôte

rpost lit un article sur l’entrée standard et l’envoie au serveur NNTP. L’article doit avoir un entête d’au moins deux lignes, nommément « Newsgroups: » et « Subject: », et un corps (l’article). L’entête et le corps doivent être séparés par un caractère de nouvelle ligne. rpost ne change en aucune façon l’article.

rpost utilise la commande POST pour publier l’article, comme tout lecteur de nouvelles standard. Cela est pratique lors de l’utilisation de SLIP et PPP, car la plupart des fournisseurs ne permettent pas d’autres méthodes de publication d’article (telles que nntpsend(8) ou innxmit(1)).

MODE TRAITEMENT PAR LOTS

rpost hôte -b fichier_batch -p préfixe -d

Ce mode de traitement par lots permet d’indiquer à rpost une liste d’articles et de les publier.

-b fichier_batch

Une liste des articles à publier. Ce paramètre est REQUIS. Ce fichier contient un article par ligne, celle-ci étant le chemin du fichier contenant l’article. Par exemple :

    -b /usr/spool/news/out.going/pixi

En cas de problème pour téléverser un article particulier, un fichier d’échec est créé. Il est appelé fichier_batch.fail, et il contient la ligne du fichier_batch pour le(s) article(s) dont le téléversement a échoué. Ce fichier peut être utilisé pour publier à nouveau ces messages ayant échoué à l’aide de rpost. Remarque : les articles dupliqués NE sont PAS considérés comme une erreur pour le fichier d’échecs.

-d

Si le téléversement des articles a réussi, cette option fera que rpost supprime le fichier_batch indiqué avec l’option -b.

-p préfixe

Si le fichier_batch ne fournit pas les chemins complets, mais des chemins partiels, ce paramètre doit être indiqué. C’est utile lorsque le fichier_batch est généré par un autre programme. Par exemple, le format INN liste les chemins pour le fichier out.going relativement à son répertoire de base /usr/spool/news. Dans ce cas, utiliser simplement :

     -p /usr/spool/news

MODE RNEWS
rpost hôte -r fichier_rnews chemin_rnews

Cette option permet d’utiliser le(s) fichier(s) généré(s) par rnews(1) pour rpost. Deux paramètres sont nécessaires.

fichier_rnews est le nom de base des fichiers rnews. Si les fichiers rnews sont appelés batch1, batch2, etc., alors cet argument est « batch ».

chemin_rnews est le chemin de l’emplacement des fichiers_rnews.
    -r batch /usr/tmp/rnews

-d

Si le téléversement de tous les articles des fichiers rnews réussit, cette option fait que rpost supprime ce fichier rnews particulier.

MODES FILTRE
-f filtre $$o=fichier_émis arg1_filtre arg2_filtre ...

Dans de nombreux cas, chaque article doit être adapté avant que le serveur NNTP distant l’accepte. Cette option et l’option de filtre Perl incorporé ci-après permettent de le faire. Ces filtres ne fonctionnent pas en mode ENTRÉE STANDARD, mais dans les modes TRAITEMENT PAR LOTS et RNEWS ci-avant. Notez que l’option -f .... doit être la DERNIÈRE option, car tout ce qui suit est transmis au filtre à l’exception de ce qui est noté ci-après. Trois paramètres sont requis.

$$o=fichier_émis    – fichier_émis est le nom du fichier produit par
le filtre qui sera téléversé vers le serveur NNTP distant. Il N’est PAS passé au programme filtre. Il peut être spécifié n’importe où sur la ligne de commande APRÈS l’argument de -f de filtre, soit avant le nom du filtre, soit après.

filtre – nom du programme à appeler. Tout ce qui suit, EXCEPTÉ pour le $$o, constitue des arguments passés au filtre.

arg1 – premier argument du script ou du programme de filtrage. C’est très probablement $$i que rpost remplit avec le nom de l’article qui doit être nettoyé.

arg2 ... – tout argument supplémentaire nécessaire peut être indiqué.

Clarifions un peu cela avec un exemple. Certains serveurs NNTP n’apprécient pas de recevoir des articles dont le champ NNTP-Posting-Host est déjà rempli. Créons un court script d’interpréteur pour supprimer cela d’un fichier :

-mon_script--------------------------------------------

#!/bin/sh

sed -e "/^NNTP-Posting-Host/d" $1 > $2

-fin mon_script----------------------------------------

Puis appeler rpost de cette manière :
    rpost localhost -b /usr/spool/news/out.going/pixi -f mon_script \$\$o=/tmp/MSG_FILTRÉ \$\$i /tmp/MSG_FILTRÉ

Puis, avant le téléversement de chaque article, mon_script est appelé comme ceci :
    mon_script fichier_entrée /tmp/MSG_FILTRÉ

Quand mon_script a terminé, rpost téléverse l’article nettoyé, stocké dans /tmp/MSG_FILTRÉ, vers le serveur NNTP distant.

NOTE
$$o et $$i doivent être protégés en utilisant des controbliques comme ci-dessus, ou avec des guillemets droits simples, pour éviter que l’interpréteur de commandes ne les interprète comme des variables. Oublier de les protéger fera que rpost ne fonctionnera pas.

-F filtre_perl

Cette option permet d’utiliser un filtre Perl intégré pour filtrer les articles. Pour cela, le fichier Makefile doit être édité et les diverses options PERL_ définies. Cela a quelques avantages par rapport à l’option -f ci-avant. Puisque c’est du Perl incorporé, aucun fork() ou execl() n’est exécuté, donc cela devrait être plus rapide. Aussi, il n’est pas besoin de se préoccuper des arguments du programme et de la protection de $$, etc., comme ci-dessus.

Au démarrage, rpost charge le fichier de filtre Perl indiqué et l’analyse pour rechercher des erreurs de syntaxe. Puis, pour chaque article à téléverser, rpost appelle la sous-routine « perl_rpost » contenue dans le fichier de filtre Perl. Consulter sample/put.news.pl pour un exemple de fonctionnement complet. Trois points clés doivent être pris en compte lors de la création du filtre.

    1. Le fichier de filtre Perl doit contenir la ligne « package Embed::Persistant; », de façon que les variables du filtre Perl n’entrent pas en conflit avec les variables de rpost et la sous-routine doit être appelée « perl_rpost ». Cela peut être changé en modifiant PERL_RPOST_SUB définie dans suck_config.h.

    2. La sous-routine perl_rpost reçoit le nom du fichier d’entrée comme seul argument et doit renvoyer le chemin complet de l’emplacement de l’article filtré sous forme d’une unique chaine scalaire (renvoie $fichier_émis).

    3. La sous-routine doit explicitement clore le fichier de sortie (contenant l’argument filtré) avant de rendre la main. Cela est dû au fait que Perl ne fait une fermeture automatique qu’à la fin du programme (dans notre cas, quand rpost se termine), ou quand le descripteur de fichier est réutilisé (la prochaine fois que la sous-routine est appelée). Si cette fermeture n’est pas faite, alors très probablement, un fichier de zéro octet existera quand rpost essaiera de publier l’article, et des erreurs en découleront.

AVERTISSEMENT

Il faut être très attentif à ce que le programme de filtrage supprime de l’article. La suppression de la mauvaise ligne pourrait avoir des effets dommageables ensuite. Par exemple, il ne faut pas supprimer la ligne MSG-ID, car cela pourrait entrainer l’envoi d’un seul message plusieurs fois selon la configuration des serveurs de nouvelles locaux et distants.

FICHIER D’ARGUMENTS DE RPOST

Si @fichier est indiqué sur la ligne de commande, rpost lit le fichier et l’analyse pour en extraire tout argument destiné à rpost. Les arguments dans ce fichier sont spécifiés comme ils le sont dans la ligne de commande. Les arguments doivent être sur une seule ligne ou répartis sur plus d’une ligne. Des commentaires peuvent aussi être utilisés. Ils commencent par un croisillon (#) et vont jusqu’à la fin de la ligne. Tous les arguments de ligne de commande outrepassent les arguments dans le fichier. L’avantage d’utiliser ce fichier plutôt que la ligne de commande est qu’il n’est nul besoin de protéger tout caractère spécial tel que le dollar ($).

    Exemple de fichier d’arguments
    -b batch # option de fichier batch
    -M    # utiliser l’option de mode lecteur

VALEURS RENVOYÉES
rpost renvoie les valeurs de retour suivantes :

    0 = succès
    1 = erreur dans la publication d’un article
    2 = impossible d’obtenir l’autorisation NNTP pour le serveur distant.
    3 = réponse inattendue à la commande pour l’autorisation NNTP.
    -1 = autre erreur fatale.

VOIR AUSSI
suck(1), testhost(1), lpost(1).

TRADUCTION
La traduction française de cette page de manuel a été créée par Jean-Paul Guillonneau <guillonneau.jeanpaul@free.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 (https://www.gnu.org/licenses/gpl-3.0.html) concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.