Sistemi Operativi. Esercitazione 5. Corso di Laurea Triennale in Ingegneria Informatica.

Documenti analoghi
sintassi: percorsi, espressioni (condizioni e operatori) esecuzione di un comando sul risultato della ricerca (azione -exec)

Sistemi Operativi. Esercitazione 5. Corso di Laurea Triennale in Ingegneria Informatica.

Archiviazione, ricerca dei file e pianificazione dei processi

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 4 Cenni a Xserver Patch, diff Tar, gzip, bzip Find, grep

Sistemi operativi. Corso di Laurea Triennale in Ingegneria Informatica. Lezione 4 Cenni a Xserver Patch, diff Tar, gzip, bzip Find, grep

LABORATORIO DI SISTEMI OPERATIVI

Ulteriori comandi sui file

LABORATORIO DI SISTEMI OPERATIVI

Lab. di Sistemi Operativi - Esercitazione n 2 - a.a. 2012/2013

Il sistema operativo LINUX Esercitazione 3

Lab. di Sistemi Operativi - Esercitazione n 2- - comando di ricerca: grep -

Esercitazione 1 la shell

- comando sort: con chiavi di ordinamento -

Sistemi Operativi e informatica 1

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

Lesson #4. Espressioni Regolari. Roberto De Virgilio

Linux e la shell Bash

Lezione 3: Programmazione della Shell di Unix

Shell: variabili di sistema. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Espressioni Regolari. Giancarlo Massidda

Il sistema operativo LINUX Esercitazione 3. Esercizio 1. Esercizio 2. Esercizio 5 - Soluzione. Il sistema operativo LINUX Esercitazione 4.

Introduzione alla programmazione nella shell di Unix 10 Maggio 2005

Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME. Per visualizzare il valore di tutte le variabili d ambiente si usa il comando set

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

L ambiente UNIX/Linux. Espressioni regolari e comando find Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Corso di Laboratorio di Sistemi Operativi

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Page 1. Programmazione. Shell e programmazione. File comandi (script) Introduzione alla programmazione nella shell di Unix

Per visualizzare il valore di tutte le variabili d ambiente si usa il comando env

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Il DOS diagramma di flusso. I comandi del DOS. I comandi: vista funzionale. Parametri. Opzioni. I comandi: sintassi

Il filesystem di Unix/Linux (I)

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Esercitazione 2 GUIDA

Scheduling di attività

Lezione 2: Comandi avanzati della Shell di Unix

Lab. di Sistemi Operativi - Esercitazione n 3 - a.a. 2016/2017. Script shell

Dos: script dell interprete dei comandi

Controllo di flusso negli script: if-then-else

Gestione avanzata dei file

L utility Unix awk [Aho-Weinberger-Kernighan]

Ambienti di Programmazione per il Software di Base

L utility Unix awk [Aho-Weinberger-Kernighan]

Manipolazione di testo

Organizzazione di Sistemi Operativi e Reti

Esercitazione GNU/Linux n. 2

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Daniel Cesarini

Basi di Linux per GRASS. Cartografia numerica e GIS

Lezione 2: Comandi avanzati della Shell di Unix

L ambiente UNIX/Linux. I filtri Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Linguistica Computazionale: esercitazioni

Espansione della shell 1) Espansione delle parentesi graffe

Lesson #6. Miscellaneous. Roberto De Virgilio

Dos: script dell'interprete dei comandi

Laboratorio 1: Usare Linux

Linguistica Computazionale

Esempio di domande sul file system

La seconda linea deve iniziare con un TAB (non la scritta 'TAB') e contiene cosa il programmatore scriverebbe per ottenere quel target.

NOTE SULL USO DI ECLIPSE per la compilazione di programmi c

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2018/2019. Comandi Shell

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Il sistema operativo LINUX Tools e comandi avanzati

Laboratorio di Sistemi Informativi

Sistemi Operativi 1. Mattia Monga. a.a. 2012/13. Dip. di Informatica Università degli Studi di Milano, Italia

