Ceci est une ancienne révision du document !


Dernière mise-à-jour : 2020/01/30 03:36

SO207 - Gestion des Impressions

Commandes AT&T

Introduction

Les commandes de gestion d'impression sous Solaris sont celles d'AT&T :

Commande Description
lpadmin Principale commande d'administration pour ajouter, supprimer et modifier des spools
accept Autorise le dépôt de requêtes dans un spool
reject Interdit le dépôt de requêtes dans un spool
enable Autorise le traitement des requêtes dans un spool
disable Interdit le traitement des requêtes dans un spool
lpstat Liste des travaux en attente
cancel Supprime des requêtes
lpmove Déplace des travaux en attente d'un spool à un autre

Plusieurs répertoires sont importants pour le fonctionnement du système d'impression :

  • /dev/printers
    • contient des liens vers les devices des imprimantes USB
  • /etc/lp
    • contient les configurations des imprimantes
  • /usr/lib/lp/model
    • contient les quatre modèles standards - standard, standard_foomatic, netstandard et netstandard_foomatic. Un modèle est un fichier à associer à une imprimante. Ce fichier peut être un script ou un programme fourni par le fabricant d'une imprimante spécifique. Quand un modèle est associé à une imprimante, il s'appelle une interface
  • /usr/lib/lp/postscript
    • contient des filtres Postscript
  • /var/spool/print
    • contient la queue d'impression

Configuration de base

lpstat et lpadmin

Sans intervention préalable de l'administrateur, aucune imprimante n'est configurée sur un système Solaris. Il convient d'utiliser la commande lpstat pour visualiser l'état du système d'impression :

# lpstat -t
l'ordonnanceur ne fonctionne pas
aucune destination par défaut du système

<note> Utiliser le manuel de la commande lpstat pour vous renseigner sur les options disponibles. </note>

Pour ajouter une imprimante, il convient d'utiliser la commande lpadmin :

# lpadmin -p impr1 -v /dev/printers/0 -m standard_foomatic
UX:lpadmin : AVERTISSEMENT : "/dev/printers/0" est accessible à d'autres
                           utilisateurs.
               À CORRIGER : Si d'autres utilisateurs peuvent y accéder,
                           vous risquez d'obtenir
                           des résultats indésirables. Si cela ne vous
                           convient pas,
                           remplacez le propriétaire par "lp" et
                           le mode par 0600.
                           Le traitement continue.

Dans cet exemple les options sont :

  • -p
    • indique le nom de l'imprimante
  • -v
    • indique le périphérique physique
  • -m
    • indique le modèle à utiliser

accept, enable, reject et disable

Il est maintenant possible d'activer l'imprimante grâce aux commandes accept et enable :

# accept impr1
la destination "impr1" accepte désormais les requêtes
# enable impr1
imprimante "impr1" maintenant activée

<note tip> Les deux commandes accept et enable ont leurs opposées : reject et disable. </note>

Pour nommer une imprimante en tant que la destination par défaut, il convient d'utiliser la commande lpadmin avec l'option -d :

# lpadmin -d impr1

A l'issu de cette commande, il est possible de constater l'état du système d'impression :

# lpstat -t
l'ordonnanceur est en cours d'exécution
imprimante par défaut du système : impr1
périphérique pour impr1: /dev/printers/0
impr1 requêtes acceptées depuis 19 mars 2009 13:19:00 CET
imprimante impr1 inactif. activé car 19 mars 2009 13:19:10 CET. disponible.

lp et cancel

Avant de procéder, il est important de tester le fonctionnement de la destination :

# echo "test print job" > test.print
# lp test.print
l'id de demande est impr1-1 (1 file(s))

Dans le cas d'un problème d'impression, il est possible de supprimer la tâche d'impression grâce à la commande cancel, par exemple :

# cancel impr1-1

Le système envoie aussi un message à root dans le cas d'un problème d'impression :

La commande lpstat peut être utilisée avec les option -p et -l :

# lpstat -p -l
imprimante impr1 inactif. activé car 19 mars 2009 13:19:10 CET. disponible.

<note> Consultez le manuel et Internet pour comprendre la signification de l'option -l. </note>

Solaris Print Manager

La configuration des imprimantes peut également être faite en utilisant le Solaris Print Manager. Le Print Manager peut être lancé avec la commande suivante :

# /usr/sadm/admin/bin/printmgr
Java Accessibility Bridge for GNOME loaded.

lpmove

Pour simuler l'ajout d'une deuxième imprimante, saisissez la commande suivante :

