neuvonta (at) oulu.fi
  puh (08) 553 3080
  fax (08) 553 8183

  Tietohallinto
  PL 7600
  90014 Oulun yliopisto

Oulun yliopisto
UNIX/LINUX-KONEET

Unix-tietokoneet > Levytilan käyttö

Levytila, jossa käyttäjät voivat säilyttää tiedostojaan, on jaettu kolmeen ryhmään:

  • kotihakemisto
  • työhakemisto
  • väliaikainen työhakemisto

Se, mihin hakemistoon käyttäjän kannattaa tallettaa tiedostoja, riippuu talletettavan datan käyttötavasta.

Käyttäjien kotihakemisto (Home directory, $HOME) on kaikissa koneissa yhteinen ja sijaitsee levypalvelimella (honka). Kotihakemisto ei siten sovellu käytettäväksi suuriin luku- ja kirjoitusoperaatioihin. Kotihakemistossa tiedostot säilyvät niin kauan kuin käyttäjätunnus on voimassa, mutta levytilalla on kiintiöt.

Suurta levytilaa mutta pitempiaikaista säilytystä vaativille tiedostoille voi käyttää työhakemistoa (Work directory, $WRKDIR ). Sitä voi käyttää esimerkiksi ajojen tulosten säilytykseen jatkokäsittelyä varten. Hakemiston $WRKDIR alkaessa täyttyä sen suurimmille käyttäjille lähetetään kehoitus siivota hakemistojaan; kehoitus lähetetään useampaan kertaan ja mikäli levyä ei sittenkään vapaudu riittävästi niin vanhimpia työlevyllä olevia tiedostoja siirretään tilapäislevyille.

Väliaikaislevyt on tarkoitettu ajoaikaisille ja väliaikaisille työtiedostoille (Temporary directory, $TMPDIR ). Näiltä levyiltä siivotaan vanhat tiedostot pois säännöllisesti joten ne soveltuvat vain lyhytaikaiseen tiedostojen säilytykseen. Nopeimmat levyt ovat aina koneiden paikallisia levyjä eivätkä ne näy yleensä muilla koneilla.

Käytettävissä olevat hakemistot eri koneilla:

kone $HOME $WRKDIR $TMPDIR
kuusi1 /home/laitos/tunnus /wrk1 /tmp1
kuusi2 /home/laitos/tunnus /wrk2 /tmp2
kuusi3 /home/laitos/tunnus /wrk3 /tmp3

Työlevyt ovat varmuuskopioinnin piirissä

Solaris-käyttöjärjestelmässä /tmp on osa virtuaalimuistia joten sähköpostipalvelimen (sun3) /tmp-hakemistoon ei saa tallettaa suuria tiedostoja. Lisäksi /tmp tyhjenee aina koneen bootissa, joten siellä olevien tiedostojen säilymiseen ei muutenkaan voi luottaa.

Työhakemistojen sijoituspaikan voi määritellä itse kotihakemistossa olevan komentotulkin aloitustiedostossa. Esimerkiksi tcsh -komentotulkille voidaan määritellä tiedostossa .cshrc

 setenv HOST `hostname`
 swhich ($HOST)
 case sun1:
  set TMPDIR = /tmp3/$USER
  set WRKDIR = /wrk/$USER
  if !( -e $TMPDIR) then
    mkdir -p $TMPDIR
 endif
  if !( -e $WRKDIR) then
    mkdir -p $WRKDIR
 endif
 breaksw 
 case kuusi1.oulu.fi:
  set TMPDIR = /tmp1/$USER
  set WRKDIR = /wrk1/$USER
  if !( -e $TMPDIR) then
        mkdir -p $TMPDIR
 endif
  if !( -e $WRKDIR) then
   mkdir -p $WRKDIR
 endif
 breaksw
 endsw

Työhakemistoksi on määritelty varmuuskopioinnin piirissä oleva hakemisto; tilapäishakemisto on määritelty niin että siitä ei tehdä varmuuskopiota mutta se ei myöskään tyhjene bootissa.

 