Analizzatori Lessicali con JLex. Giuseppe Morelli

Introduzione a Unix/Bash. Insieme minimo di strumenti per interagire con la shell Bash, compilare ed eseguire

Utenti. Il cuore del sistema di gestione degli utenti si trova nei file. Anche altri file sono (più o meno) importanti in questo processo:

Manipolazioni elementari di flussi di testo strutturati

- Controllo di flusso: for -

Progetto II: Il linguaggio C e le chiamate di sistema sui processi

MODULO 5 - USO DELLE BASI DI DATI 2 FINALITÁ

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Utenti e Permessi. Andrea Bontempi. Corsi Linux POuL

Introduzione al sistema Linux

Laboratorio di Informatica di Base Progetto Tandem 2007/2008

Linguistica Computazionale

3.5.1 PREPARAZ1ONE I documenti che si possono creare con la stampa unione sono: lettere, messaggi di posta elettronica, o etichette.

Il sistema operativo LINUX La shell

Lezione 15 File system: uso

Sophos Enterprise Console

Esempio 1. Creare uno script (file comandi) che abbia la sintassi:

Codice Corso: UNX010. Durata: 3 giorni

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso

Il Manuale di KXSLDbg. Keith Isdale Traduzione del documento: Samuele Kaplun Traduzione del documento: Simone Solinas

Lab. di Sistemi Operativi - Esercitazione - Comandi Shell

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

Bioinformatica II. Esercitazione 2 GUIDA

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Lab. di Sistemi Operativi

File binari e file di testo

Lezione 5: Controllo del flusso e costrutti avanzati

LABORATORIO DI SISTEMI OPERATIVI

SQL: le funzioni di aggregazione

File System I parte. File System

Shell BASH. Variabili Redirezione

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

BREVISSIMA GUIDA AL SISTEMA UNIX / LINUX

Transcript:

Sistemi Operativi Corso di Laurea Triennale in Ingegneria Informatica Esercitazione 5. daniel.cesarini@for.unipi.it Cron Tar Find 1

Sommario Pianificazione dei processi demone cron file di configurazione: sintassi comando crontab e opzioni Archiviazione e compressione archiviazione con il comando tar operazioni principali e opzioni principali compressione di file singoli comandi gzip, gunzip, bzip2, bunzip2 Ricerca dei file in percorsi specificati: comando find sintassi: percorsi, espressioni (condizioni e operatori) esecuzione di un comando sul risultato della ricerca (azione -exec) in un database: comando locate (cenni) Ricerca nei file: comando grep Cron, Tar, Find,...... 2

Pianificazione dei processi

Pianificazione dei processi Esecuzione di processi in date e orari stabiliti Il demone cron controlla queste esecuzioni crontab: file contenente le configurazioni Solitamente si ha: Un file per ogni utente Uno generale per tutto il sistema Cron, Tar, Find,...... 4

cron Demone funzionante in background (cioè slegato dal terminale) Interpreta i file crontab collocati in /etc/crontab per le impostazioni globali /var/cron/tabs/nome_utente per ogni utente si ha un file con il proprio nome Cron, Tar, Find,...... 5

Comando crontab crontab [opzioni] permette di creare o modificare il file crontab di un utente Solo root può agire sul file crontab di un altro utente I file crontab vengono usati dal demone cron che si occupa di eseguire i comandi indicati Cron, Tar, Find,...... 6

Opzioni al comando crontab [-u utente] file -l -e -r Sostituisce il file crontab con il contenuto del file indicato come argomento Visualizza il file crontab dell utente Crea o modifica il file crontab dell utente Cancella il file crontab dell utente Cron, Tar, Find,...... 7

Variabili di ambiente SHELL Stabilisce con quale shell devono essere eseguiti i comandi (/bin/sh) MAILTO Destinatario dei messaggi di posta che vengono generati non viene inviato nessun messaggio Cron, Tar, Find,...... 8

