Pagina 1 di 2
Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 13:46
da DanBadJar
Ragazzi ho un dubbio atroce:
ho la /home montata con opzione noatime che non dovrebbe aggiornare la data di accesso ai file.
Testando un file con stat noto:
Codice: Seleziona tutto
File: `nomefile'
Size: 31 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 12959871 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-19 16:01:33.000000000 +0200
Modify: 2009-07-19 16:01:33.000000000 +0200
Change: 2009-07-19 16:01:33.000000000 +0200
MI pare che, invece, la data di accesso l'abbia modificata eccome. E' uguale alla data di modifica.
E' questo che fa noatime o, in teoria, avrei dovuto trovarmi la data di accesso più vecchia?

Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 13:50
da conraid
Ma se ci accedi senza modificarlo cambia?
Io ho sempre saputo che è questa la differenza, noatime non aggiorna la data di accesso quando ci accedi solamente, ma se fai altre operazioni sì
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 13:53
da DanBadJar
Se accedo al file, la data di ultimo accesso NON cambia. E fin qui mi torna.
Credevo che data di accesso e data di ultima modifica fossero trattate diversamente.
Attualmente se ci accedo e basta la data non cambia, se invece modifico il file, cambia sia la data di accesso che quella di modifica!
Deduco sia questo il funzionamento corretto!
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 14:38
da conraid
Leggendo la documentazione, per colpa del mio scarso inglese, non riesco a capire bene
Voglio dire
atime Update inode access time for each access. This is the default.
noatime
Do not update inode access times on this file system (e.g, for faster access on the news spool to
speed up news servers).
e fin qui ok, nel senso che il primo la modifica ad ogni accesso ed il secondo no, ma..
relatime
Update inode access times relative to modify or change time. Access time is only updated if the
previous access time was earlier than the current modify or change time. (Similar to noatime, but
doesn't break mutt or other applications that need to know if a file has been read since the last
time it was modified.)
Sembra, correggetemi se sbaglio, che con questa opzione modifica la data di accesso solo se questa era precedente alla data dell'ultima modifica
Quindi farebbe pensare che esiste una situazione in cui la data di accesso sia precedente alla data di modifica.
Anche leggendo qui
http://blogs.koolwal.net/2009/01/30/ins ... t-options/
sembra così, però parlando di noatime dice
However a write is made to a disk in case if a file is being changed/written.
chi sa parli

Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 17:34
da masalapianta
DanBadJar ha scritto:Ragazzi ho un dubbio atroce:
ho la /home montata con opzione noatime che non dovrebbe aggiornare la data di accesso ai file.
Testando un file con stat noto:
Codice: Seleziona tutto
File: `nomefile'
Size: 31 Blocks: 8 IO Block: 4096 regular file
Device: 803h/2051d Inode: 12959871 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-19 16:01:33.000000000 +0200
Modify: 2009-07-19 16:01:33.000000000 +0200
Change: 2009-07-19 16:01:33.000000000 +0200
MI pare che, invece, la data di accesso l'abbia modificata eccome. E' uguale alla data di modifica.
E' questo che fa noatime o, in teoria, avrei dovuto trovarmi la data di accesso più vecchia?

