E N D
Dipartimento di Informatica e Scienze dell’Informazione Syslog Il “registro di sistema” (system log, o anche syslog) e’ la procedura di registrazione degli eventi importanti all’interno di un cosiddetto file di log, ovvero un file di registrazioni. Questa procedura è gestita principalmente dal demone ‘syslogd’, che viene configurato attraverso /etc/syslog.conf. Altri programmi o demoni possono aggiungere annotazioni al registro inviando messaggi a ‘syslogd’. Anche se potrebbe sembrare che la conoscenza di questo sistema di registrazione sia uno strumento utile principalmente per chi ha già esperienza di GNU/Linux o dei sistemi Unix in generale, la consultazione dei file delle registrazioni può essere di aiuto al principiante che si trova in difficoltà e non sa quale sia la causa del mancato funzionamento di qualcosa.
Dipartimento di Informatica e Scienze dell’Informazione Syslog syslogd [ opzioni ] È il demone che si occupa delle registrazioni degli eventi. Di norma viene avviato durante la procedura di avvio del sistema. Utilizza un file di configurazione che di solito è ‘/etc/syslog.conf’. Questo file viene letto nel momento in cui ‘syslogd’ si avvia e per fare in modo che venga riletto (per esempio dopo una modifica), occorre inviare al processo di ‘syslogd’ un segnale di aggancio (‘SIGHUP’). >kill -HUP PID_di_syslogd Alcune opzioni -f file_di_configurazione Specifica un file di configurazione diverso da quello predefinito. -m minuti Stabilisce l’intervallo espresso in minuti tra i messaggi di marcatura. Il valore predefinito è 20. -p log_socket Specifica un socket diverso da quello predefinito che è ‘/dev/log’.
Dipartimento di Informatica e Scienze dell’Informazione Syslog /etc/syslog.conf È il file di configurazione utilizzato da ‘syslogd’ per definire in che modo devono essere gestiti i messaggi da registrareLa sintassi per l’utilizzo di questo file di configurazione è relativamente semplice. Le righe vuote e quelle che iniziano con il simbolo ‘#’ sono ignorate. Le altre sono record composti da due campi: il primo definisce la selezione dell’evento, il secondo l’azione. Il campo che definisce la selezione, serve a indicare per quali eventi effettuare un’annotazione attraverso l’azione indicata nel secondo campo. Questo primo campo si divide in due sottocampi, uniti da un punto singolo (‘.’), e questi si riferiscono ai servizi e alle priorità. I servizi sono rappresentati da una serie di parole chiave che rappresentano una possibile origine di messaggi, mentre le priorità sono altre parole chiave che identificano il livello di gravità dell’informazione. Le parole chiave riferite ai servizi possono essere: ‘auth’; • ‘authpriv’; • ‘cron’; • ‘daemon’; • ‘kern’; • ‘lpr’; • ‘mail’; • ‘news’; • ‘syslog’;• ‘user’; • ‘uucp’; e da ‘local0’ a ‘local7’.
Dipartimento di Informatica e Scienze dell’Informazione Syslog Volendo identificare tutti i servizi si può usare l’asterisco (‘*’), mentre per indicarne un gruppo se ne può inserire un elenco separato da virgole (‘,’). Le parole chiave riferite alle priorità possono essere quelle seguenti, elencate in ordine di importanza crescente, per cui l’ultima è quella che rappresenta un evento più importante: • ‘debug’; • ‘info’; • ‘notice’; • ‘warning’; • ‘err’; • ‘crit’; • ‘alert’; • ‘emerg’. In linea di massima, l’indicazione di una parola chiave che rappresenta una priorità implica l’inclusione dei messaggi che si riferiscono a quel livello, insieme a tutti quelli dei livelli superiori. Per indicare esclusivamente un livello di priorità, occorre fare precedere la parola chiave corrispondente dal simbolo ‘=’. Si possono indicare assieme più gruppi di servizi e priorità, in un solo campo, unendoli attraverso un punto e virgola (‘;’).
Dipartimento di Informatica e Scienze dell’Informazione Syslog Si possono escludere delle priorità ponendo anteriormente un punto esclamativo (‘!’). Il secondo campo, quello che definisce l’azione, serve a indicare la destinazione dei messaggi riferiti a un certo gruppo di servizi e priorità definiti dal primo campo. Può trattarsi di un file o di altro, a seconda del primo carattere utilizzato per identificarlo. Segue l’elenco. • ‘/’ Se il primo carattere è una barra obliqua normale, si intende che si tratti dell’indicazione di un percorso assoluto di un file destinatario dei messaggi. Può trattarsi anche di un file di dispositivo opportuno, come quello di una console virtuale. • ‘|’ Se il primo carattere è una barra verticale, si intende che la parte restante sia l’indicazione del percorso assoluto di una pipe con nome, ovvero di un file FIFO, generata attraverso ‘mkfifo’
Dipartimento di Informatica e Scienze dell’Informazione Syslog • ‘@’ Se il primo carattere è il simbolo ‘@’, si intende che la parte restante sia l’indicazione di un elaboratore remoto, che ricevendo tali messaggi li inserirà nel proprio sistema di registrazione. • Elenco di utenti Se il primo carattere non è scelto tra quelli elencati fino a questo punto, si intende che si tratti di un elenco di utenti (separati da virgole) a cui inviare i messaggi sullo schermo del terminale, se questi stanno accedendo in quel momento.
Dipartimento di Informatica e Scienze dell’Informazione Syslog • ‘*’ Se il primo e unico carattere è un asterisco (‘*’), si intende che i messaggi debbano essere inviati sullo schermo del terminale di tutti gli utenti connessi in quel momento. È importante osservare che gli stessi messaggi possono essere inviati anche a destinazioni differenti, attraverso più record in cui si definiscono le stesse coppie di servizi e priorità, oppure coppie differenti che però si sovrappongono. Esempi # Salva tutti i messaggi in un file unico: /var/log/syslog *.* /var/log/syslog Invia tutti i messaggi nel file ‘/var/log/syslog’.
Dipartimento di Informatica e Scienze dell’Informazione Syslog # Invia tutti i messaggi del kernel sulla console kern.* /dev/console I messaggi del servizio ‘kern’, a qualunque livello di priorità appartengano, vengono inviati al dispositivo corrispondente alla console. In pratica vengono scritti sullo schermo della console. mail.* /var/log/maillog I messaggi riferiti alla gestione della posta elettronica sono memorizzati nel file ‘/var/log/maillog’. # Invia tutti i messaggi da warning in su, all’elaboratore elios.disi.unige.it *.warning @elios.disi.unige.it
Dipartimento di Informatica e Scienze dell’Informazione Syslog Il file ‘/var/log/wtmp’ è il registro storico degli accessi al sistema. Al suo interno vengono indicate le informazioni della data e dell’ora di accesso di ogni utente, assieme all’indicazione della provenienza degli accessi. I dati contenuti in questo file hanno valore solo se sono completi, nel senso che per ogni accesso si deve trovare anche la registrazione della conclusione della sessione di lavoro, altrimenti non possono essere calcolati i tempi di utilizzo. Purtroppo, questo file non offre le garanzie di una base di dati vera e propria, e le registrazioni che vengono fatte al suo interno non sono mai sicure. Pertanto, i dati che si riescono a estrapolare sono da considerare approssimativi in generale. Questo file tende a ingrandirsi rapidamente, tanto che periodicamente conviene fare pulizia. Di solito, le distribuzioni GNU/Linux provvedono a fornire degli script necessari per gestire in modo elegante, attraverso il sistema Cron, l’archiviazione e rotazione dei file delle registrazioni, compreso ‘/var/log/wtmp’.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione L’archiviazione è quel procedimento con cui si impacchettano file o rami di directory in modo da facilitarne la conservazione all’interno di unità di memorizzazione senza file system. Per lo stesso motivo, l’archiviazione è il modo con cui si possono trasferire agevolmente i dati attraverso piattaforme differenti. L’archiviazione pura e semplice non ottiene alcun risparmio nello spazio utilizzato dai dati. Per questo si utilizza la compressione che permette di ridurre questo utilizzo. L’archiviazione pura e semplice è ottenuta normalmente attraverso il programma ‘tar’ o il programma ‘cpio’.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione cpio -o [ opzioni ] [ < elenco_nomi ] [ > archivio ] cpio -i [ opzioni ] [ modello ] [ < archivio ] cpio -p [ opzioni ] directory_di_destinazione [ < elenco_nomi ] Copia file da e verso archivi ‘cpio’ o ‘tar’. L’archivio può essere un file su disco, un nastro magnetico o una pipe. Le tre sintassi indicate rappresentano le tre modalità operative del comando. • copy-out (archiviazione) Dallo standard input viene letto un elenco di nomi di file (uno per riga) e l’archivio di questi file viene generato ed emesso attraverso lo standard output. • copy-in (lettura di un archivio) Dallo standard input viene letto il contenuto di un archivio dal quale si possono estrarre i file in esso contenuti.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione • copy-pass (copia) Dallo standard input viene letto un elenco di nomi di file (uno per riga) e questi file (con il loro contenuto) vengono copiati nella directory di destinazione. Alcune opzioni per il copy-out -o | --create Funziona in modalità copy-out. -A | --append Aggiunge dati a un archivio esistente che deve essere specificato con l’opzione ‘-O’ -L | --dereferenceQuando incontra dei collegamenti simbolici, copia i file a cui questi puntano, invece di copiare semplicemente i collegamenti. -O nome_archivio Specifica il nome dell’archivio da creare o incrementare, invece di utilizzare lo standard output.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione Alcune opzioni per il copy-in -i | --extractFunziona in modalità copy-in. -d | --make-directoriesCrea le directory necessarie. -E file | --pattern-file=fileLegge il modello che esprime i nomi dei file da estrarre, o l’elenco dei nomi stessi, dal file indicato come argomento dell’opzione. -f | --nomatchingCopia soltanto i file che non corrispondono al modello indicato. -I archivio Permette di specificare il nome dell’archivio da usare, invece di riceverlo dallo standard input. -t | --list Elenca il contenuto dell’archivio.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione Alcune opzioni per il copy-pass -p | --pass-throughFunziona in modalità copy-pass. -d | --make-directoriesCrea le directory necessarie. -l | --linkSe possibile, crea dei collegamenti invece di copiare i file. -L | --dereferenceQuando incontra dei collegamenti simbolici, copia i file a cui questi puntano, invece di copiare semplicemente i collegamenti. Esempi > cpio -o < elenco > /tmp/archivio.cpio Archivia i file e le directory elencati nel file ‘elenco’ generando il file ‘/tmp/archivio.cpio’. >ls *.sgml | cpio -o > /tmp/archivio.cpio Archivia i file e le directory corrispondenti al modello ‘*.sgml’ generando il file ‘/tmp/ archivio.cpio’.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione > find lavoro -print | cpio -o > /tmp/archivio.cpio Archivia la directory ‘lavoro/’, e tutto il suo contenuto, generando il file ‘/tmp/archivio.cpio’. > cpio -i -t < /tmp/archivio.cpio Elenca il contenuto dell’archivio ‘/tmp/archivio.cpio’. > cpio -i < /tmp/archivio.cpio Estrae l’archivio ‘/tmp/archivio.cpio’ a partire dalla directory corrente. > cpio -p < elenco > /tmp/provaCopia i file e le directory elencati nel file ‘elenco’ nella directory ‘/tmp/prova/’.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione ‘tar’ (Tape ARchive) è un programma di archiviazione nato originariamente per essere usato con i nastri. Il primo argomento deve essere una delle opzioni che ne definisce il funzionamento. Alla fine della riga di comando vengono indicati i nomi dei file o delle directory da archiviare. Se non viene specificato diversamente attraverso le opzioni, l’archivio viene emesso attraverso lo standard output. Il ‘tar’ tradizionale ammette l’uso di opzioni senza il trattino anteriore (‘-’) consueto. Questa tradizione è stata mantenuta anche nel ‘tar’ GNU a cui si fa riferimento in questa sezione, ma questa forma deve essere usata consapevolmente e con prudenza. Negli esempi verrà mostrato in che modo potrebbero essere usate tali opzioni senza trattino
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione A | -A | --catenate | --concatenate Aggiunge dei file ‘tar’ a un archivio già esistente. c | -c | --createCrea un nuovo archivio. d | -d | --diff | --compareTrova le differenze tra l’archivio e i file esistenti effettivamente. --deleteCancella dall’archivio i file indicati. Non può essere usato per un archivio su nastro. r | -r | --appendAggiunge dati a un archivio già esistente. t | -t | --listElenca il contenuto di un archivio. u | -u | --updateAggiunge solo i file più recenti rispetto a quanto già contenuto nell’archivio. x | -x | --extract | --get Estrae i file da un archivio -h | --dereferenceNon copia i collegamenti simbolici, ma i file a cui questi fanno riferimento. -k | --keep-old-files In fase di estrazione da un archivio, non sovrascrive i file eventualmente già esistenti. -N data | --after-date=data | --newer data Archivia solo i file la cui data è più recente di quella indicata come argomento
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione --remove-filesIn fase di creazione di un nuovo archivio, elimina i file archiviati. --same-ownerDurante l’estrazione da un archivio, assegna ai file estratti gli utenti e i gruppi proprietari originali. -v | --verboseElenca i file che vengono elaborati. -W | --verifyCerca di verificare la validità dell’archivio dopo averlo creato. -Z | --compress | --uncompressFiltra l’archivio attraverso il programma di compressione ‘compress’. -z | --gzip | --ungzipFiltra l’archivio attraverso il programma di compressione ‘gzip’. --use-compress-program programma Filtra l’archivio attraverso il programma di compressione indicato nell’argomento. Questo programma di compressione deve riconoscere l’opzione ‘-d’, come fa ‘gzip’, allo scopo di decomprimere i dati.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione Esempi > tar -c -f /dev/fd0 -L 1440 -M -v /usr Archivia la directory ‘/usr/’ con tutto il suo contenuto, comprese le sottodirectory, utilizzando I dischetti (da 1 440 Kbyte). Con la copia multivolume, come in questo caso, non è possibile utilizzare la compressione automatica attraverso l’opzione ‘-z’ o ‘-Z’. > tar cf /dev/fd0 -L 1440 -M -v /usr Esattamente come nell’esempio precedente, con la differenza che le opzioni ‘-c’ e ‘-f’ sono indicate senza il trattino iniziale. > tar cvf /dev/fd0 -L 1440 -M /usr Esattamente come nell’esempio precedente.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione > tar -cfv /dev/fd0 -L 1440 -M /usr > tar cfv /dev/fd0 -L 1440 -M /usr Questi due esempi sono identici, ed errati. Non è possibile accodare lettere di altre opzioni dopo la «f», dal momento che questa richiede un argomento. In molti documenti su ‘tar’ si vedono esempi errati di questo tipo. Possono anche funzionare, ma sono errati concettualmente, ed è molto probabile incontrare un programma ‘tar’ che in tali situazioni faccia qualcosa di diverso da quello che ci si aspetterebbe. > tar -t -f /dev/fd0 -L 1440 -M -v Visualizza l’elenco del contenuto dell’archivio fatto su dischetti. > tar -x -f /dev/fd0 -L 1440 -M -v -p --same-owner Estrae il contenuto dell’archivio su dischetti a partire dalla posizione corrente. È probabile che l’opzione ‘--same-owner’ sia già predefinita all’interno di ‘tar’, ma in generale vale la pena di ricordarsene.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione > tar xpvf /dev/fd0 -L 1440 -M --same-owner Come nell’esempio precedente, aggregando alcune opzioni e togliendo il trattino iniziale di queste. > tar -c -f /tmp/archivio.tgz -z -v /usr Archivia il contenuto della directory ‘/usr/’ nel file ‘/tmp/archivio.tgz’ dopo averlo com-presso con ‘gzip’. > tar czvf /tmp/archivio.tgz /usr Come nell’esempio precedente. > tar --create --file /dev/ftape /usr/src tar: Removing leading / from absolute path names in the archive L'esempio qui sopra usa la versione GNU di tar e le sue opzioni con nomi lunghi. La versione tradizionale di tar capisce soltanto le opzioni di un singolo carattere, la versione GNU può anche gestire backup che non entrano in un singolo nastro o floppy, ed anche percorsi molto lunghi: non tutte le versioni tradizionali lo fanno (Linux usa solo il tar GNU.)
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione Se il vostro backup non entra in un nastro, dovete usare l'opzione --multi-volume (-M): > tar -cMf /dev/fd0H1440 /usr/src tar: Removing leading / from absolute path names in the archive Prepare volume \#2 for /dev/fd0H1440 and hit return: Notate che dovreste formattare i floppy prima di iniziare il backup, oppure usare un'altra finestra o terminale virtuale e farlo quando tar chiede un nuovo floppy. Dopo fatto un backup, dovreste controllare che sia a posto, usando l'opzione --compare (-d): # tar --compare --verbose -f /dev/ftape usr/src/ usr/src/linux usr/src/linux-1.2.10-includes/ .... Se non controllate il backup noterete i vostri eventuali errori solo quando avrete perso i dati originali.
Dipartimento di Informatica e Scienze dell’Informazione Archiviazione Potete fare un backup incrementale con tar usando l'opzione --newer (-N): >tar --create --newer '8 Sep 1995' --file /dev/ftape /usr/src –verbose Recuperare file con tar L'opzione --extract (-x) di tar estrae dei file dall'archivio: >tar --extract --same-permissions –verbose --file /dev/fd0H1440 Si possono anche estrarre file o directory specifiche (compresi tutti i file e le sottodirectory in esse contenuti) dandoli sulla linea di comando: >tar xpvf /dev/fd0H1440 usr/src/linux-1.2.10 includes/include/linux/hdreg.h Usate l'opzione --list (-t), se volete solo vedere quali file ci sono in un volume di backup: >tar –list --file /dev/fd0H1440
Dipartimento di Informatica e Scienze dell’Informazione La stampa Tradizionalmente, il dispositivo di stampa permette solo la scrittura, cioè si comporta come un file al quale si possono solo aggiungere dati. In questa situazione, la stampa si ottiene semplicemente trasferendo (copiando) un file alla stampante. Naturalmente, il file deve essere stato predisposto in modo da poter essere interpretato correttamente dalla stampante che si utilizza. Quando si ha la necessità di applicare una trasformazione al file da stampare, prima che questo raggiunga la stampante, si utilizza normalmente un filtro di stampa, cioè un programma o uno script che può essere inserito in una pipeline. I filtri di stampa vengono quindi utilizzati sia per adattare i file da stampare alle caratteristiche particolari della stampante che si ha a disposizione, sia per ottenere degli effetti, come l’aggiunta di intestazioni, … Il sistema di stampa in stile BSD si avvale del programma ‘lpr’ per accodare le stampe, e del demone ‘lpd’ per gestire la stampa di ciò che è stato accodato, oltre che per ricevere le richieste attraverso la rete. Fa parte della tradizione anche il file di configurazione ‘/etc/printcap’, nel quale vengono definite le varie code di stampa, a cui possono essere abbinate o meno dei filtri opportuni.
Dipartimento di Informatica e Scienze dell’Informazione La stampa La configurazione di un sistema di stampa in stile BSD avviene principalmente attraverso il file ‘/etc/printcap’, con il quale si definiscono le code di stampa e il loro comportamento. Il suo contenuto è organizzato in record, dove ognuno di questi contiene le informazioni relative a una coda. I campi di questi record sono separati da due punti verticali (alle volte doppi e altre singoli), e possono essere spezzati su più righe utilizzando la barra obliqua inversa (‘\’) seguita immediatamente dal codice di interruzione di riga. All’interno di questo file si possono trovare le indicazioni di code differenti che si riferiscono a un’unica stampante reale, per esempio quando si utilizzano configurazioni multiple per la stessa unità fisica. Si osservi che il simbolo ‘#’ rappresenta l’inizio di un commento, e il testo che segue fino alla fine della riga non viene tenuto in considerazione; nello stesso modo vengono ignorate le righe vuote e quelle bianche. Viene mostrato subito un esempio, il cui contenuto verrà descritto gradualmente in seguito.
Dipartimento di Informatica e Scienze dell’Informazione La stampa # Stampante predefinita lp|laserjet|HP Laserjet:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/lp/filtro: # Stampa di testo ascii:\ :sd=/var/spool/lpd/tx:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/ascii/filtro:
Dipartimento di Informatica e Scienze dell’Informazione La stampa # Stampa diretta senza filtri bare:\ :sd=/var/spool/lpd/bare:\ :mx#0:\ :sh:\ :lp=/dev/lp0: # Stampante condivisa dell’elaboratore elios.disi.unige.it net:\ :sd=/var/spool/lpd/net:\ :mx#0:\ ------- non pone alcun limite :sh:\ :rm=weizen.mehl.dg:\ :rp=lp:\ :if=/var/spool/lpd/net/filtro:
Dipartimento di Informatica e Scienze dell’Informazione La stampa Il primo campo di ogni record identifica tutti gli pseudonimi possibili di una certa coda di stampa, e questo serve di solito per identificare anche la stampante a cui questa coda è abbinata. Questi sono separati da una barra verticale. Gli altri campi contengono tutti una sigla identificativa composta da due caratteri, seguita eventualmente da un valore che gli viene attribuito. nome_coda [ |nome_stampante ] ...: { sigla_campo [ assegnamento ] : } ... La presenza di queste sigle permette in pratica di avere un numero variabile di campi, con un ordine variabile, dove solo il primo ha un ruolo prestabilito: quello di identificare la coda. Durante la compilazione di questo file è molto importante fare bene attenzione a non lasciare spazi di qualunque tipo dopo i simboli di continuazione (‘\’), altrimenti questi simboli verrebbero intesi solo come una sequenza di escape che conferma il valore letterale del carattere che segue, e non ci sarebbe alcuna continuazione.
Dipartimento di Informatica e Scienze dell’Informazione La stampa Questa considerazione è importante, perché poi è difficile scoprire errori del genere. Il sistema di stampa BSD tradizionale prevede una quantità molto grande di campi nei record di ‘/etc/printcap’. Le esigenze attuali sono tali per cui i campi che si utilizzano in pratica sono molto pochi, e non vale la pena di approfondire tecniche ormai superate, riferite a campi che in alcuni sistemi derivati potrebbero anche non essere più disponibili. if Input Filter filtro di ingresso. lf Log File file per la registrazione degli errori. lp Line Printer file di dispositivo di stampa. mx MaX dimensione massima di una stampa. rm Remote Machine nodo di stampa remota. rp Remote Printer coda di stampa remota. sd Spool Directory directory usata per la coda. sf Suppress Feed soppressione dell’avanzamento di separazione. sh Suppress Header soppressione dell’intestazione.
Dipartimento di Informatica e Scienze dell’Informazione La stampa Esempio lp|laserjet|HP Laserjet:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :lp=/dev/lp0:\ :if=/var/spool/lpd/lp/filtro: Per prima cosa si nota che è possible fare riferimento a questo utilizzando tre nomi possibili: ‘lp’, ‘laserjet’ o ‘HP Laserjet’. A parte questo, si nota l’inserimento di un filtro di ingresso. Il file ‘/var/spool/lpd/lp/filtro’ potrebbe essere sia un programma che uno script che esegue un qualche tipo di trasformazione sui dati ricevuti.
Dipartimento di Informatica e Scienze dell’Informazione La stampa Il servizio di stampa è gestito dal demone ‘lpd’. Questo si occupa principalmente di scandire le code e di mettere in stampa ciò che vi dovesse trovare. È anche in grado di ricevere richieste di stampa attraverso la rete, e in tal caso si occupa di metterle in coda; infine, è anche capace di inviare una richiesta di stampa a un nodo remoto. In condizioni normali, ‘lpd’ non richiede argomenti nella riga di comando, e comunque, la sintassi degli argomenti di ‘lpd’ è molto diversa da un sistema all’altro. Ogni sistema di stampa utilizza le proprie tecniche di autorizzazione per concedere l’accesso al servizio di stampa. In generale, un sistema di stampa installato attraverso i pacchetti della propria distribuzione GNU/Linux dovrebbe consentire la stampa quando questa è richiesta a partire dallo stesso elaboratore locale; mentre per consentire l’accesso dall’esterno, occorre predisporre altri file di configurazione che non sono standard
Dipartimento di Informatica e Scienze dell’Informazione La stampa Dal momento che la stampa è controllata da un demone, quando si modifica il file di configurazione ‘/etc/printcap’, bisogna fare in modo che ‘lpd’ lo rilegga. Questo lo si può ottenere arrestando e riavviando il servizio, oppure inviando al processo del demone un segnale di aggancio (‘SIGHUP’): kill -HUP pid_di_lpd Il cliente del sistema di stampa è un programma in grado di accodare una stampa. In generale, nei sistemi di stampa derivati da quello di BSD, si utilizza il programma ‘lpr’, e in alcuni casi il programma ‘lp’: lpr [ opzioni ] [ file... ] lp [ opzioni ] [ file... ]
Dipartimento di Informatica e Scienze dell’Informazione La stampa In condizioni normali, questi programmi sono in grado di mettere in stampa i file indicati alla fine della riga di comando, oppure, in loro mancanza, utilizzano per questo lo standard input. Sono molto poche le opzioni standard di questi programmi, e in generale, la cosa più importante è la definizione della coda di stampa a cui si vuole inviare il file: lpr -Pcoda [ file... ] lp -m coda [ file... ] Lo schema sintattico semplificato mostra esattamente questa possibilità, sia per ‘lpr’ che per ‘lp’. Si osservi in particolare che nel caso di ‘lpr’, la tradizione prevede anche che il nome della coda possa essere attaccato alla lettera dell’opzione. Alcune opzioni di lpr -Pcoda | -P coda Permette di specificare una coda di stampa particolare, tra quelle previste all’interno di ‘/etc/printcap’. Se non viene utilizzata questa opzione, si fa riferimento alla stampante predefinita (che di solito è ‘lp’).
Dipartimento di Informatica e Scienze dell’Informazione La stampa -m Al termine della stampa, invia un messaggio attraverso ‘mail’ all’utente che ha avviato il programma -#n_copie Permette di specificare il numero di copie che si vuole siano stampate. Il numero di copie è indicato da un numero che segue il simbolo ‘#’. Alcune opzioni di lp -d coda Permette di specificare una coda di stampa particolare, tra quelle previste all’interno di ‘/etc/printcap’. Se non viene utilizzata questa opzione, si fa riferimento alla stampante predefinita (che di solito è ‘lp’).
Dipartimento di Informatica e Scienze dell’Informazione La stampa > lpr letteraoppure lp lettera Accoda la stampa del file ‘lettera’ utilizzando la coda predefinita. > lpr -P laser lettera oppure lp -d laser lettera Per conoscere la situazione delle code di stampa si utilizza il comando ‘lpq’: lpq [ opzioni ] [ numero_processo_di_stampa... ] [ utente... ] ‘lpq’ esamina le code di stampa e restituisce lo stato di una o di tutte le stampe accodate dall’utente specificato. Se ‘lpq’ viene eseguito senza alcun argomento, restituisce lo stato di tutte le stampe accodate. Alcune opzioni -P coda Permette di specificare una coda particolare. Se non viene specificato, si fa riferimento a quella predefinita. -l Restituisce maggiori informazioni su ogni processo di stampa.
Dipartimento di Informatica e Scienze dell’Informazione La stampa I processi di stampa che risultano ancora visibili nelle code, possono essere rimossi dall’utente che li ha generati, o dall’utente ‘root’. lprm [ opzioni ] [ utente... ] Permette di rimuovere uno o più processi di stampa accodati precedentemente. Il nome dell’utente può essere specificato solo se il comando viene utilizzato dall’utente ‘root’, nel senso che solo lui può interrompere la stampa di altri utenti. Se non viene specificato il nome dell’utente, si intende che si tratti dello stesso che ha eseguito ‘lprm’. Se non vengono specificati argomenti, l’esecuzione del comando ‘lprm’ implica l’eliminazione della stampa in corso per l’utente che lo ha richiesto. Naturalmente, ciò vale solo se l’utente in questione ha, in quel momento, una stampa in esecuzione. Se l’utente ‘root’ utilizza ‘lprm’ senza specificare un utente a cui fare riferimento, ottiene l’eliminazione di tutti i processi di stampa nelle code, attivi o meno che siano.
Dipartimento di Informatica e Scienze dell’Informazione RPM Con la sigla RPM si identificano i pacchetti realizzati secondo uno standard definito da Red Hat (Red Hat Package Manager), i cui gli archivi hanno l’estensione ‘.rpm’. Oltre alla distribuzione Red Hat (e alle sue derivate), anche SuSE e Caldera utilizzano questo formato. Per poter gestire tale formato occorre il programma ‘rpm’. Per comprendere l’utilizzo del programma ‘rpm’, quando la propria distribuzione è organizzata secondo questo standard, vengono proposti alcuni esempi, senza entrare nel dettaglio della sua sintassi. Per maggiori informazioni conviene consultare la pagina di manuale rpm(8), oppure, per ottenere uno schema sintattico stringato basta avviare il programma stesso senza argomenti.
Dipartimento di Informatica e Scienze dell’Informazione RPM L’opzione ‘-q’ introduce una richiesta di informazioni. rpm -qpi archivio_rpm Mostra una descrizione del contenuto dell’archivio RPM. rpm -qpl archivio_rpm Mostra l’elenco dei file contenuti nell’archivio RPM e dove andranno collocati se sarà installato. rpm -qa Mostra l’elenco dei pacchetti RPM installati, così come sono stati registrati nel sistema RPM. rpm -qf file Determina il nome del pacchetto da cui proviene il file indicato come argomento.
Dipartimento di Informatica e Scienze dell’Informazione RPM Installazione. L’opzione ‘-i’ introduce una richiesta di installazione di un pacchetto. rpm -i archivio_rpm Installa il pacchetto contenuto nell’archivio indicato se non si verificano errori. rpm -i URL_ftp_archivio_rpm Installa il pacchetto contenuto in un archivio identificato dall’URI indicatose non si verificano errori. Per esempio potrebbe trattarsi di ‘rpm –i ftp://dinkel.brot.dg/pub/RPMS/mio-1.1-0.i386.rpm’ rpm -ivh archivio_rpm Installa il pacchetto contenuto nell’archivio indicato, se non si verificano errori, mostrando qualche informazione e una barra di progressione.
Dipartimento di Informatica e Scienze dell’Informazione RPM rpm -i --nodeps archivio_rpm Installa il pacchetto contenuto nell’archivio indicato, senza verificare le dipendenze tra i file. rpm -i --replacefiles archivio_rpm Installa il pacchetto contenuto nell’archivio indicato, senza verificare se vengono sovrascritti dei file. rpm -i --ignorearch archivio_rpm Installa il pacchetto contenuto nell’archivio indicato, senza verificare l’architettura dell’elaboratore. rpm -i --ignoreos archivio_rpm Installa il pacchetto contenuto nell’archivio indicato, senza verificare il tipo di sistema operativo.
Dipartimento di Informatica e Scienze dell’Informazione RPM Aggiornamento.L’opzione ‘-U’ introduce una richiesta di aggiornamento di un pacchetto. rpm -U archivio_rpm Aggiorna o installa il pacchetto contenuto nell’archivio indicato, se non si verificano errori. rpm -Uvh archivio_rpm Aggiorna o installa il pacchetto contenuto nell’archivio indicato, se non si verificano errori, mostrando qualche informazione e una barra di progressione. rpm -F archivio_rpm Aggiorna il pacchetto contenuto nell’archivio indicato, solo se risulta già installata una versione prece-dente. rpm -F modello_archivi_rpm Aggiorna i pacchetti contenuti negli archivi indicati, che risultano già installati nelle loro versioni precedenti.
Dipartimento di Informatica e Scienze dell’Informazione RPM Eliminazione. L’opzione ‘-e’ introduce una richiesta di eliminazione di un pacchetto installato. rpm -e nome_del_pacchetto_installato Elimina (disinstalla) il pacchetto. Verifica.L’opzione ‘-V’ introduce una richiesta di verifica di un pacchetto installato. rpm -V nome_del_pacchetto_installato Verifica che il pacchetto indicato risulti installato correttamente. rpm -Vf file Verifica il pacchetto contenente il file indicato. rpm -Va Verifica tutti i pacchetti.
Dipartimento di Informatica e Scienze dell’Informazione RPM rpm -Vp archivio_rpm Verifica la corrispondenza tra l’archivio RPM indicato come argomento e quanto installato effettivamente. Elenco delle segnalazioni di errore generabili da un controllo di un’installazione di pacchetti RPM (opzione ‘-V’). Sigla Descrizione 5 Controllo fallito della firma MD5. S Variazione della dimensione del file. L Collegamento simbolico alterato. T Data di variazione del file alterata. D Alterazione del file di dispositivo. U Utente proprietario diverso. G Gruppo proprietario diverso M Alterazione della modalità, comprendendo sia i permessi che il tipo di file
Dipartimento di Informatica e Scienze dell’Informazione RPM Sistemazione dei permessi rpm --setperms -a Verifica ed eventualmente corregge i permessi dei file di tutti i pacchetti installati. rpm --setugids -a Verifica ed eventualmente corregge la proprietà dei file di tutti i pacchetti installati. Problemi dovuti alle dipendenze Alle volte, quando si installano o si vogliono eliminare dei pacchetti si incontrano dei problemi, perché il programma ‘rpm’ impedisce di fare ciò che potrebbe essere dannoso e sembra originato a causa di un errore. A questo proposito vale la pena di conoscere alcune opzioni speciali. ‘--oldpackage’ Permette di aggiornare un pacchetto utilizzando una versione precedente a quella che appare essere già installata.
Dipartimento di Informatica e Scienze dell’Informazione RPM ‘- - replacefiles’ Permette di installare o aggiornare un pacchetto quando questo fatto implica la sostituzione di file già esistenti che appartengono ad altri pacchetti. ‘- -replacepkgs’ Permette di installare un pacchetto anche quando questo risulta già installato. • ‘- -force’ È l’equivalente delle opzioni ‘--oldpackage’, ‘- -replacefiles’ e ‘--replacepkgs’, • ‘- -nodeps’ Installa, aggiorna o disinstalla senza curarsi delle dipendenze da file o da altri pacchetti.