Formato del file crontab 23 0-23/2 * * * echo "Ciao" campi separati da spaziature campi relativi all istante di esecuzione minuto, ora, giorno, mese, giorno della settimana 0 domenica, 1 lunedì,, 7 domenica utente solo per le impostazioni globali (file /etc/crontab), per gli altri è implicito (l utente stesso) comando senza redirezione l output viene inviato per e- mail Cron, Tar, Find,...... 9

Caratteri speciali * - indica qualsiasi valore per delimitare un insieme di valori compresi tra gli estremi inseriti (es. 1-3), / per separare singoli valori (es. 2,5) per esprimere una granularità (es. /8) Cron, Tar, Find,...... 10

Esempio /var/cron/tabs/* # Utilizza «/bin/sh» per eseguire i comandi, indipendentemente da # quanto specificato all'interno di «/etc/passwd». SHELL=/bin/sh # Invia i messaggi di posta elettronica all'utente «fede», # indipendentemente dal proprietario di questo file crontab. MAILTO=fede # Esegue 5 minuti dopo la mezzanotte di ogni giorno. 5 0 * * * $HOME/bin/salvataggiodati # Esegue alle ore 14:15 del primo giorno di ogni mese. # L'output viene inviato tramite posta elettronica all'utente «tizio». 15 14 1 * * $HOME/bin/mensile # Esegue alle 22 di ogni giorno lavorativo (da lunedì al venerdì). # In particolare viene inviato un messaggio di posta elettronica a «fede». 0 22 * * 1-5 mail -s "Sono le 22" fede # Esegue 23 minuti dopo mezzanotte, dopo le due, dopo le quattro,..., # ogni giorno. 23 0-23/2 * * * echo "Ciao ciao" # Esegue alle ore 04:05 di ogni domenica. 5 4 * * 0 echo "Buona domenica" Cron, Tar, Find,...... 11

Esempio /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # Run any at jobs every minute * * * * * root [ -x /usr/sbin/atrun ] && /usr/sbin/atrun # run-parts è un programma che avvia tutti gli eseguibili contenuti nella directory indicata come argomento 01 * * * * root run-parts /etc/cron.hourly 02 1 * * * root run-parts /etc/cron.daily 02 2 * * 0 root run-parts /etc/cron.weekly 02 3 1 * * root run-parts /etc/cron.monthly # esegue uno script di backup ogni 10 minuti */10 * * * * root /root/bin/backupscript Cron, Tar, Find,...... 12

Note run-parts /etc/periodic/hourly serve ad avviare tutto quello che c'è nella directory Per inserire un'elaborazione nei momenti più comuni, basta mettere il programma o lo script relativo nella directory che rappresenta la cadenza desiderata. Cron, Tar, Find,...... 13

Archiviazione e compressione

Archiviazione con il comando tar tar = Tape Archive Un file tar è una raccolta di file e/o directory in un unico file. tar genera un archivio non compresso tar viene utilizzato insieme al compressore di default Gnu Zip (gzip) il formato tar compresso (file.tgz o.tar.gz) è diventato ormai lo standard per il passaggio di dati tra sistemi Unix. tar [azione][switch] [archivio] [file] Cron, Tar, Find,...... 15

Tar - Opzioni azione c : crea x : estrae t : visualizza il contenuto di un archivio switch v : verbose (per ottenere maggiori informazioni nel corso delle operazioni (debug)) z : comprime il file tar con gzip j : comprime il file tar con bzip2 f : file Deve essere messa come ultima opzione Usa il path relativo n : forza un comportamento non ricorsivo Cron, Tar, Find,...... 16