# lpadmin -p impr2 -v /dev/printers/0 -m standard_foomatic
UX:lpadmin : AVERTISSEMENT : "/dev/printers/0" est accessible à d'autres
                           utilisateurs.
               À CORRIGER : Si d'autres utilisateurs peuvent y accéder,
                           vous risquez d'obtenir
                           des résultats indésirables. Si cela ne vous
                           convient pas,
                           remplacez le propriétaire par "lp" et
                           le mode par 0600.
                           Le traitement continue.

Activez ensuite la destination impr2:

# accept impr2
la destination "impr2" accepte désormais les requêtes
# enable impr2
imprimante "impr2" maintenant activée

Lancez maintenant une impression sur la destination par défaut :

# lp test.print
l'id de demande est impr1-3 (1 file(s))
# lpstat
impr1-2                 root                15   mars 19 13:24
impr1-3                 root                15   mars 19 13:29

A tout moment l'administrateur a la possibilité de transférer les tâches d'impressions vers une autre destination grâce à la commande lpmove, par exemple :

# lpmove impr1 impr2

<note> Supprimez les deux tâches d'impression impr1-2 et impr1-3. </note>

Pour supprimer les destinations précédemment créées, il convient d'utiliser la commande lpadmin avec l'option -x :

# lpadmin -x impr2
# lpadmin -x impr1

Classe d'imprimantes

Une classe est un ensemble ordonné d'imprimantes. Les requêtes envoyées à la classe sont imprimées sur la première imprimante disponible.

Pour créer une classe il convient d'utiliser la commande lpadmin avec l'option -c suivie par le nom de la classe à créer, par exemple :

# lpadmin -p impr1 -c classe1
# lpadmin -p impr2 -c classe1

Pour être fonctionnelle, une classe n'a pas besoin de la commande enable mais uniquement de la commande accept.

La configuration du système d'impression se trouve dans le répertoire /etc/lp :

# ls -l /etc/lp
total 28
drwxr-xr-x   2 root     lp           512 févr. 28 11:07 alerts
drwxrwxr-x   2 lp       lp           512 févr. 28 11:07 classes
drwxr-xr-x   2 root     lp           512 févr. 28 11:09 fd
-rw-rw-r--   1 lp       lp          3378 mars 19 13:18 filter.table
drwxrwxr-x   2 lp       lp           512 févr. 28 11:07 forms
drwxrwxr-x   2 lp       lp           512 mars 19 13:35 interfaces
lrwxrwxrwx   1 root     root          17 févr. 28 11:07 logs -> ../../var/lp/logs
lrwxrwxrwx   1 root     root          17 mars 19 13:18 model -> /usr/lib/lp/model
drwxrwxr-x   2 lp       lp           512 févr. 28 11:07 ppd
drwxrwxr-x   4 lp       lp           512 mars 19 13:35 printers
drwxrwxr-x   2 lp       lp           512 févr. 28 11:07 pwheels

La configuration globale du système d'impression se trouve dans le fichier /etc/printers.conf.

Pour retirer une imprimante d'un classe, il convient d'utiliser la commande lpadmin avec l'option -r suivie par le nom de la classe, par exemple :

# lpadmin -p impr2 -r classe1

Dernièrement,il est possible d'affecter des priorités aux tâches et/ou aux utilisateurs. Pour connaître le priorité par défaut, il convient d'utiliser la commande lpusers avec l'option -l :

# lpusers -l
Priorité par défaut : 20
Limite de priorité pour les utilisateurs n'apparaissant pas ci-dessous : 0
Priorité  Utilisateurs

CUPS

Introduction

Le logiciel Common Unix Printing System est un système de gestion des impressions conçu pour Unix. Cups utilise le protocole IPP.

Ce protocole :

  • est une extension du protocole HTTP
  • permet d'administrer CUPS via un navigateur web
  • permet de décrire les spools d'impression par simple URL

Installation

Installez CUPS à partir des dépôts CSW :

# /opt/csw/bin/pkgutil --install cups [Entrée]

Daemon cupsd

cupsd est le daemon principal du système CUPS. Quand cupsd traite une impression, il transmet les données à un filtre en fonction du modèle d'imprimante. Après traitement par le filtre, cupsd transmet le résultat à un backend qui se charge de l'impression. Les échanges entre cupsd et ces programmes se font via des répertoires de spools et des tubes.

Configuration

La configuration du serveur CUPS est accomplie via le fichier /opt/csw/etc/cups/cupsd.conf. La syntaxe utilisée est très proche de celle utilisée pour la configuration du serveur Apache.

Par exemple :

#
# "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $"
#
#   Sample configuration file for the Common UNIX Printing System (CUPS)
#   scheduler.  See "man cupsd.conf" for a complete description of this
#   file.
#

