
neuvonta (at) oulu.fi
puh (08) 553 3080
fax (08) 553 8183
Tietohallinto
PL 7600
90014 Oulun yliopisto
Unix-tietokoneet > Levytilan käyttö
Levytila, jossa käyttäjät voivat säilyttää tiedostojaan, on jaettu kolmeen ryhmään:
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: p>
| 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.
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
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.
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.
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ää.
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ä.