Unix-opas, luku 7 Tiedostot ja hakemistot:

Levytilan käyttö - df, du, quota

Tiedostot sijaitsevat käytännössä levyllä (disk). Samaan tietokoneeseen voidaan liittää useita levy-yksiköitä ja niillä olevia tiedostojärjestelmiä. Toisaalta asiat voidaan järjestää niin, että useat koneet käyttävät samoja levyjä. Yhä yleisemmin menetellään niin, että käytössä on erityisiä levy- eli tiedostopalvelimia (file server), jotka ovat erikoistarkoitukseen varattuja tietokoneita: tiedostopalvelin hallitsee suurta määrää levytilaa ja tarjoaa levypalveluita eri tietokoneille. Normaalisti käyttäjä ei juuri huomaa sitä, että hänen tiedostonsa ovat levypalvelimen hallitsemilla levyillä - paitsi jos palvelin tai tietoliikenneyhteys siihen ei toimi.

Vaikka nykyisissä tietokoneissa on käytettävissä suuri määrä levytilaa ja levy on suhteellisen halpaa, kyseessä on kuitenkin rajallinen resurssi. Koska suuri määrä käyttäjiä käyttää samoja levyjä, saattaa käydä niin, että yksi käyttäjä vahingossa (tai ilkivaltaisuuttaan) täyttää levytilan estäen siten muita tekemästä koneella juuri mitään. Tällaisten syiden takia monissa järjestelmissä on käytössä levytilan kiintiö (quota). Olipa kiintiöinti käytössä tai ei, käyttäjän on syytä silloin tällöin tarkistaa levytilan käyttönsä. Jotkin ohjelmat saattavat käyttäjän tietämättä luoda varsin isojakin tiedostoja, jotka ehkä jäävät tarpeettomasti kuluttamaan tilaa.

Komento df (disk free) tulostaa tietoja koko järjestelmän levytilan käytöstä. Koska koneissa on usein monia levyjä, komennolla voi saada pitkän listan, josta aloittelija ei välttämättä ymmärrä mitään. Tässä esimerkki df-komennon tulostuksesta eräässä koneessa:

vipunen ~ % df 
Filesystem    Total KB    free %used   iused %iused Mounted on
/dev/hd4         28672    7676   73%    1272    17% /
/dev/hd2        323584   54840   83%   17233    21% /usr
/dev/hd9var      20480    6544   68%     538    10% /var
/dev/hd3         20480   12640   38%     472     7% /tmp
/dev/lv03       131072    1544   98%    5077    15% /var2
/dev/lv01      2007040   19928   99%  183684    36% /u
/dev/lv02       950272   16948   98%   43544    18% /u1
/dev/lv00      1015808   89132   91%   59858    23% /m/vipunen/u2
/dev/fslv00     507904   35068   93%    3654     2% /m/vipunen/scratch
leka.hut.fi:/u/. 1982464   53844   97%   -       -    /m/leka/u
leka.hut.fi:/u1/.  851968   57660   93%   -       -    /m/leka/u1
leka.hut.fi:/u2/. 1982464  259092   86%   -       -    /m/leka/u2
leka.hut.fi:/usr/lpp/info/.  503808   72456  85%  - -  /m/leka/usr/lpp/info
Useimmiten eniten käyttöä on komennolle df ., joka kertoo levytilan käyttöasteesta juuri sillä levyllä, jossa työhakemistosi on. Esimerkki komennon df . tulostuksesta:
vipunen ~ % df  .
Filesystem    Total KB    free %used   iused %iused Mounted on
/dev/lv01      2007040   20276   98%  183685    36% /u
Tästä selviää, että levyn nimi on lv01 ja sille on sijoitettu /u-niminen hakemisto. Toisin sanoen kaikki /u-hakemiston alihakemistot (joihin kyseisen käyttäjän työhakemistokin kuuluu) ovat tällä fyysisellä levyllä. Levyn koko on tässä tapauksessa 2007040 kilotavua eli n. 2000 megatavua, josta on vapaana 20276 kilotavua eli noin 20 megatavua. Levystä on käytössä 98 %. Tällöin on aika lähellä se tilanne, jossa levy on aivan täynnä, jolloin kukaan käyttäjä ei voi perustaa uusia tiedostoja (eikä vanhojen tiedostojen uusia versioita) - siitä riippumatta, onko heidän oma levytilankäyttönsä heidän henkilökohtaisen kiintiönsä rajoissa. Ja tällöin olisi kaikkien käyttäjien syytä tarkistaa, onko heillä tarpeettomia isoja tiedostoja, joiden poistaminen parantaisi tilannetta.

