The UNIX and Linux Forums  
Hei og Velkommen fra USA til UNIX og Linux Forums! Takk for besøket og Delta i vårt globale samfunn.

Go Back   UNIX og Linux Forums > Top Forums > UNIX for Dummies Spørsmål og svar > Svar på vanlige spørsmål > Tips og Tutorials
.
google unix.com



Tips og Tutorials Nyttige artikler fra våre brukere.

Mer UNIX og Linux Forum Emner Du kan finne nyttig
Tråd Tråd startet Forum Svar Siste innlegg
hvordan finne ot ctime, mtime, atime nilesrex Shell programmering og Skripting 5 11-08-2008 04:35
atime, ctime, mtime sted langs csize .. moxxx68 UNIX for Dummies Spørsmål og svar 4 03-02-2005 06:14
mtime vs ctime moxxx68 UNIX for Dummies Spørsmål og svar 3 11-06-2004 10:57
Konvertering av ordinær tid til CTIME PGPhantom UNIX for Dummies Spørsmål og svar 9 08-23-2002 09:47
ctime & Finn 98_1LE UNIX for Dummies Spørsmål og svar 1 06-22-2001 03:33

 
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Søk i denne tråden Vurdering: Thread Rating: 11 votes, 4.91 average. Visningsmoduser
  #1 (permalink)  
Old 07-31-2005
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9111
mtime, ctime og atime

Unix holder 3 tidsstempler for hver fil: mtime, ctime og atime. De fleste synes å forstå atime (tilgang tid), er det da filen sist ble lest. Det gir inntrykk av å være noen misforståelser mellom mtime og ctime skjønt. ctime er inode endre tiden mens mtime er filen modifikasjon tid. "Change" og "endring" er ganske mye synonymt. Det er ingen anelse å være hadde ved grubler de ordene. I stedet må du fokusere på det som blir endret. mtime endringer når du skriver til filen. Det er en alder av dataene i filen. Når mtime endringer, så gjør ctime. Men ctime endringer litt ekstra tid. For eksempel vil det endres hvis du bytter eier eller tillatelsene for filen.

La oss se på et konkret eksempel. Vi driver en pakke kalt Samba som lar PC tilgang filer. Å endre Samba konfigurasjonen jeg bare redigere en fil kalt smb.conf. (Dette endrer mtime og ctime.) Jeg trenger ikke å gjøre noe annet for å fortelle Samba at jeg endret denne filen. Av og deretter Samba ser på mtime på filen. Hvis mtime er endret, Samba rereads filen. Senere samme kveld vårt backup system kjører. Den bruker ctime, som også endret slik at den Sikkerhetskopierer filen. Men la oss si at et par dager senere jeg merke til at tillatelsene på smb.conf er 666. Det er ikke bra .. alle kan redigere filen. Så jeg gjør en "chmod 644 smb.conf". Dette endrer kun ctime. Samba vil ikke reread filen. Men senere den kvelden, våre sikkerhetskopieringsprogram merknader som ctime har endringer, så det Sikkerhetskopierer filen. På den måten, hvis vi mister systemet og trenger å oppdatere våre sikkerhetskopier, får vi den nye forbedrede tillatelse innstillingen.

Her er en andre eksemplet. La oss si at du har en datafil kalt employees.txt som er en liste over ansatte. Og du har et program for å skrive den. Programmet ikke bare skriver ut data, men den henter mtime og skriver ut det også. Nå noen har bedt om en ansatt fra slutten av året 2000, og du finner en sikkerhetskopi tapen som har denne filen. Mange gjenopprette programmene vil gjenopprette mtime også. Når du kjører programmet vil skrive ut en mtime fra slutten av år 2000. Men ctime er i dag. Så igjen, vår sikkerhetskopieringsprogram vil se filen som måtte være sikkerhetskopiert.

Anta at gjenopprette programmet ikke gjenopprette mtime. Du ikke vil at programmet skal skrive ut dagens dato. Vel ikke noe problem. mtime er under din kontroll. Du kan sette den til det noen gang du ønsker. Så bare gjøre:
$ Touch-t 200012311800 employees.txt
Dette vil sette mtime tilbake til datoen du vil ha, og det setter ctime til nå. Du har full kontroll over mtime, men systemet holder kontroll over ctime. Så mtime er litt som datoen et brev mens ctime er som poststempel på konvolutten.
  #2 (permalink)  
Old 12-28-2006
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9111
finne kommandolinjealternativene mtime-ctime-atime

Finn-kommandoen bruker argumenter som:
-mtime -2
-mtime 2
-mtime 2

