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:
-
Un utente invia un file da stampare.
-
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. -
CUPS utilizza dei filtri installati sul sistema per generare un file formattato che la stampante può utilizzare.
-
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
.WarningNessuna 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 digroupname
possono amministrare il servizio CUPS o i singoli utenti potrebbero essere forniti con una lista come inRequire 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:
-
Clicca sulla scheda Administration e poi sul pulsante Add Printer.
-
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.
-
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.
-
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.
-
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 comandosudo
. -
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 |
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 ofalse
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
onormale
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
-
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? -
Quale comando e quale opzione verrebbero usati per determinare quali stampanti sono disponibili per la stampa da una stazione di lavoro?
-
Usando il comando
cancel
, come potreste rimuovere un lavoro di stampa con ID 15 che è bloccato nella coda della stampante chiamataoffice-mgr
? -
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 stampanteACCOUNTING-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.
-
Verifica che il demone CUPS sia in esecuzione, poi verifica che la stampante PDF sia abilitata e impostata come predefinita.
-
Esegui un comando che stampi il file
/etc/services
. Ora dovresti avere una directory chiamataPDF
nella tua home directory. -
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? -
Ora prova a stampare una copia del file
/etc/fstab
sulla stampante PDF. Che cosa succede? -
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
-
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
-
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. -
Usando il comando
cancel
, come potreste rimuovere un lavoro di stampa con ID 15 che è bloccato nella coda della stampante chiamataoffice-mgr
?$ cancel office-mgr-15
-
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 stampanteACCOUNTING-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.
-
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
-
Esegui un comando che stampi il file
/etc/services
. Ora dovresti avere una directory chiamataPDF
nella tua home directory.$ lp -d PDF /etc/services
funzionerebbe. Ora hai una versione PDF di questo file nella directory PDF.
-
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
-
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 comandolpstat -o
, e troverai il tuo lavoro elencato lì. -
Annulla il lavoro di stampa, poi rimuovi la stampante PDF.
Usando l’output del precedente comando
lp
, usa il comandocancel
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
.