![]() |
Hallo en welkom vanaf tot UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| Tips en Tutorials Nuttige artikelen van onze gebruikers. |
Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
|
||||
| Draad | Thread Starter | Forum | Antwoorden | Last Post |
| Inzicht in deze Makefile | the_learner | Hoog Niveau Programmering | 5 | 06-14-2007 02:55 |
| Need Help Inzicht in een Unix Command | chris86 | UNIX voor Dummies Questions & Answers | 6 | 10-10-2006 04:35 PM |
| Een beetje hulp inzicht FIFOs? | deckard | Linux | 0 | 11-01-2005 01:46 PM |
| moeten verder inzicht init.d | jigarlakhani | UNIX for Advanced & Expert Gebruikers | 1 | 09-20-2002 04:11 PM |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
|||||
|
Zomertijd Ruled zijn veranderd en ik heb geen patch .... Wat te doen?
Laten we zeggen dat mijn systeem is nog steeds opgezet voor de regel van vorig jaar. Mijn systeem zal binnenkort de verkeerde tijd. Wat moet ik doen? Een ding dat is niet een heel goed idee zou zijn om de klok een uur vooruit handmatig crank. Als ik dat mijn systeem het verkeerde interne tijd zal hebben. Sommige netwerk gebaseerde diensten zoals NFS gebruik van de interne tijd. Mijn systeem zou ook niet langer de juiste Universal Time. NTP (Network Time Protocol) zal storing en klok mijn systeem zal drift. Zelfs voor mijn eigen tijdzone, zou ik graag hebben timestamps 17:00 EST 17:00 CEST wanneer ik zou moeten hebben. Een paar weken later, zal de oude regel van kracht, en ik zal nu moet de klok handmatig weer aan te passen.
Ik hoop dat ik je overtuigd om niet opnieuw de tijd op deze manier. Een betere optie zou zijn om gegevens van mijn systeem onderzoek bestand dat definieert de zomertijd regels voor mijn tijdzone en bewerk het zelf. Dit moet een recht vooruit te veranderen. Maar elk systeem kan zijn eigen formaat. Er lijkt een bijna universele oplossing: gebruik een meer complexe formaat voor de TZ omgevingsvariabele. Je kunt eigenlijk zet de Daylight Saving regel in TZ en dit gedrag wordt door daartoe Posix. Hieronder is een tabel van de TZ-instellingen die ik denk goed te zijn voor het jaar 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 |
|
|||||
|
Speciale voorzorgen voor cron
cron zullen reageren op veranderingen in de tijd
Als u het systeem tijd terwijl cron draait aan te passen, zal cron bericht en proberen te compenseren. Als de tijd naar achteren verplaatst, zal cron stoppen banen en wacht tot de klok terug naar voren waar cron de laatste baan. Als de tijd naar voren verplaatst, zal cron proberen te halen. Deze klikt wel elke minuut voortdurend totdat het heeft alle banen gepland tijdens de overgeslagen tijdsduur lopen. Als je gewoon tweaken van het systeem klok, omdat hij uit een paar seconden, is dit perfect. Maar als de tijd is een jaar uitgeschakeld, zal het waarschijnlijk niet een goede zaak. Voor grote aanpassingen van de klok moet je doden en cron herstarten. cron zullen reageren op Daylight Saving Changes Stel dat ik een baan hebben gepland om te draaien met 2u15 's morgens zondag. Als we "spring vooruit", zal er geen 2:15. cron zullen er rekening mee dat we 'vooruit afgeveerde "van 60 minuten, dus het 60 minuten zal toevoegen aan mijn werk tijd om 3:15. Het draait de baan op 3:15 ... tenzij de baan al was gepland om te draaien met zowel de 2:15 en 3:15. In dat geval zal mijn werk een keer draaien op 3:15. Later in het jaar, wij "fall back". Op die zondag zal het 2:15 tweemaal. Mijn taak zal alleen draaien op de eerste 2:15. Als mijn werk heeft een looptijd van 15 minuten na elk uur via het expliciete gebruik van een sterretje in het uur veld mijn werk zal draaien op zowel s. 2u15 ' Dit is niet waar, als ik een bereik gebruiken of een lijst van uren te lopen. Alleen banen met een sterretje voor het uur veld lopen op s. zowel 2u15 ' cron heeft zijn eigen tijdzone Als ik mijn werk schema voor 2u15 in de ochtend, zal cron draaien wanneer hij denkt dat de tijd is 2:15. cron is nauw verwant aan de "at" commando. Als ik het schema aan baan via "op" om te draaien met 2:15, is mijn variabele TZ geïnspecteerd en de baan zal lopen op mijn 2:15. Maar cron werkt niet op die manier. |
|
|||||
|
Leap Seconden
De definitie van een seconde wordt zorgvuldig vastgesteld. Elke seconde is precies zo lang als elke andere seconde. Toen wetenschappers waren het vastbinden van de exacte waarde van een tweede, afgestemd ze het zo precies mogelijk aan het jaar 1900. Er zijn 24 * 60 * 60 \u003d 86400 seconden in een dag. Maar de aarde heeft vertraagd een beetje meestal als gevolg van getijdekrachten. Elk jaar moet over ,7 seconden extra. Zo nu en dan hebben we een dag met 86,401 seconden. Unix probeert te doen alsof dit niet het geval is. Als u niet werkt met NTP, dan kunt u periodiek handmatig moet aanpassen uw klok en je zal compenseren voor een schrikkelseconde tijdens uw volgende handmatige aanpassing.
Als u NTP draait, Unix probeert de laatste seconde van de dag te maken met een schrikkelseconde laatste 2 seconden. Met vele implementaties, zal de tweede voorschot ten onrechte in het midden van deze speciale lange tweede en zal terug worden aangepast een paar milliseconden later. Dus negeren van het potentieel rommelige tweede lange overgangsperiode, behandelen we elke dag alsof het was 86.400 seconden lang. Door de manier, duurde het ongeveer een eeuw voor de aarde te vertragen genoeg om ,7 seconden extra per jaar nodig. Het duurt nog een eeuw voor te vertragen genoeg tot ongeveer 1,4 seconden nodig extra jaar. Denk niet dat elk jaar wordt ,7 seconden langer dan zijn directe voorganger. |
|
|||||
|
Mijn Perl script
Hier is mijn Perl script dat ik gebruikte in dit 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
Uw OS grenzen stelt aan het scala aan data die It Can Formaat
U moet de documentatie voor uw systeem om die data kan verwerken. Bijvoorbeeld, HP-UX 11i Version 2 zegt: De minimale datum ondersteund door mktime () in zowel 32-bits en 64-bits HP-UX is vrijdag 13 december 20:45:52 UTC 1901. De maximale data ondersteund door mktime () zijn dinsdag 19 januari 03:14:07 UTC 2038 en vrijdag 31 december 23:59:59 UTC 9999 in 32-bits HP-UX en 64-bits HP-UX, respectievelijk. Als de agenda tijd niet kan worden vertegenwoordigd is, de functie geeft de waarde (time_t) -1 en zet errno aan ERANGE. Let op de waarde (time_t) -1 ook overeen met de tijd 23:59:59 op 31 december 1969 (plus of min tijdzone en zomertijd aanpassingen). Zo is het noodzakelijk om zowel de return waarde en controleer errno betrouwbaar te detecteren een fout staat. Solaris 10 zegt: De zoneinfo tijdzone gegevensbestanden niet overgang verleden Tue Jan 19 03:14:07 2038 UTC. Daarom is voor 64-bit applicaties met behulp van zoneinfo tijdzones, kan berekeningen na deze datum geen gebruik maken van de juiste compensatie van standaard tijd, en kon retourneren onjuiste waarden. Dit beïnvloedt de 64-bits versie van localtime (), localtime_r (), ctime (), en ctime_r (). Nanoseconde Resolutie Ik merk dat Posix is het opgeven van een verscheidenheid van nanaosecond resolutie routines. Ik zie dat Solaris 10 heeft ze uitgevoerd. Ik heb geen ervaring met hen en ik heb ze genegeerd voor deze draad. De clock_settime (3RT) man pagina zegt: Citaat:
Als u de tijd in nanoseconden display, zorg ervoor dat je ogen zeer dicht bij het scherm. Licht kan niet reizen zelfs een voet in een nanoseconde. ![]() Verder lezen Zorg ervoor dat lezen mtime, ctime, en atime voor informatie over de timestamps van bestanden. |
| Bladwijzers |
| Labels |
| klok, mtime, tijdsmeting |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|