![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Tips og Tutorials Helpful articles fra vores brugere. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Forståelse denne Makefile | the_learner | Højtstående Programmering | 5 | 06-14-2007 02:55 AM |
| Need Help Forståelse et Unix Command | chris86 | UNIX for dummyer Spørgsmål & svar | 6 | 10-10-2006 04:35 PM |
| Lidt hjælp forståelse FIFOs? | deckard | Linux | 0 | 11-01-2005 01:46 PM |
| brug for yderligere forståelse af init.d | jigarlakhani | UNIX for Advanced & Ekspertsøgning Brugere | 1 | 09-20-2002 04:11 PM |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
|||||
|
Sommertid regerede er skiftet, og jeg har ingen Patch .... What to do?
Lad os sige at mit system er stadig sat op til sidste års reglen. Mit system vil snart vise det forkerte tidspunkt. Hvad skal jeg gøre? En ting, der er ikke en meget god idé ville være at krank uret en time frem manuelt. Hvis jeg gør, at mit system vil have den forkerte interne tid. Nogle net-baserede tjenester såsom NFS bruge den interne tid. Mit system vil heller ikke længere har den korrekte Universal Time. NTP (Network Time Protocol) vil fejl og min systemets ur vil glide. Selv for min egen tidszone, ville jeg have tidsstempler gerne 17:00 EST, når jeg skulle have 17:00 EDT. Et par uger senere, vil den gamle regel i kraft, og jeg vil nu nødt til at justere uret manuelt igen.
Jeg håber, at jeg er overbevist om, at du ikke nulstille tiden på denne måde. En bedre løsning ville være at forskning mit system's data-fil, der definerer sommertid regler for min tidszone og redigere det selv. Dette bør være en straight forward forandring. Men hvert system kan have sit eget format. Der synes at være en næsten universel løsning: brug en mere kompleks format for TZ miljøvariablen. Du kan faktisk sætte Sommertid regel i TZ og denne opførsel har mandat fra POSIX. Nedenfor er en oversigt over TZ indstillinger, som jeg mener er rigtige for året 2007. Code:
# Posix Format TZ="EST5EDT4,M3.2.0/02:00:00,M11.1.0/02:00:00" # US Eastern TZ="CST6CDT5,M3.2.0/02:00:00,M11.1.0/02:00:00" # US Central TZ="MST7MDT6,M3.2.0/02:00:00,M11.1.0/02:00:00" # US Mountain TZ="PST8PDT7,M3.2.0/02:00:00,M11.1.0/02:00:00" # US Pacific TZ="AST9ADT8,M3.2.0/02:00:00,M11.1.0/02:00:00" # US Alaska TZ="HST10" # US Hawaii # Old System V Release 3.1 and Xenix Format TZ="EST5EDT4;M3.2.0/02:00:00,M11.1.0/02:00:00" # US Eastern TZ="CST6CDT5;M3.2.0/02:00:00,M11.1.0/02:00:00" # US Central TZ="MST7MDT6;M3.2.0/02:00:00,M11.1.0/02:00:00" # US Mountain TZ="PST8PDT7;M3.2.0/02:00:00,M11.1.0/02:00:00" # US Pacific TZ="AST9ADT8;M3.2.0/02:00:00,M11.1.0/02:00:00" # US Alaska TZ="HST10" # US Hawaii |
|
|||||
|
Særlige hensyn cron
Cron vil reagere på ændringer i Time
Hvis du justerer systemet tid, mens cron kører, vil cron varsel og forsøge at kompensere. Hvis tiden flyttet tilbage, vil cron standse job og vente på uret til forskud tilbage, hvor cron køre det sidste job. Hvis tiden går fremad, vil cron forsøge at indhente det forsømte. Det vil klikke selvom hvert minut uafbrudt, indtil det har kørt alle de arbejdspladser planlagt i løbet af de springes over tid varighed. Hvis du er simpelthen tweaking systemet ur, fordi det var slukket et par sekunder, det er perfekt. Men hvis tiden er et års pause, vil det sandsynligvis ikke være en god ting. For store justeringer af uret, skal du dræbe og genstarte cron. cron vil reagere på Daylight Saving Changes Antag at jeg har et job planlagt til at køre på 2:15 søndag morgen. Når vi "spring fremad", vil der ikke være 2:15. Cron vil bemærke, at vi "sprunget ahead" 60 minutter, så det vil tilsættes 60 minutter til mit job time getting 3:15. Det vil køre jobbet på 3:15 ... medmindre jobbet allerede var planlagt til at køre på både 2:15 og 3:15. I så fald vil mit job køre én gang på 3:15. Senere på året, vi "falde tilbage". På denne søndag, vil det være 2:15 to gange. Mit job vil kun køre på det første 2:15. Hvis mit arbejde er planlagt til at løbe på 15 minutter efter hver time via den eksplicitte brug af en stjerne i timen på mit job, der kan køre både på 2:15 's. Dette er ikke sandt, hvis jeg bruger et område eller en liste af timer at køre. Kun jobs med en stjerne for timen feltet køre både på 2:15 's. cron har sin egen tidszone Hvis jeg planlægge mit job for 2:15 om morgenen, vil cron køre den, når den mener, at tiden er 2:15. cron er tæt forbundet med "at" kommando. Hvis jeg ofte på job via "ved" at køre på 2:15, min TZ variabel er inspiceret og jobbet vil køre på min 2:15. Men cron virker ikke på den måde. |
|
|||||
|
Skudsekunder
Definitionen af en anden er omhyggeligt fast. Hvert sekund er præcis så længe som alle andre sekund. Når forskere var binde den præcise værdi af et sekund, de handler det så nøjagtigt som muligt til år 1900. Der er 24 * 60 * 60 \u003d 86400 sekunder i en dag. Men jorden er faldet en smule primært på grund af tidevand kræfter. Hvert år den har brug for ca ,7 sekunder ekstra. Hver dag og så har vi en dag med 86401 sekunder. Unix forsøger at foregive, at dette ikke er tilfældet. Hvis du ikke kører NTP, skal du med jævne mellemrum manuelt justere dit ur, og du vil kompensere for et spring i sekundet under din næste manuel justering.
Hvis du kører NTP, Unix forsøger at gøre det sidste sekund af dagen med et spring næstsidste i 2 sekunder. Med mange implementeringer, vil den anden upassende forskud i midten af denne særlige lange sekunder, og vil blive justeret baglæns et par millisekunder senere. Så ignorerer de potentielle rodet anden lange overgangsperioder, vi behandler hver dag, som om det var 86400 sekunder lang. Af den måde, tog det omkring et århundrede, for Jorden at bremse nok til behovet ,7 sekunder ekstra hvert år. Det vil tage et andet århundrede til at falde nok til at have omkring 1,4 sekunder ekstra år. Tror ikke, at der hvert år er ,7 sekunder længere end dens umiddelbare forgænger. |
|
|||||
|
Min Perl-script
Her er mit Perl skrift, at jeg brugte i denne artikel ...
Code:
#! /usr/local/bin/perl
sub printtime($)
{
@d=localtime $_[0];
printf "%12d %3s %4d-%02d-%02d %02d:%02d:%02d %s\n", $_[0],
(Sun,Mon,Tue,Wed,Thu,Fri,Sat)[$d[6]],
$d[5]+1900,$d[4]+1,$d[3],$d[2],$d[1],$d[0],
("Standard Time","Daylight Saving Time")[$d[8]];
}
while (do {print "Enter val - "; chomp($val = <>)}) {
print "val = ", $val, "\n";
printtime $val;
printtime $val+1;
}
print "\n";
|
|
|||||
|
Diverse Odds and Ends
Dit OS, begrænser datointerval, at det kan Format
Du skal tjekke dokumentationen til dit system, som datoer det kan håndtere. For eksempel, siger HP-UX 11i Version 2: Den mindste dato støttet af mktime () i både 32-bit og 64-bit HP-UX er fredag December 13 20:45:52 UTC 1901. Den maksimale datoer, der støttes af mktime () er tirsdag 19 januar 03:14:07 UTC 2038 og fredag December 31 23:59:59 UTC 9.999 i 32-bit HP-UX og 64-bit HP-UX, hhv. Hvis kalenderen tid ikke kan være repræsenteret, funktionen returnerer værdien (time_t) -1 og sæt errno til ERANGE. Bemærk værdien (time_t) -1 svarer også til den tid, 23:59:59 den 31. Dec, 1969 (plus eller minus tidszone og sommertid justeringer). Derfor er det nødvendigt at kontrollere både den returværdi og errno til pålideligt opdage en fejl. Solaris 10 siger: Den zoneinfo tidszone datafiler ikke overgangen tidligere Tue Jan 19 03:14:07 2038 UTC. Derfor til 64-bit-programmer ved hjælp zoneinfo tidszoner, kan beregningerne efter denne dato ikke bruge den korrekte offset fra standard tid, og kan returnere forkerte værdier. Dette påvirker 64-bit version af localtime (), localtime_r (), ctime (), og ctime_r (). Nanosekund resolution Jeg bemærker, at POSIX specificerer en række nanaosecond beslutning rutiner. Jeg kan se, at Solaris 10 har gennemført dem. Jeg har ingen erfaring med dem, og jeg har ignoreret dem til denne tråd. Den clock_settime (3RT) man-siden siger: Citat:
Hvis du viser tiden i nanosekunder, skal du sørge for at holde dine øjne meget tæt på skærmen. Lyset kan ikke rejse selv et fuldstændigt fod i et nanosekund. ![]() Læs mere Vær sikker på at læse mtime, ctime, og atime for oplysninger om tidsstempler af filer. |
| Bogmærker |
| Tags |
| ur, mtime, tidtagersystemer |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|