tar - Creazione tar cvf archivio.tar sorgente tar -czvf archivio.tar.gz ~/archivio/* archivio.tar : file che state creando sorgente : file/directory che volete inserire nel nuovo file archiviato. Cron, Tar, Find,...... 17

tar - Visualizzazione tar -tvf filename.tar Elenca il contenuto di filename.tar Cron, Tar, Find,...... 18

tar - Estrazione tar xvf archivio.tgz destinazione tar xzvf archivio.tar.gz Questo comando non rimuove il file tar, ma crea copie del suo contenuto Cron, Tar, Find,...... 19

gzip and gunzip Programma di compressione attraverso il quale viene creato un file compresso per ogni file indicato negli argomenti Programma indipendente da tar gzip Utility di compressione gunzip Utility di decomprime gzip archivio archivio.gz Cron, Tar, Find,...... 20

bzip2 and bunzip2 Effettua una compressione maggiore (miglio rapporto di compressione) bzip2 Utility di compressione bunzip2 Utility di decompressione bzip2 archivio.a archizio.bz2 bzip2 file.bz2 file2 file3 /usr/work/school Cron, Tar, Find,...... 21

Path Nell archivio i file vengono memorizzati col path Non vengono fatti controlli di overwrite Se non viene specificata la destinazione si usa la directory corrente ed il path memorizzato nell archivio -C nome_directory: estrae i dati nella directory specificata Cron, Tar, Find,...... 22

Ricerca dei file

find Esegue una ricerca all interno di uno o più percorsi per i file che soddisfano delle condizioni determinate Le condizioni sono legate all apparenza esterna e non al contenuto Cron, Tar, Find,...... 24

find Sintassi find [percorso ] [espressione] percorso insieme di percorsi separati da spazi Se non specificato è la directory corrente espressione: insieme di test e azioni separati da operatori Cron, Tar, Find,...... 25

Espressioni [opzione ] [condizioni] Opzione Modo di configurare il comportamento del programma Condizioni Espressioni che generano un risultato logico restituiscono un valore vero/falso Per concatenare insieme più condizioni si usano gli operatori booleani di default è utilizzato l AND logico (-and) Cron, Tar, Find,...... 26

Condizioni -name schema restituisce TRUE se il nome del file corrisponde allo schema specificato si possono utilizzare i caratteri speciali * e? -size [+ -]n[b c] restituisce TRUE se la dimensione del file è uguale (maggiore con + o minore con -) a n unità di spazio b per unità da 512 bytes (default) c per byte -type t restituisce TRUE se il file è del tipo specificato d per cartelle f per file normali l per link simbolici Cron, Tar, Find,...... 27

Condizioni -user utente restituisce TRUE se il file/directory appartiene all utente specificato -group gruppo restituisce TRUE se il file/directory appartiene al gruppo specificato -perm [-/+]modello restituisce TRUE se i permessi del file corrispondono esattamente al modello specificato (in forma ottale o simbolica) - ignora permessi extra + per uno qualsiasi dei modi specificati Cron, Tar, Find,...... 28

Operatori booleani di find (espressione) Stabiliscono la precedenza nell esecuzione dei test!espressione nega un espressione espressione [-and] espressione AND logico tra espressioni (può essere omesso) espressione -or espressione OR logico tra espressioni Ricordarsi di usare i caratteri di escape per proteggerli dall espansione della shell Cron, Tar, Find,...... 29

Azioni di find Sono operazioni da compiere per ogni file o directory che si ottiene dalla scansione. -print stampa i nomi dei file trovati separandoli con un terminatore di stringa (carattere NULL) -exec comando [{}] [; +] esegue il comando specificato sui risultati della ricerca di default esegue una istanza del comando per ogni file trovato (la riga deve terminare con ;) se si usa {} i file trovati vengono passati al comando come lista (la riga deve terminare con +) Cron, Tar, Find,...... 30

Esempi find find. name prova\* -print Cerca tutti i file il cui nome inizia con prova find / -name lib* -print Esegue una ricerca sul file system globale per i file/directory il cui nome inizia per lib \ protegge i metacaratteri Cron, Tar, Find,...... 31

Esempi find find /home name pro*! type d Esegue una ricerca a partire da /home per i file il cui nome inizia con pro nella ricerca vengono escluse le directory Le virgolette vengono usate per evitare che la shell trasformi lib*/pro* in qualcosa di diverso Cron, Tar, Find,...... 32

Ricerca con locate locate nomefile Esegue una ricerca del file nomefile all'interno di un db Tale database va popolato e tenuto aggiornato per avere risposte corrette da locate: locate.updatedb Cron, Tar, Find,...... 33