se la partizione su cui risiede il file in questione e' montata con noatime, come ho gia avuto modo di scrivere in un altro thread, non viene aggiornato i_atime (vedi la struct ext3_inode in /usr/src/linux/include/linux/ext3_fs.h) che nel fs e' un metadato contenente l'orario dell'ultimo accesso all'inode; il fatto che atime,mtime,ctime siano uguali, di per se e' irrilevante perche' se io creo un file e' ovvio che i 3 suddetti metadati siano uguali, anche su un fs montato con noatime (fino al momento in cui di quel file non vengono modificati i metadati dell'inode (ctime) o il contenuto (mtime))
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 17:45
da masalapianta
conraid ha scritto:
relatime
Update inode access times relative to modify or change time. Access time is only updated if the
previous access time was earlier than the current modify or change time. (Similar to noatime, but
doesn't break mutt or other applications that need to know if a file has been read since the last
time it was modified.)
Sembra, correggetemi se sbaglio, che con questa opzione modifica la data di accesso solo se questa era precedente alla data dell'ultima modifica
Quindi farebbe pensare che esiste una situazione in cui la data di accesso sia precedente alla data di modifica.
e' esattamente cosi' (prova a fare stat di un file, un echo dfgsdfg > $file e poi di nuovo stat; vedrai che atime non e' stato modificato, risultando antecedente a ctime e mtime)
ovvio, ti dice che se accedi solo all'inode non viene scritto nulla (atime) sul disco, mentre se modifichi metadati o dati, qualcosa (oltre alle modifiche fatte) viene scritto (ctime o mtime o entrambi)
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 18:02
da conraid
stavo proprio guardo i sorgenti (da bravo scemo non ci avevo pensato) anche se la conoscenza del C è inferiore a quella dell'inglese
ma in fs/inode.c vedo che
Codice: Seleziona tutto
/*
* With relative atime, only update atime if the previous atime is
* earlier than either the ctime or mtime or if at least a day has
* passed since the last atime update.
*/
static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
struct timespec now)
{
if (!(mnt->mnt_flags & MNT_RELATIME))
return 1;
/*
* Is mtime younger than atime? If yes, update atime:
*/
if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0)
return 1;
/*
* Is ctime younger than atime? If yes, update atime:
*/
if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0)
return 1;
/*
* Is the previous atime value older than a day? If yes,
* update atime:
*/
if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= 24*60*60)
return 1;
/*
* Good, we can skip the atime update:
*/
return 0;
}
/**
* touch_atime - update the access time
* @mnt: mount the inode is accessed on
* @dentry: dentry accessed
*
* Update the accessed time on an inode and mark it for writeback.
* This function automatically handles read only file systems and media,
* as well as the "noatime" flag and inode specific "noatime" markers.
*/
void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
struct inode *inode = dentry->d_inode;
struct timespec now;
if (mnt_want_write(mnt))
return;
if (inode->i_flags & S_NOATIME)
goto out;
if (IS_NOATIME(inode))
goto out;
if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode))
goto out;
if (mnt->mnt_flags & MNT_NOATIME)
goto out;
if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode))
goto out;
now = current_fs_time(inode->i_sb);
if (!relatime_need_update(mnt, inode, now))
goto out;
if (timespec_equal(&inode->i_atime, &now))
goto out;
inode->i_atime = now;
mark_inode_dirty_sync(inode);
out:
mnt_drop_write(mnt);
}
EXPORT_SYMBOL(touch_atime);
da quel poco che capisco se c'è NOATIME salta a "out" senza aggiornare l'inode atime, con RELATIME, quella che utilizzo io dove ho i dati da far leggere a mutt, verifica la data di mtime e ctime
sempre se ho capito bene che questa funzione è richiamata dai vari filesystem (se hanno la funzione di settare S_NOATIME)
p.s.
posso aver scritto bischerate, ne sono consapevole, ma è per capire meglio
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 18:41
da conraid
non mi torna una cosa
Codice: Seleziona tutto
root@asus:/usr/local# mount -o remount,atime /usr/local/
root@asus:/usr/local# mount
/dev/mapper/blanklvm-local on /usr/local type ext3 (rw)
root@asus:/usr/local# echo PIPPO
PIPPO
root@asus:/usr/local# stat PIPPO
stat: impossibile fare stat di `PIPPO': No such file or directory
root@asus:/usr/local# echo PIPPO > PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:49.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# mount -o remount,noatime /usr/local/
root@asus:/usr/local# mount
/dev/mapper/blanklvm-local on /usr/local type ext3 (rw,noatime)
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# echo pippo >> PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:34:59.000000000 +0200
Change: 2009-07-21 18:34:59.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
pippo
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:34:59.000000000 +0200
Change: 2009-07-21 18:34:59.000000000 +0200
root@asus:/usr/local# vim PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 11 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 14 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:35:23.000000000 +0200
Modify: 2009-07-21 18:35:23.000000000 +0200
Change: 2009-07-21 18:35:23.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
ippo
se modifico il file con echo non cambia atime, se lo modifico con vim sì
con relatime è come me lo aspetto
Codice: Seleziona tutto
root@asus:/usr/local# mount -o remount,relatime /usr/local/
root@asus:/usr/local# mount
/dev/mapper/blanklvm-local on /usr/local type ext3 (rw,relatime)
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 18 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:35:56.000000000 +0200
Modify: 2009-07-21 18:37:46.000000000 +0200
Change: 2009-07-21 18:37:46.000000000 +0200
root@asus:/usr/local# echo pippo >> PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 24 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:35:56.000000000 +0200
Modify: 2009-07-21 18:39:26.000000000 +0200
Change: 2009-07-21 18:39:26.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
ippo
pippo
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 24 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:39:35.000000000 +0200
Modify: 2009-07-21 18:39:26.000000000 +0200
Change: 2009-07-21 18:39:26.000000000 +0200
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 18:59
da masalapianta
conraid ha scritto:
ma in fs/inode.c vedo che
Codice: Seleziona tutto
/*
* With relative atime, only update atime if the previous atime is
* earlier than either the ctime or mtime or if at least a day has
* passed since the last atime update.
*/
static int relatime_need_update(struct vfsmount *mnt, struct inode *inode,
struct timespec now)
{
if (!(mnt->mnt_flags & MNT_RELATIME))
return 1;
/*
* Is mtime younger than atime? If yes, update atime:
*/
if (timespec_compare(&inode->i_mtime, &inode->i_atime) >= 0)
return 1;
/*
* Is ctime younger than atime? If yes, update atime:
*/
if (timespec_compare(&inode->i_ctime, &inode->i_atime) >= 0)
return 1;
/*
* Is the previous atime value older than a day? If yes,
* update atime:
*/
if ((long)(now.tv_sec - inode->i_atime.tv_sec) >= 24*60*60)
return 1;
/*
* Good, we can skip the atime update:
*/
return 0;
}
/**
* touch_atime - update the access time
* @mnt: mount the inode is accessed on
* @dentry: dentry accessed
*
* Update the accessed time on an inode and mark it for writeback.
* This function automatically handles read only file systems and media,
* as well as the "noatime" flag and inode specific "noatime" markers.
*/
void touch_atime(struct vfsmount *mnt, struct dentry *dentry)
{
struct inode *inode = dentry->d_inode;
struct timespec now;
if (mnt_want_write(mnt))
return;
if (inode->i_flags & S_NOATIME)
goto out;
if (IS_NOATIME(inode))
goto out;
if ((inode->i_sb->s_flags & MS_NODIRATIME) && S_ISDIR(inode->i_mode))
goto out;
if (mnt->mnt_flags & MNT_NOATIME)
goto out;
if ((mnt->mnt_flags & MNT_NODIRATIME) && S_ISDIR(inode->i_mode))
goto out;
now = current_fs_time(inode->i_sb);
if (!relatime_need_update(mnt, inode, now))
goto out;
if (timespec_equal(&inode->i_atime, &now))
goto out;
inode->i_atime = now;
mark_inode_dirty_sync(inode);
out:
mnt_drop_write(mnt);
}
EXPORT_SYMBOL(touch_atime);
da quel poco che capisco se c'è NOATIME salta a "out" senza aggiornare l'inode atime,
non solo in quel caso, anche se:
1) l'inode si riferisce a una directory e a mount e' stata passata l'opzione nodiratime
2) la relatime_need_update() torna 0
3) atime e' gia stato aggiornato
con RELATIME, quella che utilizzo io dove ho i dati da far leggere a mutt, verifica la data di mtime e ctime
si e aggiorna atime solo se mtime o ctime sono piu' "giovani" di atime (o in altri termini, come dice la man page o il commento in testa alla relatime_need_update(), se atime e' antecedente a ctime o mtime); ma non solo, la cosa interessante e' che esiste un aspetto di relatime non documentato (per questo dico spesso che la documentazione sono i sorgenti stessi) e cioe' il fatto che atime non viene aggiornato solo se antecedente a ctime o mtime ma anche se piu' vecchio di un giorno
sempre se ho capito bene che questa funzione è richiamata dai vari filesystem (se hanno la funzione di settare S_NOATIME)
si perche' e' implementata nel vfs (l'abstraction layer che usa linux per la gestione dei filesystem), quindi qualunque fs utilizzi il vfs (tutti a parte l'ultimo reiserfs) ricade in questo caso
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 19:03
da masalapianta
conraid ha scritto:non mi torna una cosa
...
se modifico il file con echo non cambia atime, se lo modifico con vim sì
e' normale, con echo ci scrivi e basta senza accedere all'inode (per leggerne i dati), con vim no (per questo prima ti ho fatto l'esempio con echo)
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 19:12
da conraid
masalapianta ha scritto:ma non solo, la cosa interessante e' che esiste un aspetto di relatime non documentato (per questo dico spesso che la documentazione sono i sorgenti stessi) e cioe' il fatto che atime non viene aggiornato solo se antecedente a ctime o mtime ma anche se piu' vecchio di un giorno
questo l'avevo letto a suo tempo qui
http://kerneltrap.org/node/14148
però in effetti il man non lo dice
masalapianta ha scritto:conraid ha scritto:non mi torna una cosa
...
se modifico il file con echo non cambia atime, se lo modifico con vim sì
e' normale, con echo ci scrivi e basta senza accedere all'inode (per leggerne i dati), con vim no (per questo prima ti ho fatto l'esempio con echo)
mmm... e non è un "access time"?
voglio dire, se con atime mi cambia l'i_atime sempre, con noatime solo se ci "accedo", ma non dovrebbe...
Do not update inode access times on this file system
mi sa che il problema è nel vero significato di access time
p.s.
quando ho tempo per fare prove ti tormento ancora su lvm (se anche tu avrai tempo per sopportarmi

)
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 19:43
da masalapianta
conraid ha scritto:
però in effetti il man non lo dice
per questo ho scritto "non documentato"
masalapianta ha scritto:conraid ha scritto:non mi torna una cosa
...
se modifico il file con echo non cambia atime, se lo modifico con vim sì
e' normale, con echo ci scrivi e basta senza accedere all'inode (per leggerne i dati), con vim no (per questo prima ti ho fatto l'esempio con echo)
mmm... e non è un "access time"?
cosa?
voglio dire, se con atime mi cambia l'i_atime sempre, con noatime solo se ci "accedo", ma non dovrebbe...
eh? con atime lo cambia quando ci accedi, con noatime non lo cambia; infatti con le prove che hai fatto prima (presumo su un fs montato con atime), echo non ha fatto accessi all'inode e quindi atime e' rimasto tal quale, mentre vim si e quindi l'ha modificato
mi sa che il problema è nel vero significato di access time
significa quando accedi in lettura ai metadati dell'inode in questione
p.s.
quando ho tempo per fare prove ti tormento ancora su lvm (se anche tu avrai tempo per sopportarmi

)
figurati, se ho tempo mi fa piacere darti una mano
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 19:51
da conraid
masalapianta ha scritto:
eh? con atime lo cambia quando ci accedi, con noatime non lo cambia; infatti con le prove che hai fatto prima (presumo su un fs montato con atime), echo non ha fatto accessi all'inode e quindi atime e' rimasto tal quale, mentre vim si e quindi l'ha modificato
no, era noatime
Codice: Seleziona tutto
root@asus:/usr/local# mount -o remount,noatime /usr/local/
root@asus:/usr/local# mount
/dev/mapper/blanklvm-local on /usr/local type ext3 (rw,noatime)
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:33:49.000000000 +0200
Change: 2009-07-21 18:33:49.000000000 +0200
root@asus:/usr/local# echo pippo >> PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:34:59.000000000 +0200
Change: 2009-07-21 18:34:59.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
pippo
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 12 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:33:57.000000000 +0200
Modify: 2009-07-21 18:34:59.000000000 +0200
Change: 2009-07-21 18:34:59.000000000 +0200
root@asus:/usr/local# vim PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 11 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 14 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 18:35:23.000000000 +0200
Modify: 2009-07-21 18:35:23.000000000 +0200
Change: 2009-07-21 18:35:23.000000000 +0200
root@asus:/usr/local# cat PIPPO
PIPPO
ippo
con atime echo cambia atime
con noatime echo non lo cambia
vim lo cambia sempre
il mio dubbio, e presumo quello di danbadjar, deriva dal fatto che, da quel che ho capito (quindi a questo punto presumo molto poco), con noatime non dovrebbe cambiare l'access time
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 19:58
da masalapianta
conraid ha scritto:
con atime echo cambia atime
con noatime echo non lo cambia
vim lo cambia sempre
eh??? con noatime vim (o qualunque altra cosa) non dovrebbe cambiare atime
Codice: Seleziona tutto
mini:/tmp# mount|grep md0
/dev/md0 on / type ext3 (rw,noatime,user_xattr,errors=remount-ro)
mini:/tmp# stat aaa
File: `aaa'
Size: 28 Blocks: 8 IO Block: 4096 regular file
Device: 900h/2304d Inode: 185773 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 17:30:17.000000000 +0200
Modify: 2009-07-21 19:42:48.000000000 +0200
Change: 2009-07-21 19:42:48.000000000 +0200
mini:/tmp# cat aaa
dfgsdfgsdfgsdfgsfdgsdfgsdgf
mini:/tmp# vim aaa
mini:/tmp# cat aaa
aaaaaaaaaaaaaaaa
mini:/tmp# stat aaa
File: `aaa'
Size: 17 Blocks: 8 IO Block: 4096 regular file
Device: 900h/2304d Inode: 185773 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 17:30:17.000000000 +0200
Modify: 2009-07-21 19:57:30.000000000 +0200
Change: 2009-07-21 19:57:30.000000000 +0200
mini:/tmp#
il mio dubbio, e presumo quello di danbadjar, deriva dal fatto che, da quel che ho capito (quindi a questo punto presumo molto poco), con noatime non dovrebbe cambiare l'access time
infatti non dovrebbe (e sulle mie macchine non lo fa), non capisco perche' si comporti cosi' nel tuo caso
Re: Dubbio su data di accesso a un file
Inviato: mar 21 lug 2009, 20:05
da conraid
mi è sorto un dubbio
Codice: Seleziona tutto
root@asus:/usr/local# echo pippo > PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 20:01:54.000000000 +0200
Modify: 2009-07-21 20:01:54.000000000 +0200
Change: 2009-07-21 20:01:54.000000000 +0200
root@asus:/usr/local# vim PIPPO
root@asus:/usr/local# stat PIPPO
File: `PIPPO'
Size: 10 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 14 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 20:02:05.000000000 +0200
Modify: 2009-07-21 20:02:05.000000000 +0200
Change: 2009-07-21 20:02:05.000000000 +0200
root@asus:/usr/local# stat PIPPO~
File: `PIPPO~'
Size: 6 Blocks: 8 IO Block: 4096 regular file
Device: fe03h/65027d Inode: 12 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2009-07-21 20:01:54.000000000 +0200
Modify: 2009-07-21 20:01:54.000000000 +0200
Change: 2009-07-21 20:02:05.000000000 +0200
deriva dal sistema di backup di vim da quanto vedo, c'è un nuovo file ed il vecchio lo rinomina, quindi cambia sì atime, è un nuovo file.
Infatti quello di backup ha atime e mtime uguale al vecchio, cambia solo ctime
non ho .vimrc per root o si sistema, tranne quello in /usr/share/vim