# Introduzione: journal I moderni filesystem Linux hanno un *diario di bordo*. Questo significa che ogni operazione viene registrata in un log interno, il *journal*, prima di essere eseguita. Se un'operazione viene interrotta a causa di un errore di sistema, questa puo' essere ricostruita controllando il journal, evitando il danneggiamento del filesystem e la perdita di dati. ## Controllare l'utilizzo dei dischi Un comando usato per controllare quanto spazio viene usato e quanto ne resta su un determinato filesystem é `du` o *disk usage*. ```bash 1.1G ./Film/S09 8.8G ./Film/S10 32G ./Film 55G ./Criterion 86G . ``` Il comportamento predefinito é quello di mostrare l'utilizzo di ogni sottodirectory, quindi l'utilizzo totale della directory corrente, incluse le sottodirectory (86G nell'esempio). Per controllare quanto *profondo* l'output di `du` dovrebbe essere, si utilizza il parametro `-d N`, dove `N` indica il livello. Per impostazione predefinita, `du` mostra solo il conteggio dell'utilizzo delle directory. Per mostrare un conteggio individuale per tutti i file, aggiungere il parametro `-a`. Per escludere alcuni tipi di file dal conteggio si utilizza `--exclude="PATTERN"`: ```bash > du -h --exclude="*.mkv" 0 ./Film/S09 0 ./Film/S10 0 ./Film 0 ./Criterion 356K . ``` ## Controllare lo spazio libero `du` funziona a livello di file e directory. `df` mostra invece quanto spazio é disponibile a livello di filesystem. Mostra un elenco di tutti i filesystem montati nel sistema, inclusa la loro dimensione totale, lo spazio utilizzato, quello ancora disponibile, la percentuale e il mount-point. ```bash [21:03 Sun Jan 26]dado@dadopc (1425):~ > df -h Filesystem Type Size Used Avail Use% Mounted on udev devtmpfs 15G 0 15G 0% /dev tmpfs tmpfs 3.0G 1.9M 3.0G 1% /run /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% / ``` Per mostrare gli inode usati/disponibili invece dei blocchi, si usa il parametro `-i`: ```bash [21:03 Sun Jan 26]dado@dadopc (1427):~ > df -i Filesystem Type Inodes IUsed IFree IUse% Mounted on udev devtmpfs 3.7M 596 3.7M 1% /dev tmpfs tmpfs 3.7M 1.2K 3.7M 1% /run /dev/mapper/VG0-LV0 btrfs 0 0 0 - / ``` Il parametro `-T` stampa il tipo di filesystem. É possibile anche filtrare l'output per mostrare solo un tipo di filesystem con `-t TYPE` o escludere un dato filesystem con `-x TYPE`: ```bash [21:06 Sun Jan 26]dado@dadopc (1428):~ > df -hTt btrfs Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% / /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/cache /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /home /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /.snapshots /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/crash /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/lib/AccountsService /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/lib/gdm3 /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/log /dev/mapper/VG0-LV0 btrfs 465G 117G 346G 26% /var/tmp ``` ## Manutenzione dei filesystem ext2, ext3 e ext4 Esiste l'utility `fsck` (*filesystem check*). Sintassi: ```bash fsck /dev/sda1 ``` > NOTA: MAI, MAI eseguire fsck su un filesystem montato Alcune opzioni: - `-A`: controlla tutti i filesystem elencati in `/etc/fstab` - `-C`: visualizza una barra di avanzamento durante il controllo (solo ext2/3/4) - `-N`: *dry-run* - `-R`: se usato insieme a `-A`, salta il controllo del filesystem root - `-V`: verbose `fsck` non controlla il filesystem, ma richiama l'utilitá appropriata per il tipo di filesystem; `e2fsck` nel caso di ext2/3/4. Per impostazione predefinita, viene eseguito in modalitá interattiva: quando viene rilevato un errore, viene chiesto all'utente come procedere. Ci sono alcune opzioni per eseguire `e2fsck` in modalitá automatica: - `-p`: tenta di correggere autonomamente gli errori. Se l'errore richiede l'intervento dell'amministratore, fornisce una descrizione e terminerá la propria esecuzione - `-y`: risponde `yes` a tutte le domande - `-n`: risponde `no` a tutte le domande ## Manutenzione di un filesystem xfs Esiste l'utility `xfs_repair`, la cui sintassi di base: ```bash xfs_repair /dev/sda1 ``` - `-n`: *dry-run*. Nessuna modifica: il filesystem verrá controllato, ma non verrá effettuata alcuna riparazione.