Ricerca nei file

grep Cerca in uno o più file le righe contenenti la stringa specificata. grep [opzioni] "stringa" nome_file... Esempio: grep pippo pluto Il risultato visualizza le parti del file pluto in cui compare la parola pippo. Se vengono indicati due o più file in cui cercare, nell'output è incluso il nome del file. Esempio: grep pippo * Cerca la parola pippo in tutti i file della directory corrente. Il comando grep e' case sensitive Cron, Tar, Find,...... 35

grep È possibile utilizzare espressioni regolari per le ricerche (generalized regular expression printer) Esempio grep 'ri.*o' pluto Cerca tutte le stringhe che iniziano per ri e terminano con o all'interno del file pluto. Le virgolette singole impediranno alla shell di trattare l'asterisco come carattere jolly.* indica 0 o più caratteri qualunque Cron, Tar, Find,...... 36

Opzioni -i (ignore case) consente di ignorare le distinzioni tra minuscole e maiuscole -v mostra le linee che NON contengono l espressione specificata -n premette il numero di riga davanti ad ogni riga che riporta -c riporta solo il conteggio delle linee che contengono la sequenza -w verificare solo parole intere -x controlla le corrispondenze di linee intere Cron, Tar, Find,...... 37

Metacaratteri (1 di 2) Talvolta chiamati anche caratteri jolly o wild-cards Hanno un significato particolare ^ Inizio riga grep '^d' ls.out Tutte le righe che iniziano per d $ Fine riga grep '\.c$' ls.out Cerca le righe che finiscono per.c È stato necessario impiegare anche il metacarattere '\' perché anche il carattere '.' è un metacarattere ma nella ricerca in corso si desiderava inserirlo letteralmente e non nel suo significato di metacarattere. '\' neutralizza il valore di metacarattere del carattere che lo segue Per citare letteralmente il carattere '\' è necessario quindi scriverlo due volte: '\\' Cron, Tar, Find,...... 38

Metacaratteri (2 di 2). rappresenta nelle espressioni regolari uno ed un solo carattere qualunque * zero o più occorrenze dell espressione che lo precede Le espressioni regolari possono contenere anche più metacaratteri. Per ricercare un'ipotetica riga costituita dalla sola stringa "riga completa" si usa: '^riga completa$' Per individuare tutte le righe vuote del file si usa: '^$' Cron, Tar, Find,...... 39

Insiemi di caratteri [s] '[' e ']' sono metacaratteri 's' rappresenta un elenco di caratteri ammessi. L'insieme '[s]' soddisfa UN SOLO qualunque carattere che sia compreso nell'elenco s. Negli insiemi '[s]' si possono specificare intervalli di caratteri usando il carattere '-' Cron, Tar, Find,...... 40

Esempio grep '1[23]:[0-5][0-9]' ls.out L espressione regolare specifica che: il primo carattere della stringa cercata deve essere letteralmente un '1' il secondo può essere un '2' o un '3' il terzo deve essere letteralmente un ':' il quarto può essere '0' o '1' o '2' o '3' o '4' o '5' il quinto deve essere una cifra compresa tra '0' e '9' (estremi compresi). Cron, Tar, Find,...... 41

Esercizi Archiviazione e compressione creare nella home un archivio compresso in formato gzip di nome config.tgz contenente i file con estensione conf presenti nella cartella /etc mostrare i file contenuti nell archivio decomprimere l archivio con gunzip estrarre i file contenuti con il comando tar Ricerca dei file cercare dentro la cartella /etc tutti i file il cui nome contiene la stringa sys e la cui dimensione è superiore a 10 byte cercare nella root tutti i file che hanno il bit SUID o SGID attivo concatenare e mostrare a video tutti i file (a partire dalla root) il cui nome contiene la stringa tab Ricerca nei file cercare dentro la cartella /etc tutti i file che contengono la stringa fstab Cron, Tar, Find,...... 42