# Log general information in error_log - change "info" to "debug" for
# troubleshooting...
LogLevel info

# Administrator user group...
SystemGroup lpadmin

# Only listen for connections from the local machine.
Listen localhost:631
Listen /opt/csw/var/run/cups/cups.sock

# Show shared printers on the local network.
Browsing On
BrowseOrder allow,deny
BrowseAllow all

# Default authentication type, when authentication is required...
DefaultAuthType Basic

# Restrict access to the server...
<Location />
  Order allow,deny
</Location>

# Restrict access to the admin pages...
<Location /admin>
  Encryption Required
  Order allow,deny
</Location>

# Restrict access to configuration files...
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
</Location>

# Set the default printer/job policies...
<Policy default>
  # Job-related operations must be done by the owner or an administrator...
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job CUPS-Move-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  # All administration operations require an administrator to authenticate...
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # All printer operations require a printer operator to authenticate...
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>

  # Only the owner or an administrator can cancel or authenticate a job...
  <Limit Cancel-Job CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>

  <Limit All>
    Order deny,allow
  </Limit>
</Policy>

#
# End of "$Id: cupsd.conf.in 7199 2008-01-08 00:16:30Z mike $".
#

Dans ce fichier on peut trouver :

  • le port d'ecoute d'IPP
  • le niveau de journalisation
  • la configuration du serveur Browse, c'est-à-dire de découverte des imprimantes réseaux
  • les ACL d'accès au spools
  • les ACL d'accès à l'administration du serveur.

Ajoutez les deux lignes suivantes dans la section # Administrator user group… afin de pouvoir administrer CUPS en tant que root puis sauvegardez votre fichier :

Group sys
User root

Vous obtiendrez un résultat similaire à celui-ci :

# Administrator user group...
SystemGroup sys root
Group sys
User root

Administration

Le serveur CUPS est administré en ligne de commande par l'utilisation d'une ou de plusieurs des commandes se trouvant dans /opt/csw/bin et /opt/csw/sbin :

Commande Description
lpadmin Principale commande d'administration pour ajouter, supprimer et modifier des spools
accept Autorise le dépôt de requêtes dans un spool
reject Interdit le dépôt de requêtes dans un spool
enable Autorise le traitement des requêtes dans un spool
disable Interdit le traitement des requêtes dans un spool
lpstat Liste des travaux en attente
cancel Supprime des requêtes
lpmove Déplace des travaux en attente d'un spool à un autre
lpinfo Affiche la liste des filtres ou backends disponibles
lppasswd Gère les comptes et les mots de passe pour l'accès web

Afin de facilter la gestion de CUPS, il convient de désactiver les commandes lp* de Solaris en les remplaçant par les commandes de CUPS :

# cd /usr/bin
# for i in lp lpstat cancel enable ; do
> mv $i $i.old
> ln -s /opt/csw/bin/$i .
> done
# cd /usr/sbin
# for i in lpadmin lpmove accept ; do
> mv $i $i.old
> ln -s /opt/csw/sbin/$i .
> done

Démarrez maintenant le serveur CUPS :

# /opt/csw/sbin/cupsd

Filtres

Les filtres disponibles au système CUPS se trouvent dans le répertoire /opt/csw/lib/cups/filter :

# ls /opt/csw/lib/cups/filter
gziptoany      imagetops      pdftops        rastertodymo   rastertohp     texttops
hpgltops       imagetoraster  pstops         rastertoepson  rastertolabel

Backends

Les Backends disponibles au système CUPS se trouvent dans le répertoire /opt/csw/lib/cups/backend :

# ls /opt/csw/lib/cups/backend
http      ipp       lpd       parallel  scsi      serial    snmp      socket    usb

La liste des backends disponibles peut être obtenu en saisissant la commande suivante :

#/opt/csw/sbin/lpinfo -v [Entrée]

Par exemple :

# /opt/csw/sbin/lpinfo -v
network socket
network http
network ipp
network lpd
direct parallel:/dev/lp1
direct parallel:/dev/ecpp0

<note> Expliquez pourquoi la liste ci-dessus semble être incomplète. </note>

Il y a un type de backend par liaison locale d'imprimante (usb, série, parallèle). Il peut y avoir aussi un backend par type de protocole réseau :

Backend Description
IPP Client IPP
LPD Client LPD
HTTP Client HTTP
Socket Client JetDirect sur port tcp/9100

T.P.- Ajouter une imprimante

Pour ajouter une imprimante en ligne de commande,il convient d'utiliser la commande CUPS lpadmin qui prend la forme :

/opt/csw/sbin/lpadmin -p imprimante -E -v DeviceURI -m ppd ENTER

Les options de cette commande sont les suivantes :

