Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Contatto
  • LPI.org
108.4 Lezione 1
Argomento 105: Shell e Script di Shell
105.1 Personalizzare e utilizzare l'ambiente di shell
  • 105.1 Lezione 1
  • 105.1 Lezione 2
  • 105.1 Lezione 3
105.2 Personalizzare o scrivere semplici script
  • 105.2 Lezione 1
  • 105.2 Lezione 2
Argomento 106: Interfacce Utente e Desktop
106.1 Installare e configurare X11
  • 106.1 Lezione 1
106.2 Desktop grafici
  • 106.2 Lezione 1
106.3 Accessibilità
  • 106.3 Lezione 1
Argomento 107: Attività Amministrative
107.1 Gestire account utente e gruppo e file di sistema correlati
  • 107.1 Lezione 1
  • 107.1 Lezione 2
107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione
  • 107.2 Lezione 1
  • 107.2 Lezione 2
107.3 Localizzazione e internazionalizzazione
  • 107.3 Lezione 1
Argomento 108: Servizi Essenziali di Sistema
108.1 Mantenere l'orario di sistema
  • 108.1 Lezione 1
  • 108.1 Lezione 2
108.2 Logging di sistema
  • 108.2 Lezione 1
  • 108.2 Lezione 2
108.3 Concetti base dei Mail Transfer Agent (MTA)
  • 108.3 Lezione 1
108.4 Gestire stampa e stampanti
  • 108.4 Lezione 1
Argomento 109: Fondamenti di Networking
109.1 Fondamenti dei protocolli Internet
  • 109.1 Lezione 1
  • 109.1 Lezione 2
109.2 Configurazione di rete persistente
  • 109.2 Lezione 1
  • 109.2 Lezione 2
109.3 Risoluzione dei problemi di base di una rete
  • 109.3 Lezione 1
  • 109.3 Lezione 2
109.4 Configurare un client DNS
  • 109.4 Lezione 1
Argomento 110: Sicurezza
110.1 Eseguire attività di amministrazione della sicurezza
  • 110.1 Lezione 1
110.2 Configurare la sicurezza dell'host
  • 110.2 Lezione 1
110.3 Proteggere i dati con la crittografia
  • 110.3 Lezione 1
  • 110.3 Lezione 2
How to get certified
  1. Argomento 108: Servizi Essenziali di Sistema
  2. 108.4 Gestire stampa e stampanti
  3. 108.4 Lezione 1

108.4 Lezione 1

Certificazione:

LPIC-1

Versione:

5.0

Argomento:

108 Servizi Essenziali di Sistema

Obiettivo:

108.4 Gestire stampa e stampanti

Lezione:

1 di 1

Introduzione

Le dichiarazioni di una “società senza carta” portate dall’avvento dei computer si sono dimostrate, fino a oggi, false. Molte organizzazioni si basano ancora su pagine di informazioni stampate, o “copie cartacee”. Con questo in mente possiamo capire quanto sia importante per un utente di computer sapere come stampare da un sistema, così come per un amministratore che ha bisogno di sapere come mantenere la capacità di un computer di lavorare con le stampanti.

Su Linux, così come su molti altri sistemi operativi Unix-like, lo stack software Common Unix Printing System (CUPS) permette la stampa e la gestione della stampante da un computer. Ecco uno schema molto semplificato di come un file viene stampato in Linux usando CUPS:

  1. Un utente invia un file da stampare.

  2. Il demone CUPS, cupsd, accoda il lavoro di stampa. Questo lavoro di stampa riceve un numero di lavoro da CUPS, insieme alle informazioni su quale coda di stampa contiene il lavoro e il nome del documento da stampare.

  3. CUPS utilizza dei filtri installati sul sistema per generare un file formattato che la stampante può utilizzare.

  4. CUPS invia quindi il file riformattato alla stampante per la stampa.

Vedremo questi passi in modo più dettagliato, così come installare e gestire una stampante in Linux.

Il Servizio CUPS

La maggior parte delle installazioni desktop di Linux avrà i pacchetti CUPS già installati. Nelle installazioni Linux minimali i pacchetti CUPS potrebbero non essere installati, a seconda della distribuzione. Un’installazione di base di CUPS può essere eseguita su un sistema Debian con quanto segue:

$ sudo apt install cups

Sui sistemi Fedora il processo di installazione è altrettanto facile. Sarà necessario avviare manualmente il servizio CUPS dopo l’installazione su Fedora e altre distribuzioni basate su Red Hat:

$ sudo dnf install cups
...
$ sudo systemctl start cups.service

