Date & Time
De BlaxWiki
Time[modifier]
Il existe 2 horloges : - horloge matériel (ou cmos, rtc) - horloge systeme La valeur du compteur de l'horloge système est toujours interprétée en temps universel. Il est préférable que l'heure du bios soit réglée sur l heure UTC. Si on utilise une autre référence la gestion du changement d’heure hiver/été devient difficile. Si on y ajoute la gestion de machines virtuelles et la mise à jour via NTP ça devient un cauchemar. Linux a deux façons de gérer l'horloge : - Si l'horloge est à l'heure universelle (UTC), elle n'est pas modifiée lors d'un changement d'heure. Dans ce cas, Linux "corrige à la volée" pour que le user voit l'heure locale. C'est la façon normale de faire sur les Unix, mais pas Mac OS X. - Si l'horloge est à l'heure locale (on indique dans quel fuseau horaire on se trouve), Linux l'affiche sans modification mais il doit la modifier à chaque changement d'heure. Tape les commandes "date" et "date -u", si elles donnent des heures identiques, on est dans le 2ème cas (horloge est à l'heure locale). Sinon, tu es dans le premier. Une fois que l'on a la bonne heure en locale, on va mettre à jour l'heure du bios en utc : hwclock --systohc –-utc
- Correction de l'heure
1. Contenu de /etc/sysconfig/clock ZONE="Europe/Paris" UTC=true # indique que la valeur lue dans l’horloge matérielle est le temps universel (dans ce cas l'horloge matériel doit être réglé en UTC) 2. /etc/localtime doit etre un lien symbolique vers /usr/share/zoneinfo/Europe/Paris 3. /etc/adjtime doit contenir UTC et non Local 4. On tape date -u , si l'heure n'est pas la bonne (en UTC time), on met la bonne heure UTC en faisant : date -u $newdatime, puis on pousse la bonne heure UTC vers le bios : hwclock --systohc . On reboot et tout devrait etre bon
Date[modifier]
- Date to epoch / Date from start system
date -d "2003-08-10 00:30:23" '+%s' voir le time stamp d un fichier : ls -l --time-style +%s dans dmesg, souvent la date est donnée en seconde depuis depuis le démarrage du system $ date -u -d @162971.420309 Thu Jan 1 17:29:31 UTC 1970
- Différent format de date
DATE=`date "+%Y%m%d"` benj@serveur:~$ echo $DATE 20120118 DATEOLD=`date --date='7 days ago' "+%d%m%Y"` 11012012 DATE=`date +%Y-%m-%d` benj@serveur:~$ echo $DATE 2012-01-18 Pour ne pas avoir de date (jour ou mois) avec un 0 (1 au lieu de 01), il faut rajouter un "-" entre le % et le m ou d benj@serveur:~$ DATE=`date +%Y-%m-%d` benj@serveur:~$ echo $DATE 2012-01-18 benj@serveur:~$ DATE=`date +%Y-%-m-%d` benj@serveur:~$ echo $DATE 2012-1-18 benj@serveur:~$ DATE=`date '+DATE: %m/%d/%y%nTIME:%H:%M:%S'` benj@serveur:~$ echo $DATE DATE: 01/18/12 TIME:12:06:06