Options Description
-p Le nom de la file
-v L'imprimante physique ou réseau sous forme URL
-m Le fichier PPD qui identifie l'imprimante
-E Applique les commandes accept et enable à l'imprimante

Les types de DeviceURI sont :

URL Description
file:/chemin/fichier Impression dans un fichier
http://serveur:631/ipp/port1 Impression via http
lpd:serveur/queue | Impression via LPD | | ipp:serveur:631/printers/queue Impression via IPP
smb:workgroup/serveur/nompartage | Impression via SMB | | socket:serveur Impression via JetDirect
serial:/dev/ttyS0?baud=1200+bits=8+parity=none+flow=none Impression via port série
parallel:/dev/lp0 Impression via port parallèle

Les types de ppd connus de CUPS peuvent être visualiser avec la commande CUPS lpinfo :

# /opt/csw/sbin/lpinfo -m [Entrée]

Par exemple :

# /opt/csw/sbin/lpinfo -m
dymo.ppd Dymo Label Printer, 1.3
epson9.ppd Epson 9-Pin Series, 1.3
epson24.ppd Epson 24-Pin Series, 1.3
stcolor2.ppd Epson New Stylus Color Series, 1.3
stphoto2.ppd Epson New Stylus Photo Series, 1.3
stcolor.ppd Epson Stylus Color Series, 1.3
stphoto.ppd Epson Stylus Photo Series, 1.3
deskjet.ppd HP DeskJet Series, 1.3
laserjet.ppd HP LaserJet Series PCL 4/5, 1.3
intelbar.ppd Intellitech IntelliBar Label Printer, 1.3
okidata9.ppd Oki 9-Pin Series, 1.3
okidat24.ppd Oki 24-Pin Series, 1.3
raw Raw Queue
zebracpl.ppd Zebra CPCL Label Printer, 1.3
zebraep1.ppd Zebra EPL1 Label Printer, 1.3
zebraep2.ppd Zebra EPL2 Label Printer, 1.3
zebra.ppd Zebra ZPL Label Printer, 1.3

Cette commande détaille les fichiers .ppd se trouvant dans le répertoire /opt/csw/share/cups/model :

# ls /opt/csw/share/cups/model
deskjet.ppd   epson9.ppd    okidat24.ppd  stcolor2.ppd  zebra.ppd     zebraep2.ppd
dymo.ppd      intelbar.ppd  okidata9.ppd  stphoto.ppd   zebracpl.ppd
epson24.ppd   laserjet.ppd  stcolor.ppd   stphoto2.ppd  zebraep1.ppd

Pour mieux comprendre, ajoutez une imprimante HP Deskjet sur port parallèle :

  # /opt/csw/sbin/lpadmin -p DeskJet -E -v parallel:/dev/printers/0 -m deskjet.ppd

Ajoutez maintenant une imprimante HP Laserjet sur une interface réseau JetDirect à 192.168.0.23 :

  # /opt/csw/sbin/lpadmin -p LaserJet -E -v socket://192.168.0.23 -m laserjet.ppd

Téléchargez maintenant le fichier epl5900.ppd.gz pour une EPSON EPL-5900 à partir de l’accueil de cette leçon . Décompressez le fichier et déplacez-le dans le répertoire /opt/csw/share/cups/model. Dernièrement ajoutez une imprimante EPSON EPL-5900 sur port usb :

  # /opt/csw/sbin/lpadmin -p EPL5900 -v usb:/EPSON/EPL-5900 -m epl5900.ppd

Les informations concernant les imprimantes configurée(s) sont stockées dans le fichier /opt/csw/etc/cups/printers.conf.

Par exemple :

# cat /opt/csw/etc/cups/printers.conf
# Printer configuration file for CUPS v1.3.9
# Written by cupsd on 2009-03-19 17:03
<Printer DeskJet>
Info DeskJet
DeviceURI parallel:/dev/printers/0
State Idle
StateTime 1237476933
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
<Printer EPL5900>
Info EPL5900
DeviceURI usb:/EPSON/EPL-5900
State Stopped
StateMessage
StateTime 1237478608
Accepting No
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>
<Printer LaserJet>
Info LaserJet
DeviceURI socket://192.168.0.23
State Idle
StateTime 1237476947
Accepting Yes
Shared Yes
JobSheets none none
QuotaPeriod 0
PageLimit 0
KLimit 0
OpPolicy default
ErrorPolicy stop-printer
</Printer>

CUPS peut également être administré en utilisant l'interface Web. Celle-ci est disponible à l'adresse http://localhost:631.

Références


<html> <center> Copyright © 2011-2018 I2TCH LIMITED.<br><br> </center> </html>

Menu