5 votes

horodateur XXXX s dans le futur numéro - commande touch (Linux)

Quand je détache un tar.gz sur Debian Lenny, j'obtiens les résultats suivants :

tar: openssl-1.0.1e/apps/openssl.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.139999998 s in the future
openssl-1.0.1e/apps/openssl-vms.cnf
tar: openssl-1.0.1e/apps/openssl-vms.cnf: time stamp 2013-02-11 15:26:04 is 1360584537.129999998 s in the future
openssl-1.0.1e/apps/passwd.c

Je constate que l'horodatage du fichier est dans le futur par rapport à l'heure du système. J'utilise touch comme ci-dessous pour modifier l'horodatage du fichier, et stat montre que l'horodatage du fichier correspond à l'heure actuelle du système, puis j'essaie de désarchiver le fichier, mais j'obtiens toujours le même problème d'horodatage (comme ci-dessus).

ts7500:/home# touch -am openssl-1.0.1e.tar.gz 
ts7500:/home# stat openssl-1.0.1e.tar.gz 
  File: `openssl-1.0.1e.tar.gz'
  Size: 4459777         Blocks: 8736       IO Block: 4096   regular file
Device: 2b09h/11017d    Inode: 40802       Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 1970-01-01 03:15:24.000000000 +0000
Modify: 1970-01-01 03:15:24.000000000 +0000
Change: 1970-01-01 03:15:24.000000000 +0000
ts7500:/home# date
Thu Jan  1 03:15:48 UTC 1970
ts7500:/home# tar xvf openssl-1.0.1e.tar.gz

Je sais que je peux résoudre le problème en changeant l'heure du système par date -s "08 JUN 2013 00:19:00" ou utiliser NTP . Mais je me demande, pourquoi changer l'horodatage du fichier en touch n'a pas fonctionné ? comment aurais-je dû modifier l'horodatage du fichier, afin de ne pas avoir cet avertissement ?

Si vous voulez voir le système de fichiers :

ts7500:/home# blkid
/dev/nbd6: SEC_TYPE="msdos" UUID="01E8-4C7D" TYPE="vfat" 
/dev/nbd8: UUID="236b63b3-15db-40c3-bc5f-e4b7c4b10751" TYPE="ext2" 
/dev/nbd9: UUID="5b13aa84-e589-41a7-84cf-2d0d6bf2a9cd" TYPE="ext3" 
ts7500:/home# df -Th
Filesystem    Type    Size  Used Avail Use% Mounted on
tmpfs        tmpfs     31M  4.0K   31M   1% /lib/init/rw
udev         tmpfs     10M  160K  9.9M   2% /dev
tmpfs        tmpfs     31M     0   31M   0% /dev/shm
rootfs      rootfs    3.3G  1.7G  1.5G  53% /
/dev/root     ext2    2.0M  1.7M  311K  85% /initrd

6voto

bachposer Points 143

Vous pouvez extraire votre fichier tar avec le paramètre --touch pour effectuer cette opération automatiquement.

tar --touch -xvf openssl-1.0.1e.tar.gz

5voto

Mohsin Points 11

Cela n'a pas fonctionné parce que vous avez changé l'horodatage de la archives et non des fichiers qu'il contient. Si vous exécutez stat sur le tar.gz vous constaterez que l'heure a été modifiée correctement. touch ne peut pas accéder aux fichiers stockés dans l'archive tant que vous ne les avez pas extraits ; ils sont donc restés inchangés.

Dans tous les cas, cela ne devrait pas poser de problème, il suffit de désarchiver l'archive, puis de modifier l'horodatage des fichiers :

mkdir foo
mv openssl-1.0.1e.tar.gz foo/
cd foo/
tar xvvzf openssl-1.0.1e.tar.gz
find . -exec touch -am '{}' \;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X