Ero sivun ”Aikaleima” versioiden välillä
Pb (keskustelu | muokkaukset) |
Ape (keskustelu | muokkaukset) p (Yhdistettävä) |
||
Rivi 1: | Rivi 1: | ||
{{Yhdistettävä | Atime}} | |||
[[Ydin]] ylläpitää tiedostojen kolmea aikaleimaa: ''mtime'', ''ctime'' ja ''atime''. mtime on yleensä tiedoston viimeisen muutoksen, ctime [[i-node]]n viimeisen muutoksen ja atime viimeisen lukemisen ajankohta. Aikaa käsitellään yleensä kokonaisina sekunteina vuoden 1970 alusta. | [[Ydin]] ylläpitää tiedostojen kolmea aikaleimaa: ''mtime'', ''ctime'' ja ''atime''. mtime on yleensä tiedoston viimeisen muutoksen, ctime [[i-node]]n viimeisen muutoksen ja atime viimeisen lukemisen ajankohta. Aikaa käsitellään yleensä kokonaisina sekunteina vuoden 1970 alusta. | ||
Versio 20. huhtikuuta 2009 kello 08.40
Sivu sisältää päällekkäistä tietoa artikkelin Atime kanssa ja sivut tulisi yhdistää. Yhdistämisestä on keskusteltu artikkelien keskustelusivuilta.
Ydin ylläpitää tiedostojen kolmea aikaleimaa: mtime, ctime ja atime. mtime on yleensä tiedoston viimeisen muutoksen, ctime i-noden viimeisen muutoksen ja atime viimeisen lukemisen ajankohta. Aikaa käsitellään yleensä kokonaisina sekunteina vuoden 1970 alusta.
Kaikki käytetyt tiedostojärjestelmät eivät tue näitä aikaleimoja, jolloin tiedostojärjestelmän ajuri tai tiedostojärjestelmää käyttävä ohjelma tarvittaessa muodosta aikaleimat käytössä olevasta tiedosta, huomioiden aikaleimojen tavallisimmat käytöt. Käyttäytymiseen voi usein vaikuttaa joko liitosvalitsimilla tai ohjelman asetuksilla.
mtime
mtime (modification time) on tiedoston viimeisen muutoksen ajankohta. Tiedostoja kopioitaessa on usein erikseen pyydettävä mtimen säilyttämistä, siirtäessä järjestelmän sisällä komennolla mv aika säilyy itsestään.
mtime-aika, kuten atime, on asetettavissa komennolla touch. Komento päivittää samalla ctimen nykyhetkeen.
ctime
ctime (status change time) on aikaleima, jota käytetään varmuuskopiointiin. Tiedoston siirtäminen, oikeuksien muutokset yms. sekä myös tiedoston muokkaukset ja aikaleimojen asettaminen asettaa ctimen.
Huomaa, että ctime ei ole "creation time". Tällaista aikaleimaa ei ole unixeissa. Sen korvikkeena (Sambassa yms.) käytetään yleensä joko aikaisinta aikaleimaa tai unix-ajan nollahetkeä 1.1.1970.
atime
atime ("access time") on ajankohta jolloin tiedostoa viimeksi luettiin. Sitä voi käyttää esimerkiksi varmistamaan että tiettyä tiedostoa tosiaan käytetään ("miksi ihmeessä nämä asetukset eivät vaikuta?"), tarkastamaan onko muutoksia tapahtunut viimeisen lukemisen jälkeen tai arvioimaan ovatko tietyn hakemiston tiedostot käytössä (vai voiko ne poistaa).
Koska aikaleiman ylläpito vaatii kirjoituksen joka lukemisen yhteydessä, atime jätetään joskus liitosvalitsimilla päivittämättä tai se saattaa jäädä päivittymättä esimerkiksi NFS:n välimuistitoimintojen takia. Katso atime-artikkeli.
Tiedostojen varmuuskopiointi, indeksointi yms. saattavat aiheuttaa aikaleiman päivittymistä, jolloin sen informaatioarvo heikkenee.
Aikaleiman käyttö
Tiedoston atime-leiman näkee komennolla
ls -lu
mtimen komennolla
ls -l
ja ctimen komennolla
ls -lc
Vastaavasti tiedostot voi järjestää kyseisen aikaleiman mukaan valitsimella -t
ls -lct ls -ct
Tiedostoja voi etsiä aikaleiman perusteella esimerkiksi komennolla find. Aika ilmoitetaan joko kokonaisina päivinä tai minuutteina (+/-n) tai vertaamalla toisen tiedoston vastaavaan aikaleimaan.
Luetellaan väliaikaistiedostojen hakemistoissa ja niiden alihakemistoissa olevat viime neljännestunnin aikana ja viimeksi edellisviikkona käytetyt tiedostot:
find /tmp -amin -15 -print find /var/tmp -atime +7 -atime -14 -print
Luetellaan käyttäjien sähköpostihakemistojen vuoden muuttumatta säilyneet tiedostot:
find /home/*/.{Mail,mail} -mtime +365 -print
Putkitetaan lista mtimen mukaan changelog-tiedostoa uudemmista työhakemistossa ja sen alihakemistoissa olevista tiedostoista sivutusohjelmalle:
find . -newer changelog -print | less
Listataan ohjelman ajon aikana ctimen mukaan muuttuneet tiedostot kotihakemiston .gnome-hakemistoissa kaikkine tietoineen:
touch aikaleima.tmp ohjelma find ~/.gnome* -cnewer aikaleima.tmp -ls rm aikaleima.tmp