Det er-ctime og atime alternativer også. Siden vi nå forstå forskjeller mellom mtime, ctime og atime, ved å forstå hvordan finne bruker-mtime alternativet, de to andre blir forstått også. Så jeg vil beskrive finne bruk av-mtime alternativet.

Som du sikkert vet, finne kommandoen kan kjøres på minutter eller timer avhengig av størrelsen på filsystemet som blir søkt på. Finn-kommandoen gjør oppmerksom på sin egen starttid. Deretter ser på en fil er mtime og beregner hvor mange sekunder siden filen ble endret. Ved å dele sekunder etter 86.400 (og kaste noen resten), kan den beregne fil alder i dager:
Code:
0 days in seconds:       0  -   86399
1 day in seconds:    86400  -  172799
2 days in seconds:  172800  -  259159
Så nå at vi vet hvor mange dager siden en fil ble endret, kan vi bruke ting som "-mtime 2" som angir filer som er 172.800 til 259.159 sekunder eldre enn instant at finne kommandoen ble startet.

"-mtime -2" betyr at filer som er mindre enn 2 dager gamle, for eksempel en fil som er 0 eller 1 dager gamle.

"-mtime 2" betyr filer som er mer enn 2 dager gamle ... (3, 4, 5, ...)

Det kan virke merkelig, men 0 skal arbeide og ville bety filer enn 0 dager gamle. Det er svært viktig å innse at finne idé om en "dag" har ingenting å gjøre med midnatt.

Sist endret av Perderabo; 08-05-2007 på 11:40..
  #3 (permalink)  
Old 08-30-2007
Perderabo's Avatar
Perderabo Perderabo is offline Forum Staff  
Unix Daemon
  
 

Bli Dato: Aug 2001
Beliggenhet: Ashburn, Virginia
Innlegg: 9111
Bruke perl for å vise filen tidsstempler

Den ls programmet vil vise mtime hvis du bruker "ls-l". Og du kan få atime eller ctime med "ls-lu" eller "ls-LC". Men ls bruker et merkelig format. Den viser måned og dag i alle tilfeller. Hvis tidsstempel nylig, det viser også time og minutt. Hvis tidsstempelet er eldre enn 6 måneder, det viser årets stedet for time og minutt. En smart skript kan omformatere dette til år, måned, dag, time og minutt. Men Er ikke vil vise sekunder. Den, det gnu versjon av ls (som vanligvis er den eneste versjonen på linux) har utvidet alternativer som - ansatt. Men disse utvidede alternativer som ikke er standard, og vil ikke være tilgjengelig på andre versjoner av Unix.

Den, det perl Språket er også ikke-standard, men perl tendens til å være tilgjengelig på de fleste versjoner av UNIX. For eksempel, en versjon av perl leveres med HP-UX og Solaris. Perl kan enkelt vise tidsstempler filer. Her er noen perl en-liners for å vise atime, mtime og ctime.


Code:
$ echo hello > testfile ; date
Thu Aug 30 08:31:57 EDT 2007
$ chmod 700 testfile ; date
Thu Aug 30 08:32:48 EDT 2007
$ cat testfile ; date
hello
Thu Aug 30 08:33:30 EDT 2007
$
$
$
$
$ perl -e '@d=localtime ((stat(shift))[8]); printf "%4d%02d%02d%02d%02d%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]' testfile
20070830083330
$ perl -e '@d=localtime ((stat(shift))[9]); printf "%4d%02d%02d%02d%02d%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]' testfile
20070830083157
$ perl -e '@d=localtime ((stat(shift))[10]); printf "%4d%02d%02d%02d%02d%02d\n", $d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0]' testfile
20070830083248
$
 

Hugseliste

Tags
atime, ctime, modifikasjon tid, mtime, perl, perl skiftarbeid, skifte, shift perl, tid

Thread Tools Søk i denne tråden
Søk i denne tråden:

Avansert søk
Visningsmoduser Ranger denne tråden
Ranger denne tråden:

Innleggsaktivitet Regler
Du kanskje ikke poste nye tråder
Du kanskje ikke poste svar
Du kanskje ikke post vedlegg
Du kanskje ikke redigere innleggene dine

BB-kode er
Smilefjes er
[IMG] koden
HTML-koden Av
Pingbacks er
Refbacks er




Alle klokkeslett er GMT -4. Nå er klokken 03:30.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Language Translations Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. All Rights Reserved.Ad Management by RedTyger

Content Relevant nettadresser av vBSEO 3.2.0