Dopo che l’installazione è stata completata, puoi verificare che il servizio CUPS sia in esecuzione con l’uso del comando systemctl:

$ systemctl status cups.service
● cups.service - CUPS Scheduler
   Loaded: loaded (/lib/systemd/system/cups.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2020-06-25 14:35:47 EDT; 41min ago
     Docs: man:cupsd(8)
 Main PID: 3136 (cupsd)
    Tasks: 2 (limit: 1119)
   Memory: 3.2M
   CGroup: /system.slice/cups.service
           ├─3136 /usr/sbin/cupsd -l
           └─3175 /usr/lib/cups/notifier/dbus dbus://

Come molti altri demoni Linux, CUPS si basa su un insieme di file di configurazione per le sue operazioni. Di seguito sono elencati i principali d’interesse per l’amministratore di sistema:

/etc/cups/cupsd.conf

Questo file contiene le impostazioni di configurazione per il servizio CUPS stesso. Se hai familiarità con il file di configurazione del web server Apache, allora il file di configurazione di CUPS ti sembrerà abbastanza simile, dato che usa una sintassi molto simile. Il file cupsd.conf contiene impostazioni per cose come il controllo dell’accesso alle varie code di stampa in uso sul sistema, se l’interfaccia web di CUPS è abilitata o meno, così come il livello di log che il demone utilizzerà.

/etc/printcap

Questo è il file legacy che veniva usato dal protocollo LPD (Line Printer Daemon) prima dell’avvento di CUPS. CUPS creerà ancora questo file sui sistemi per retro compatibilità e spesso è un link simbolico a /run/cups/printcap. Ogni riga di questo file contiene una stampante a cui il sistema ha accesso.

/etc/cups/printers.conf

Questo file contiene ogni stampante configurata per essere usata dal sistema CUPS. Ogni stampante e la sua coda di stampa associata in questo file è racchiusa in una sezione: <Printer></Printer>. Questo file fornisce gli elenchi delle singole stampanti che si trovano in /etc/printcap.

Warning

Nessuna modifica al file /etc/cups/printers.conf dovrebbe essere fatta dalla linea di comando mentre il servizio CUPS è in esecuzione.

/etc/cups/ppd/

Questo non è un file di configurazione ma una directory che contiene i file PostScript Printer Description (PPD) per le stampanti che li utilizzano. Le capacità operative di ogni stampante saranno memorizzate in un file PPD (che termina con l’estensione .ppd). Questi sono file di testo semplice e seguono un formato specifico.

Il servizio CUPS utilizza anche il logging allo stesso modo del servizio Apache 2. I log sono memorizzati in /var/log/cups/ e contengono un access_log, un page_log e un error_log. l' access_log tiene traccia degli accessi all’interfaccia web di CUPS e delle azioni intraprese al suo interno, come la gestione della stampante. Il page_log tiene traccia dei lavori di stampa che sono stati inviati alle code di stampa gestite dall’installazione CUPS. L' error_log contiene messaggi sui lavori di stampa che sono falliti e altri errori registrati dall’interfaccia web.

Vedremo poi gli strumenti e le utilità che sono utilizzati per gestire il servizio CUPS.

Utilizzo dell’Interfaccia Web

Come detto prima, il file di configurazione /etc/cups/cupsd.conf determina se l’interfaccia web per il sistema CUPS è abilitata. L’opzione di configurazione è nella norma qualche cosa del genere:

# Web interface setting...
WebInterface Yes

Se l’interfaccia web è abilitata, allora CUPS può essere gestito da un browser collegandosi alla URL predefinita: http://localhost:631. Per default un utente del sistema può visualizzare le stampanti e le code di stampa, ma qualsiasi forma di modifica della configurazione richiede un utente con accesso di tipo root . La sezione di configurazione all’interno del file /etc/cups/cupsd.conf per limitare l’accesso alle capacità amministrative sarà simile alla seguente:

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

Ecco una ripartizione di queste opzioni:

AuthType Default

userà una richiesta di autenticazione di base quando un’azione richiede l’accesso di root.

Require user @SYSTEM

indica che un utente con privilegi amministrativi sarà richiesto per l’operazione. Questo potrebbe essere cambiato in @groupname dove i membri di groupname possono amministrare il servizio CUPS o i singoli utenti potrebbero essere forniti con una lista come in Require user carol, tim.

Order deny,allow

funziona come l’opzione di configurazione di Apache 2 dove l’azione è negata per default a meno che un utente (o un membro di un gruppo) sia autenticato.

L’interfaccia web di CUPS può essere disabilitata fermando prima il servizio CUPS, cambiando l’opzione WebInterface da Yes a No, quindi riavviando il servizio CUPS.

L’interfaccia web di CUPS è costruita come un sito web standard con schede di navigazione per varie sezioni del sistema CUPS. Le schede dell’interfaccia web includono quanto segue:

Home

La pagina iniziale elenca la versione corrente di CUPS che è installata. Inoltre suddivide CUPS in sezioni come:

CUPS for Users

Fornisce una descrizione di CUPS, opzioni a riga di comando per lavorare con stampanti e code di stampa, e un link al forum degli utenti di CUPS.

CUPS for Administrators

Fornisce collegamenti nell’interfaccia per installare e gestire le stampanti e collegamenti a informazioni su come lavorare con le stampanti in una rete.

CUPS for Developers

Fornisce collegamenti per sviluppare per CUPS stesso e per creare file PPD per le stampanti.

Administration

Anche la pagina di amministrazione è suddivisa in sezioni:

Printers

Qui un amministratore può aggiungere nuove stampanti al sistema, localizzare le stampanti connesse al sistema e gestire le stampanti che sono già installate.

Classes

Le classi sono un meccanismo in cui le stampanti possono essere aggiunte a gruppi con politiche specifiche. Per esempio, una classe può contenere un gruppo di stampanti che appartengono a un piano specifico di un edificio su cui possono stampare solo gli utenti di un particolare dipartimento. Un’altra classe può avere limitazioni su quante pagine un utente può stampare. Le classi non sono create di default in un’installazione CUPS e devono essere definite da un amministratore. Questa è la sezione dell’interfaccia web di CUPS dove si possono creare e gestire nuove classi.

Jobs

Dove un amministratore può visualizzare tutti i lavori di stampa che sono attualmente in coda per tutte le stampanti che questa installazione CUPS gestisce.

Server

Dove un amministratore può apportare modifiche al file /etc/cups/cupsd.conf. Inoltre, ulteriori opzioni di configurazione sono disponibili tramite caselle di controllo come il permettere alle stampanti connesse a questa installazione CUPS di essere condivise in rete, autenticazione avanzata e permettere l’amministrazione remota della stampante.

Classes

Se le classi di stampanti sono configurate sul sistema, saranno elencate in questa pagina. Ogni classe di stampanti avrà delle opzioni per gestire tutte le stampanti della classe in una volta sola, così come visualizzare tutti i lavori che sono in coda per le stampanti di questa classe.

Help

Questa scheda fornisce i link per tutta la documentazione disponibile di CUPS.

Jobs

La scheda Jobs permette la ricerca di singoli lavori di stampa così come la lista di tutti i lavori di stampa correnti gestiti dal server.

Printers

La scheda Printers elenca tutte le stampanti attualmente gestite dal sistema, nonché una rapida panoramica dello stato di ogni stampante. Ogni stampante elencata può essere cliccata e l’amministratore sarà portato alla pagina dove la singola stampante può essere ulteriormente gestita. Le informazioni per le stampanti in questa scheda provengono dal file /etc/cups/printers.conf.

Installare una Stampante

Aggiungere una coda di stampa al sistema è un processo semplice all’interno dell’interfaccia web di CUPS:

  1. Clicca sulla scheda Administration e poi sul pulsante Add Printer.

  2. La pagina successiva fornirà varie opzioni a seconda di come la stampante è collegata al sistema. Se si tratta di una stampante locale, seleziona l’opzione più rilevante, come per esempio a quale porta è collegata la stampante o quale software per stampanti di terze parti può essere installato. CUPS cercherà anche di rilevare le stampanti che sono connesse alla rete e le mostrerà qui. Puoi anche scegliere un’opzione di connessione diretta a una stampante di rete a seconda dei protocolli di stampa di rete che la stampante supporta. Seleziona l’opzione appropriata e clicca sul pulsante Continue.

  3. La pagina successiva ti permetterà di fornire un nome, una descrizione e una posizione (come "back office" o "front desk" ecc.) per la stampante. Se desideri condividere questa stampante in rete, puoi selezionare la casella di controllo per questa opzione anche in questa pagina. Una volta inserite le impostazioni, clicca sul pulsante Continue.

  4. Nella pagina successiva è possibile selezionare la marca e il modello della stampante. Questo permette a CUPS di cercare, nel suo database installato localmente, i driver e i file PPD più adatti da usare con la stampante. Se hai un file PPD fornito dal produttore della stampante, cerca la sua posizione e selezionalo per usarlo qui. Una volta fatto questo, clicca sul pulsante Add Printer.

  5. La pagina finale è dove imposterai le opzioni predefinite come la dimensione della pagina che la stampante userà e la risoluzione dei caratteri stampati sulla pagina. Clicca sul pulsante Set Default Options e la tua stampante è ora installata sul tuo sistema.

Note
Molte installazioni desktop di Linux hanno diversi strumenti che possono essere usati per installare una stampante. Gli ambienti desktop GNOME e KDE hanno le loro applicazioni integrate che possono essere utilizzate per installare e gestire le stampanti. Inoltre, alcune distribuzioni forniscono applicazioni separate per la gestione delle stampanti. Tuttavia, quando si ha a che fare con un’installazione server su cui molti utenti stamperanno, l’interfaccia web di CUPS può fornire i migliori strumenti per questo compito.

La coda di una stampante può anche essere installata usando i comandi legacy LPD/LPR. Ecco un esempio usando il comando lpadmin:

$ sudo lpadmin -p ENVY-4510 -L "office" -v socket://192.168.150.25 -m everywhere

Scomponiamo il comando per illustrare le opzioni usate qui:

  • Poiché l’aggiunta di una stampante al sistema richiede un utente con privilegi amministrativi, anteponiamo al comando lpadmin il comando sudo.

  • L’opzione -p permette di indicare la destinazione dei lavori di stampa. È essenzialmente un nome amichevole per l’utente per sapere dove arriveranno i lavori di stampa. Tipicamente puoi fornire il nome della stampante.

  • L’opzione -L è la posizione della stampante. Questa opzione è facoltativa ma utile nel caso in cui tu abbia bisogno di gestire un certo numero di stampanti in varie località.

  • L’opzione -v è per l'URI del dispositivo della stampante. L’URI del dispositivo è ciò di cui la coda di stampa CUPS ha bisogno per inviare lavori di stampa renderizzati a una specifica stampante. Nel nostro esempio, stiamo usando una posizione di rete utilizzando l’indirizzo IP fornito.

  • L’ultima opzione, -m, è impostata su “everywhere”. Questo imposta il modello della stampante per CUPS per determinare quale file PPD usare. Nelle versioni moderne di CUPS, è meglio usare “everywhere” in modo che CUPS possa controllare l’URI del dispositivo (impostato con la precedente opzione -v) per determinare automaticamente il corretto file PPD da usare per la stampante. Nelle situazioni moderne, CUPS userà semplicemente IPP come spiegato di seguito.

Come detto in precedenza, è meglio lasciare che CUPS determini automaticamente quale file PPD usare per una particolare coda di stampa. Tuttavia, il comando legacy lpinfo può essere usato per interrogare i file PPD installati localmente per vedere quali sono disponibili. Basta fornire l’opzione --make-and-model per la stampante che si desidera installare e l’opzione -m:

$ lpinfo --make-and-model "HP Envy 4510" -m
hplip:0/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10
hplip:1/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10
hplip:2/ppd/hplip/HP/hp-envy_4510_series-hpijs.ppd HP Envy 4510 Series hpijs, 3.17.10
drv:///hpcups.crv/hp-envy_4510_series.ppd HP Envy 4510 Series, hpcups 3.17.10
everywhere IPP Everywhere

Si noti che il comando lpinfo è deprecato. Viene mostrato qui come esempio per elencare quali file di driver di stampa potrebbe usare una stampante.

Warning

Le versioni future di CUPS eliminineranno la necessità di driver specifici e si concentreranno invece sull’uso di IPP (Internet Printing Protocol) e dei formati di file standard. L’output del comando precedente illustra questo con la capacità di stampa everywhere IPP Everywhere. IPP può eseguire gli stessi compiti per cui viene usato un driver di stampa. IPP, proprio come l’interfaccia web CUPS, utilizza la porta di rete 631 con il protocollo TCP.

Una stampante predefinita può essere impostata usando il comando lpoptions. In questo modo, se la maggior parte (o tutti) i lavori di stampa vengono inviati a una particolare stampante, quella specificata con il comando lpoptions sarà quella di default. Basta specificare la stampante insieme all’opzione -d:

$ lpoptions -d ENVY-4510

Gestire le Stampanti

Una volta che una stampante è stata installata, un amministratore può usare l’interfaccia web per gestire le opzioni disponibili per la stampante. Un approccio più diretto alla gestione di una stampante è attraverso l’uso del comando lpadmin.

È possibile consentire la condivisione di una stampante in rete. Questo può essere ottenuto con l’opzione printer-is-shared e specificando la stampante con l’opzione -p:

$ sudo lpadmin -p FRONT-DESK -o printer-is-shared=true

Un amministratore può anche configurare una coda di stampa per accettare solo lavori da utenti specifici con ogni utente separato da una virgola:

$ sudo lpadmin -p FRONT-DESK -u allow:carol,frank,grace

Allo stesso modo, solo a specifici utenti potrebbe essere negato l’accesso a una specifica coda di stampa:

$ sudo lpadmin -p FRONT-DESK -u deny:dave

Anche i gruppi di utenti potrebbero essere usati per permettere o negare l’accesso alla coda di una stampante, purché il nome del gruppo sia preceduto da un carattere “at” (@):

$ sudo lpadmin -p FRONT-DESK -u deny:@sales,@marketing

Una coda di stampa può anche avere una politica specifica di gestione errore nel caso in cui incontri problemi nella stampa di un lavoro. Con l’uso delle politiche, un lavoro di stampa può essere interrotto (abort-job) o un altro tentativo di stampa può avvenire in un secondo momento (retry-job). Altre politiche includono la capacità di fermare immediatamente la stampante in caso di errore (stop-printer) così come la capacità di riprovare il lavoro immediatamente dopo che è stato rilevato un errore (retry-current-job). Ecco un esempio in cui la policy della stampante è impostata per interrompere il lavoro di stampa se si verifica un errore sulla stampante FRONT-DESK:

$ sudo lpadmin -p FRONT-DESK -o printer-error-policy=abort-job

Assicurati di rivedere le pagine di manuale per il comando lpadmin situate in lpadmin(8) per ulteriori dettagli sull’uso di questo comando.

Inviare Lavori di Stampa

Molte applicazioni desktop ti permetteranno di inviare lavori di stampa da una voce di menu o usando la scorciatoia da tastiera Ctrl+p. Se ti trovi su un sistema Linux che non utilizza un ambiente desktop, puoi ancora inviare file a una stampante per mezzo dei comandi legacy LPD/LPR.

Il comando lpr (“line printer remote”) è usato per inviare un lavoro di stampa alla coda di una stampante. Nella forma più elementare del comando, un nome di file insieme al comando lpr è tutto ciò che è richiesto:

$ lpr report.txt

Il comando precedente invierà il file report.txt alla coda di stampa predefinita del sistema (come identificato dal file /etc/cups/printers.conf).

Se un’installazione di CUPS ha più stampanti installate, il comando lpstat può essere usato per stampare una lista di stampanti disponibili usando l’opzione -p e l’opzione -d indicherà qual è la stampante predefinita:

$ lpstat -p -d
printer FRONT-DESK is idle.  enabled since Mon 03 Aug 2020 10:33:07 AM EDT
printer PostScript_oc0303387803 disabled since Sat 07 Mar 2020 08:33:11 PM EST -
	reason unknown
printer ENVY-4510 is idle.  enabled since Fri 31 Jul 2020 10:08:31 AM EDT
system default destination: ENVY-4510

Quindi, nel nostro esempio, il file report.txt sarà inviato alla stampante ENVY-4510, che è impostata come predefinita. Se il file deve essere stampato su una stampante diversa, specifica la stampante con l’opzione -P:

$ lpr -P FRONT-DESK report.txt

Quando un lavoro di stampa viene sottoposto a CUPS, il demone capirà quale backend è più adatto a gestire il compito. CUPS può fare uso di vari driver di stampa, filtri, monitor di porte hardware e altri software per rendere correttamente il documento. Ci saranno momenti in cui un utente che stampa un documento avrà bisogno di fare modifiche a come il documento dovrebbe essere stampato. Molte applicazioni grafiche rendono questo compito piuttosto facile. Ci sono anche opzioni della riga di comando che possono essere utilizzate per cambiare il modo in cui un documento dovrebbe essere stampato. Quando un lavoro di stampa viene inviato tramite la riga di comando, l’opzione -o (per “options”) può essere usata insieme a termini specifici per regolare il layout del documento per la stampa. Ecco una breve lista di opzioni comunemente usate:

landscape

Il documento viene stampato con la pagina ruotata di 90 gradi in senso orario. L’opzione orientation-requested=4 otterrà lo stesso risultato.

two-sided-long-edge

La stampante stamperà il documento in modalità verticale su entrambi i lati della carta, a condizione che la stampante supporti questa capacità.

two-sided-short-edge

La stampante stamperà il documento in modalità orizzontale su entrambi i lati della carta, a condizione che la stampante supporti questa capacità.

media

La stampante stamperà il lavoro sul supporto specificato. I formati dei supporti disponibili per un lavoro di stampa dipendono dalla stampante. Ecco una lista di formati comuni:

Dimensione Scopo

A4

ISO A4

Letter

US Letter

Legal

US Legal

DL

ISO DL Envelope

COM10

US #10 Envelope

collate

Raccogli il documento stampato. Questo è utile se hai un documento a più pagine che verrà stampato più di una volta, poiché tutte le pagine di ogni documento verranno stampate in ordine. Imposta questa opzione su true per abilitarla o false per disabilitarla.

page-ranges

Questa opzione può essere usata per selezionare una singola pagina da stampare o un insieme specifico di pagine da stampare da un documento. Un esempio potrebbe essere il seguente: -o page-ranges=5-7,9,15. Questo stamperebbe le pagine 5, 6 e 7 e poi le pagine 9 e 15.

fit-to-page

Stampa il documento in modo che il file sia scalato per adattarsi alla carta. Se nessuna informazione sulla dimensione della pagina è fornita dal file da stampare, è possibile che il lavoro stampato sia scalato in modo errato e porzioni del documento potrebbero essere scalate fuori dalla pagina o il documento potrebbe risultare troppo piccolo.

outputorder

Stampa il documento in ordine inverso o normale per iniziare la stampa dalla prima pagina. Se una stampante stampa le sue pagine a faccia in giù, l’ordine predefinito è -o outputorder=normal, mentre le stampanti che stampano con le pagine rivolte verso l’alto stampano con -o outputorder=reverse.

Prendendo un campione delle opzioni di cui sopra, il seguente esempio di comando può essere costruito:

$ lpr -P ACCOUNTING-LASERJET -o landscape -o media=A4 -o two-sided-short-edge finance-report.pdf

Più di una copia di un documento può essere stampata usando l’opzione numero nel seguente formato: -#N dove N è uguale al numero di copie da stampare. Ecco un esempio, con l’opzione collate, dove sette copie di un rapporto devono essere stampate sulla stampante predefinita:

$ lpr -#7 -o collate=true status-report.pdf

Oltre al comando lpr, può essere usato anche il comando lp. Molte delle opzioni usate con lpr possono essere usate anche con il comando lp, anche se con alcune differenze. Assicurati di consultare la pagina man di lp(1) per riferimento. Ecco come possiamo eseguire il precedente comando lpr di esempio usando la sintassi del comando lp specificando anche la stampante di destinazione con l’opzione -d:

$ lp -d ACCOUNTING-LASERJET -n 7 -o collate=true status-report.pdf

Gestire i Lavori di Stampa

Come detto prima, ogni lavoro inviato alla coda di stampa riceve un ID lavoro da CUPS. Un utente può visualizzare i lavori di stampa che ha inviato con il comando lpq. Passando l’opzione -a verranno mostrate le code di tutte le stampanti gestite dall’installazione di CUPS:

$ lpq -a
Rank        Owner         Job       File(s)                  Total Size
1st         carol         20        finance-report.pdf       5072 bytes

Lo stesso comando lpstat usato in precedenza ha anche un’opzione per visualizzare le code di stampa. L’opzione -o da sola mostrerà tutte le code di stampa, oppure una coda di stampa può essere specificata per nome:

$ lp -o
ACCOUNTING-LASERJET-4                   carol        19456   Wed 05 Aug 2020 04:29:44 PM EDT

L’ID del lavoro di stampa sarà preceduto dal nome della coda dove il lavoro è stato inviato, poi il nome dell’utente che ha inviato il lavoro, la dimensione del file e l’ora in cui è stato inviato.

Se un lavoro di stampa si blocca su una stampante o un utente desidera annullare il suo lavoro di stampa, usa il comando lprm insieme all’ID del lavoro trovato dal comando lpq:

$ lprm 20

Tutti i lavori in una coda di stampa potrebbero essere cancellati in una volta sola fornendo solo un trattino -:

$ lprm -

In alternativa, il comando CUPS cancel potrebbe anche essere usato da un utente per fermare il suo lavoro di stampa corrente:

$ cancel

Un lavoro di stampa specifico può essere cancellato attraverso il suo ID lavoro preceduto dal nome della stampante:

$ cancel ACCOUNTING-LASERJET-20

Un lavoro di stampa può anche essere spostato da una coda di stampa ad un’altra. Questo è spesso utile se una stampante smette di rispondere o il documento da stampare richiede caratteristiche disponibili su una stampante diversa. Nota che questa procedura richiede tipicamente un utente con privilegi elevati. Usando lo stesso lavoro di stampa dell’esempio precedente, potremmo spostarlo nella coda della stampante FRONT-DESK:

$ sudo lpmove ACCOUNTING-LASERJET-20 FRONT-DESK

Rimuovere le Stampanti

Per rimuovere una stampante è spesso utile elencare prima tutte le stampanti che sono attualmente gestite dal servizio CUPS. Questo può essere fatto con il comando lpstat:

$ lpstat -v
device for FRONT-DESK: socket://192.168.150.24
device for ENVY-4510: socket://192.168.150.25
device for PostScript_oc0303387803: ///dev/null

L’opzione -v non solo elenca le stampanti ma anche dove (e come) sono collegate. In fase di eliminazione di una stampante, è buona pratica iniziando con il rifiutare tutti i nuovi lavori che vanno alla stampante e fornire una ragione del perché la stampante non accetterà nuovi lavori. Questo può essere fatto nella maniera seguente:

$ sudo cupsreject -r "Printer to be removed" FRONT-DESK

Notate l’uso di sudo poiché questo compito richiede un utente con privilegi elevati.

Per rimuovere una stampante, utilizziamo il comando lpadmin con l’opzione -x per cancellare la stampante:

$ sudo lpadmin -x FRONT-DESK

Esercizi Guidati

  1. Una nuova stampante è stata appena installata su una stazione di lavoro locale chiamata office-mgr. Quale comando potrebbe essere usato per impostare questa stampante come predefinita per questa stazione di lavoro?

  2. Quale comando e quale opzione verrebbero usati per determinare quali stampanti sono disponibili per la stampa da una stazione di lavoro?

  3. Usando il comando cancel, come potreste rimuovere un lavoro di stampa con ID 15 che è bloccato nella coda della stampante chiamata office-mgr?

  4. Un lavoro di stampa destinato a una stampante che non ha abbastanza carta per stampare l’intero file. Quale comando usereste per spostare il lavoro con ID 2 dalla coda di stampa dalla stampante FRONT-DESK alla coda di stampa della stampante ACCOUNTING-LASERJET?

Esercizi Esplorativi

Usando il gestore di pacchetti della tua distribuzione, installa i pacchetti cups e printer-driver-cups-pdf. Si noti che se si sta utilizzando una distribuzione basata su Red Hat (come Fedora) il driver PDF di CUPS è chiamato cups-pdf. Installare anche il pacchetto cups-client per utilizzare i comandi di stampa in stile System V. Useremo questi pacchetti per fare pratica nella gestione di una stampante CUPS senza installare fisicamente una vera stampante.

  1. Verifica che il demone CUPS sia in esecuzione, poi verifica che la stampante PDF sia abilitata e impostata come predefinita.

  2. Esegui un comando che stampi il file /etc/services. Ora dovresti avere una directory chiamata PDF nella tua home directory.

  3. Utilizza un comando che disabiliti solo la stampante, poi esegui un comando separato che mostri tutte le informazioni di stato per verificare che la stampante PDF sia disabilitata. Poi prova a stampare una copia del tuo file /etc/fstab. Che cosa succede?

  4. Ora prova a stampare una copia del file /etc/fstab sulla stampante PDF. Che cosa succede?

  5. Annulla il lavoro di stampa, poi rimuovi la stampante PDF.

Sommario

Il demone CUPS è una piattaforma ampiamente utilizzata per stampare su stampanti locali e remote. Mentre sostituisce il protocollo legacy LPD, fornisce ancora la retro compatibilità per i suoi strumenti.

I file e i comandi discussi in questa lezione sono stati:

/etc/cups/cupsd.conf

Il file di configurazione principale per il servizio CUPS stesso. Questo file controlla anche l’accesso all’interfaccia web di CUPS.

/etc/printcap

Un file legacy usato da LPD che contiene una riga per ogni stampante collegata al sistema.

/etc/cups/printers.conf

Il file di configurazione usato da CUPS per le informazioni sulle stampanti.

L’interfaccia web di CUPS in un’installazione predefinita si trova su http://localhost:631. Ricorda che la porta di rete predefinita per l’interfaccia web è 631/TCP.

Sono stati discussi anche i seguenti comandi legacy LPD/LPR:

lpadmin

usato per installare e rimuovere stampanti e classi di stampanti.

lpoptions

Usato per mostrare e/o modificare le opzioni della stampante.

lpstat

Usato per visualizzare informazioni sullo stato delle stampanti connesse a un’installazione CUPS.

lpr

Usato per inviare lavori di stampa alla coda di una stampante.

lp

Usato per inviare lavori di stampa alla coda di una stampante.

lpq

Questo comando elenca i lavori nella coda di stampa.

lprm

Usato per cancellare i lavori di stampa in base all’ID. L’ID di un lavoro può essere ottenuto con l’output del comando lpq.

cancel

Un’alternativa al comando lprm per cancellare i lavori di stampa in base al loro ID.

Assicurati di esaminare le seguenti pagine man per i vari strumenti e utilità di cups: lpadmin(8), lpoptions(1), lpr(1), lpq(1), lprm(1), cancel(1), lpstat(1), cupsenable(8) e cupsaccept(8). Si raccomanda inoltre di consultare la documentazione dell’aiuto online su http://localhost:631/help.

Risposte agli Esercizi Guidati

  1. Una nuova stampante è stata appena installata su una stazione di lavoro locale chiamata office-mgr. Quale comando potrebbe essere usato per impostare questa stampante come predefinita per questa stazione di lavoro?

    $ lpoptions -d office-mgr
  2. Quale comando e quale opzione verrebbero usati per determinare quali stampanti sono disponibili per la stampa da una stazione di lavoro?

    $ lpstat -p

    L’opzione -p elenca tutte le stampanti disponibili e se sono abilitate alla stampa.

  3. Usando il comando cancel, come potreste rimuovere un lavoro di stampa con ID 15 che è bloccato nella coda della stampante chiamata office-mgr?

    $ cancel office-mgr-15
  4. Hai un lavoro di stampa destinato a una stampante che non ha abbastanza carta per stampare l’intero file. Quale comando usereste per spostare il lavoro con ID 2 dalla coda di stampa dalla stampante FRONT-DESK alla coda di stampa della stampante ACCOUNTING-LASERJET?

    $ sudo lpmove FRONT-DESK-2 ACCOUNTING-LASERJET

Risposte agli Esercizi Esplorativi

Usando il gestore di pacchetti della tua distribuzione, installa i pacchetti cups e printer-driver-cups-pdf. Si noti che se si sta utilizzando una distribuzione basata su Red Hat (come Fedora) il driver PDF di CUPS è chiamato cups-pdf. Installare anche il pacchetto cups-client per utilizzare i comandi di stampa in stile System V. Useremo questi pacchetti per fare pratica nella gestione di una stampante CUPS senza installare fisicamente una vera stampante.

  1. Verifica che il demone CUPS sia in esecuzione, poi verifica che la stampante PDF sia abilitata e impostata come predefinita.

    Un metodo per controllare la disponibilità e lo stato della stampante PDF sarebbe quello di eseguire il seguente comando:

    $ lpstat -p -d
    
    printer PDF is idle.  enabled since Thu 25 Jun 2020 02:36:07 PM EDTi
    
    system default destination: PDF
  2. Esegui un comando che stampi il file /etc/services. Ora dovresti avere una directory chiamata PDF nella tua home directory.

    $ lp -d PDF /etc/services

    funzionerebbe. Ora hai una versione PDF di questo file nella directory PDF.

  3. Utilizza un comando che disabiliti solo la stampante, poi esegui un comando separato che mostri tutte le informazioni di stato per verificare che la stampante PDF sia disabilitata.

    $ sudo cupsdisable PDF

    disabiliterà la stampante.

    Poi esegui il comando lpstat -t per ottenere un elenco completo delle condizioni della stampante. Dovrebbe essere simile al seguente output:

    $ scheduler is running
    
    system default destination: PDFi
    
    device for PDF: cups-pdf:/
    
    PDF accepting requests since Wed 05 Aug 2020 04:19:15 PM EDTi
    
    printer PDF disabled since Wed 05 Aug 2020 04:19:15 PM EDT -
    
    Paused
  4. Ora prova a stampare una copia del file /etc/fstab sulla stampante PDF. Che cosa succede?

    Dopo aver tentato il comando lp -d PDF /etc/fstab dovresti ottenere un output che mostra le informazioni sull’ID del lavoro. Tuttavia, se controlli la cartella PDF nella tua home directory, il nuovo file non c’è. Puoi quindi controllare la coda di stampa con il comando lpstat -o, e troverai il tuo lavoro elencato lì.

  5. Annulla il lavoro di stampa, poi rimuovi la stampante PDF.

    Usando l’output del precedente comando lp, usa il comando cancel per cancellare il lavoro. Per esempio:

    $ cancel PDF-4

    Poi esegui il comando lpstat -o per verificare che il lavoro sia stato cancellato.

    Rimuovi la stampante PDF con il seguente comando: sudo lpadmin -x PDF. Poi verifica che la stampante sia stata rimossa: lpstat -a.

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

109.1 Fondamenti dei protocolli Internet (109.1 Lezione 1)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2023 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 200,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2023 The Linux Professional Institute Inc. Tutti i diritti riservati.