Komennolla du (disk usage) taas voit seurata omaa levytilan käyttöäsi tai yleisemmin hakemistojen viemää tilaa. Komennolle annetaan argumenttina hakemiston nimi, ja komento tulostaa koko hakemiston (alihakemistot mukaan luettuina) levytilan käytön. Argumentin oletusarvona on työhakemisto. Jos siis työhakemistonasi on kotihakemisto, niin antamalla pelkän komennon du saat selville, paljonko tiedostosi kaikkineen vievät tilaa.

Levytilan mittayksiköt voivat olla erilaiset eri koneissa. Usein, mutta ei välttämättä, yksikkönä on edellä mainittu kilotavu. Joissakin koneissa du ilmoittaa levyn käytön varausblokkeina, jotka ovat puolen kilotavun (512 tavun) kokoisia. Kyseisissä koneissa saa du-komennon tulostamaan koon kilotavuina antamalla valitsimen -k (esim. du -k).

Usein kiintiöinti on sellainen, että kunkin käyttäjän levynkäytöllä on "pehmeä" ja "kova" kiintiö. Jos levytilankäyttösi ylittää "pehmeän" kiintiön, niin saat aina istunnon alussa ilmoituksen siitä, montako päivää sinulla on aikaa poistaa ylimenevä osa. Jos et poista ylimäärää, tietokonelupasi poistuu käytöstä ilmoitetun ajan umpeutuessa. Pehmeän rajan siis voi ylittää väliaikaisesti (muutamia päiviä). On olemassa myös "pehmeää" kiintiötä korkeampi "kova" kiintiö, jota ei voi hetkellisestikään ylittää: kun "kova" kiintiö on täynnä, kaikki tiedostojen perustamis- tai päivittämisyritykset epäonnistuvat, kunnes käyttäjä on poistanut tiedostoja tarpeellisessa määrin. - Perustellusta syystä käyttäjä voi ehkä saada lisäkiintiötä.

Kiintiöiden rajoissa pysymistä on helppo seurata: komennolla quota näet, oletko ylittänyt kiintiön. Tarkemmin sanoen quota ei tulosta mitään, jos olet "pehmeän" kiintiön alapuolella. Muussa tapauksessa se kertoo tilanteen: käytössäsi olevan levytilan määrän (sarakkeessa usage) "pehmeän" kiintiön (sarakkeessa quota) ja "kovan" kiintiön (sarakkeessa limit. Voit myös seurata levynkäyttöäsi siten, että annat quota-komennossa valitsimen -v, siis quota -v. Tällöin komento aina tulostaa tiedot tilanteesta, vaikka olisit "pehmeän" kiintiön rajoissa. Tulostus voisi olla seuraavanlainen:

Filesystem     usage   quota  limit    timeleft  files  quota  limit   timeleft
/m/fs/user0     3998    8192  15360                194   5000  10000
Tässä tapauksessa tilaa on melko paljon käytössä, mutta ollaan vielä selvästi pehmeän kiintiön alapuolella. Lopussa oleva sarake files ja sitä seuraavat sarakkeet liittyvät tiedostojen määrään, joka myös on kiintiöity, mutta näillä kiintiöillä on merkitystä erittäin harvoin.