Esimerkki työlevyjen käytöstä

Hakemistoon /tmp talletetaan yleensä vain ohjelman ajonaikaisia tiedostoja, ja useat ohjelmat viittaavat sinne ympäristömuuttujan $TMPDIR kautta.

Muille työlevyille suositeltava tapa on tehdä levyille oma alihakemisto, esimerkiksi

> mkdir /wrk2/tunnus
> chmod 700 /wrk2/tunnus 

Siihen voi tehdä symbolisen linkin omasta kotihakemistosta muunmuassa ajonaikaisia datatiedostoja varten. Esimerkiksi jos työskennellään oman kotihakemiston alla olevassa hakemistossa "projekti1", niin sinne voi tehdä ajonaikaista dataa varten työhakemiston ns. symbolisella linkillä seuraavasti

> cd ~/projekti1
> mkdir /wrk2/tunnus/data_projekti1
> ln -s /wrk2/tunnus/data_projekti1 data

Levykiintiöt

Levytilankäytössä on kaksi rajaa, quota jonka ylitys on sallittu 2 viikon ajan sekä limit joka on ehdoton.

Peruskiintiö on 250/300 MB, suuremman saa perustelluista syistä tai maksullisena.

Levytilan käytön seuraaminen

Kotihakemiston levytilan käytön ja kiintiöt saa tulostettua komennolla

> quota -v
Disk quotas for iippo (uid 111):
Filesystem usage quota limit timeleft files quota limit timeleft
/home3     14620 20000 30000            598     0     0

Esimerkissä käyttäjällä iippo on 14620 kilotavua (usage) ja 598 tiedostoa (files) kotihakemistossa. Kotihakemiston kiintiö on 20000 kilotavua (quota) ja tiedostojen lukumäärää ei ole rajoitettu (quota=0). Lisäksi tulostuksessa näkyy ns. hard limit (joka esimerkin käyttäjällä on 30000 kilotavua). Kiintiön (quota, soft limit) voi ylittää tilapäisesti määrätyn ajan, jäljellä olevan ylitysaika näkyy sarakkeessa timeleft. Kun hard limit on ylitetty ei kotihakemistoon voi enää kirjoittaa.

Komennon quota sijasta voi käyttää paikallisesti tehtyä ja vain tietohallinnon suneissa käytössä olevaa komentoa showquota, jonka tulostaa vain käyttäjän laitoskohtaisessa hakemistossa olevan kiintiön. Esimerkiksi

> showquota -v
Disk quotas for iippo (uid 111):
Filesystem usage quota limit timeleft files quota limit timeleft
/home/atkk 14620 20000 30000            598     0     0 

Työhakemistoissa $TMPDIR ja $WRKDIR ei ole kiintiöitä. Kaikkien tiedostojärjestelmien vapaan levytilan saa tulostettua komennolla

> df -k

Komento tulostaa sen tiedostojärjestelmän levytilan käytön, jossa hakemisto sijaitsee. Solariksessa levytilan yksikkönä on levylohko eli 512 tavua mutta valitsimella -k yksikkönä käytetään kilotavua. Valitsimella -l näytetään vain koneen paikalliset levyt.

Tietyn hakemiston käyttämän levytilan saa tulostettua komennolla

> du -k hakemisto 

Komento tulostaa rekursiivisesti hakemiston ja sen alihakemistojen käyttämän levytilan. Valitsimella -s saadaan tulostettua hakemiston ja sen alihakemistojen yhteenlaskettu levytilan.

Suneissa on systeemikohtaisissa käynnistytiedostoissa komento, joka tarkistaa aina tunnukselle sisäänkirjoittauduttaessa levykiintiön käyttöasteen. Mikäli kiintiö on ylitetty voi sisäänkirjoittautumisen aikana tulla ruudulle ilmoitus 'Disk limit reached on /home1'.

Jos levytilan hard limit ylittyy istunnon aikana tuloksena on yleensä virheilmoitus, joka on muotoa

