Home Page

Tips page
c
cellulari
debian
egittologia
emacs
emacs-latex
hardware
html
inglese
java
latex
linux

*Alcuni comandi utili utilizzando find
*ARP e MAC address
*Ascoltare un CD audio
*Attivare il NumLock (BlocNum)
*Attivare i tasti i tasti Magic SysRq
*AWK, use an environment variable inside a script
*Bash e Argument list too long
*BogoMIPS
*Cancellare file e non recuperare spazio
*Capacita` dell'hard disk
*Come cambiare i font delle applicazioni con librerie GTK
*Come cambiare l'hostname
*Come tentare di recuperare file, filesystem e partizioni
*Compilare in parallelo
*Condividere una partizione
*Configure proxy for shells
*Continuous disk access
*Controllare la salute di hard disk e filesystem
*Convertire ext2 in ext3 (e viceversa)
*Convertire un file di testo dalla codifica DOS a quella UNIX
*Cosa fare quando si perde la password di root
*Cosa significa l'errore ``TCP
*Creare un boot floppy
*Creare un file temporaneo
*Deframmentazione di un filesystem
*Delete last chars from a string
*Determinare lo spazio libero sul disco
*Eliminare il beep
*Emettere un beep da script
*Enable PPP connection on boot
*Exclude a directory with rsync
*Execute telnet from a script
*Gestione dei file di log
*Gestione dei file .iso
*Gestione della data/ora
*Gestione di utenti e gruppi
*Hash md5 di una stringa
*Identificare la distribuzione installata
*I file ps e pdf
*Il file /etc/fstab
*Il file /etc/issue[.net] e /etc/motd
*Il filesystem SysFs
*I link soft ed hard
*Il path delle applicazioni
*Il sistema tutto in maiuscolo
*I moduli del kernel
*Impostare piu` IP per una scheda di rete
*Introduzione a LVM
*Inviare messaggi agli altri utenti
*I permessi della directory root, /
*La gerarchia del filesystem di Linux
*La memoria Ram sotto Linux
*La memoria swap
*Limitare la possibilita` di diventare root
*Limitazioni alla dimensione del file
*Log dei login utente
*Modificare il comportamento di ctrl+alt+canc
*Modificare le variabili della parent shell
*Montare o rimontare un filesystem come read-only
*More columns in a shell output
*Negare il login durante la manutenzione del sistema
*NoHUP
*Obtain the exact process start time
*Ottenere uno snapshot dello schermo
*Partizionamento di un sistema Linux
*Perche' si usa ./ per avviare alcuni eseguibili
*Permanent PPP connection
*PID of a process
*Programmare l'esecuzione dei programmi
*Quale processo utilizza un certo file o porta
*Quali vantaggi si hanno dalla ricompilazione
*Remove from find results
*Ricreare velocemente /tmp al boot
*Ridirezione dell'output
*Rimappare la tastiera
*Ripristinare i caratteri sballati in console
*Riscrivere l'MBR
*Salvarsi da un ``rm'' di troppo...
*Save MBR
*Scrivere in modo sincrono su filesystem
*Scrivere nel log di sistema di Linux
*Separazione dei comandi nella shell
*Separazione delle parole nella shell
*Share the internet connection
*Shell configuration files
*Single quote character escape with sed
*Spostare una directory in un'altra partizione
*Stimare il carico di lavoro della macchina
*Undelete di un file
*Usare le pendrive USB sotto Linux
*Usare partizioni primarie o estese
*Use md5sum to verify saved files
*Use ssh and scp without password
*Utilizzare hdparm per controllare gli hard disk
*Verificare un file video
*What is a zombie process
*What is the file System.map?
*What is the shebang? (Shell scripts)
*What shared libraries a program uses
*Yesterday date

matlab
misc
mysql
network
octave
programming
python
security
sed
tech
webapps
windows

University Page

Programming

Debian & Linux

Some works

About me

Del.icio.us Bookmarks

BOINC Combined Statistics

Site Statistics

Contact me sending an e-mail (antispam defense activated)

debian

hacker emblem

blogger

GeoURL

View Sandro Tosi's profile on LinkedIn

This is my Google PageRank

Title: Determinare lo spazio libero sul disco
Author: Sandro Tosi
Last modified: 2004-12-12 (2004-11-10) (2004-11-03)

Tenere sotto controllo  lo spazio utilizzato sul proprio  hard disk e`
un'attivita` importante  sia per l'amministratore del  sistema che per
l'utente medio.  Gli strumenti che Linux mette  a disposizione servono
due categorie:


o  Utilizzo dei filesystem

   Il comando da utilizzare e` ``df''.

   Il  risultati ottenuti,  a  volte, potrebbero  essere di  difficile
   interpretazione  (spazio  mancante),  magari  a  filesystem  appena
   creato.  Si ricordi  che ext3  occupa circa  30 Mb  per il  file di
   journal,  che non viene  conteggiato nello  spazio occupato  ma che
   viene  sottratto  dallo spazio  disponibile.  Inoltre, parte  dello
   spazio  viene occupato  da  inode  e superblock  (circa  il 5%,  di
   default), definiti in fase di formattazione.


o  Utilizzo di una directory

   Il  comando da  utilizzare  e`  ``du'', il  quale  stima lo  spazio
   occupato da una directory.

   Lanciando questo comando dalla propria home, per esempio, avremo un
   elenco  di tutte le  directory nell'albero  della home,  in maniera
   ricorsiva,  con a  sinistra  la dimensione  occupata  sul disco  in
   blocchi da 1k.

   Spesso, invece, vogliamo sapere la dimensione di un interno tree di
   directory. Per fare questo possiamo utilizzare:

   # du -hs <dir_to_size>

   dove  si e`  anche utilizzato  il flag  ``-h'', che  restituisce la
   dimensione in formato ``human-readable''.


Anomalie
========

o  Lo spazio  disponibile e` ancora  elevato, eppure non  e` possibile
   creare altri file in una directory.

   Non  e` un  problema di  limite  di file  in una  directory, ma  e`
   possibile che siano finiti i descrittori dei file; tramite

   # df -i <filesystem>

   e` possibile avere informazioni riguardo agli inode del filesystem


o  il comando ``df'' indica la  partizione come piena ma invece ``du''
   indica la presenza di spazio libero.

   Theodor Ts'o  (sviluppatore di ext2) indica la  causa classica come
   dovuta ad un processo utente che tiene aperto un file cancellato.

   Quando questo  succede, ``du'' non  mostra lo spazio  utilizzato da
   quel file, in quanto il file non e` piu` visibile nell'albero della
   directory ma  lo spazio risulta ancora utilizzato  dal file finche`
   non  verra` deallocato,  e questo  succedera` solo  quando l'ultimo
   processo che aveva aperto il  file chiudera` il suo file descriptor
   aperto verso di esso.

   Utilizzando  ``lsof''  e` possibile  trovare  quale processo  tiene
   aperto questo file, solitamente un file di log che viene ruotato ma
   che qualche vecchio processo continua a tenere aperto.

   Entriamo maggiormente  in dettaglio a questo  problema. Una domanda
   lecita   e`   ``Com'e`   possibile   rimuovere   un   file   ancora
   utilizzato?''.  Questo  viene  fatto  utilizzando  la  funzione  di
   sistema ``unlink''.

   Unlink rimuove il file specificato  come parametro. Se il codice e`
   scritto male, come questo:

   <c_source_code start>
   fd = open("path/name", O_CREAT);
   unlink( "path/name");
   <c_source_code stop>

   e cioe` se  il file viene rimosso senza aver  ancora chiuso il file
   descriptor  (fd)  ad esso  riferito,  per quell'applicazione  sara`
   ancora possibile utilizzare quel file.

   Questo significa che l'entry di  quel file nella directory non c'e`
   piu`,  ma che tutte  le risorse  occupate (inode,  blocchi) restano
   tali fino a che non viene chiuso fd.

   ( Modificando  il codice sorgente  e` possibile ottenere  un metodo
     semplice per un "file system full":

     <c_source_code start>
     fd = open("path/name", O_CREAT);
     unlink( "path/name");
     while (1)
	   write(fd, ...);
     <c_source_ode stop>

     senza sapere chi ringraziare... )