Write error: Disc quota exceeded

Mikäli käyttäjän levykiintiön hard limit on ylittynyt, ei kotihakemistoon voi enää tallettaa tiedostoja vaan ensin on raivattava tarpeettomia tiedostoja pois. Jos levylle yritetään kirjoittaa silloin kun kiintiön hard limit on ylitetty saadaan ilmoitus

> emacs koe.txt "koe.txt" Disc quota exceeded [Warning - koe.txt is incomplete]

Silloin on taas poistettava tarpeettomia tiedostoja kunnes levytilan käyttöaste on pienempi kuin hard limit:

> rm iso.tied
> rm -r roska.dir

Jos levylle kirjoitetaan kun soft limit (quota) on ylitetty mutta hard limit arvoa ei vielä ole ylitetty, saadaan sisäänkirjoittauduttaessa ilmoitus joka kertoo jäljellä olevan ylitysajan

Over disk quota on /home1, remove 9345K within 4.1 days

Silloin on syytä valmistautua pienentämään käyttämänsä levytilan määrää neljän seuraavan päivän aikana.

 

Tiedostojen tiivistäminen

Pitkäaikaiseen säilytykseen tarkoitetut suuret tiedostot kannattaa tiivistää levytilan säästämiseksi. Tiivistäminen tapahtuu komennoilla gzip tai compress. Komennolla gzip tiivistetyn tiedoston nimen loppuun lisätään pääte .gz kun taas compress-komennolla tiivistetyn tiedoston nimeen lisäätään pääte .Z. Molemmat komennot hävittävät alkuperäisen tiedoston. GNU-komento gzip tiivistää yleensä tiedoston paremmin ja lisäksi se on saatavilla Unixin ohella myös muihin käyttöjärjestelmiin, joten sillä pakatut tiedostot on siirrettäviä.

Seuraavassa esimerkissä tiivistetään iso datatiedosto

> gzip prog.dat

jolloin syntyy tiedosto prog.dat.gz ja tiedosto prog.dat häviää. Tiivistetty tiedosto puretaan komennolla gunzip

> gunzip prog.dat.gz

ja tiedosto prog.dat.gz häviää.

Hakemistojen arkistointi

Levytilaa voi säästää luomalla harvemmin tarvituista pienistä tiedostoista tai hakemistoista tiedostoarkistoja, jotka voidaan tiivistää. Tiedostoarkisto muodostetaan komennolla tar tai gtar (GNU tar). Esimerkki hakemiston pakkaamisesta:

> tar cvf dir.tar dir
> gzip dir.tar
> rm -r dir

Ensin hakemisto dir kootaan kokonaisuudessaan tar-tiedostoksi nimeltä dir.tar. Sen jälkeen tar-tiedosto pakataan gzip-komennolla jolloin muodostuu dir.tar.gz niminen tiedosto, jonka jälkeen alkuperäinen hakemisto voidaan poistaa.

Tiedostoarkiston purkaminen tapahtuu gunzip- ja tar-komennoilla

> gunzip dir.tar.gz
> tar xvf dir.tar >
> rm dir.tar

Komento gunzip poistaa ensin arkiston pakkauksen, jonka jälkeen se voidaan purkaa komennolla tar jolloin syntyy hakemisto dir, minkä alle tulevat mahdolliset alihakemistot ja tiedostot.

Komennot gunzip ja uncompress purkavat tiivistyksen pysyvästi. Jos tiivistetty arkisto halutaan säilyttää, voidaan käyttää komentoa zcat. Komento purkaa tiivistettyjä tiedostoja ja tulostaa niiden sisällön standarditulostuskanavalle (stdout).

Seuraavassa esimerkissä puretaan arkiston dir.tar.gz tiivistys ja syötetään se suoraan tar-komennolle:

> gzcat data.tar.gz | tar xvf - 

jolloin muodostuu hakemisto dir alihakemistoineen ja myös pakattu arkisto dir.tar.gz säilyy sellaisenaan levyllä.