Synchronisation du timestamp uniquement

Résolu/Fermé
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 - 30 nov. 2009 à 14:52
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 - 3 déc. 2009 à 08:30
Bonjourà tous,

Est-ce que quelqu'un saurait me dire s'il est possible ou non de synchronisé les timestamps (pas les données, que les timestamps) de données sur un serveur avec les mêmes données sur une autre machine ?

j'ai copié des données avec la mauvaise option de cp et maintenant elles ont la date de restauration comme date de créationsur la seconde machine, et j'aimerais 'récupérer' les vrai dates de création des données.

Merci d'avances.

10 réponses

dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
2 déc. 2009 à 15:01
sachant qu'on est mercredi 15h CET, ajouter au find pour ne trouver que les fichier de lundi avant 15h:
find . -mtime +2 -print

si il faut une plus grande précision:
touch -t 0911300600.00 /tmp/t1 # je crée un fichier daté du 30 nov 2009 à 6h 0m 0s
et on cherche les fichiers plus anciens (not newer)
find . ! -newer /tmp/t1 -print

pour ne chercher que les fichiers et pas les répertoires, ajouter au find:
-type f
1
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
30 nov. 2009 à 15:31
hello
tu parles de la date de création ls -lc ou de la date de modification ls -l ?
0
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 32
30 nov. 2009 à 16:24
Salut dubcek,
ls -l
0
Bonjour,

tu parles de la date de création ls -lc ou de la date de modification ls -l ?


Attention : Linux ne fonctionne pas comme Windows.
Windows gère trois dates : création, modification et accès.
Linux gère également trois dates, mais pas les mêmes : modification, accès et changement.
Il n'y a pas de date de création en Linux, et st_ctime n'a pas le même sens qu'en Windows, il donne la dernière date de changement d'un attribut.

Manu
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
30 nov. 2009 à 16:54
si je n'ai changé aucun attribut, j'ai bien la date de création du fichier avec ls -lc
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
30 nov. 2009 à 16:52
je ferais ça (à tester):
SRC=/dir/source
DST=/dir/destination
cd $SRC
for FILE in $(find . -print) ; do
	touch -c $DST/$FILE --reference=$FILE
done
0
dubcek Messages postés 18753 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 7 novembre 2024 5 619
1 déc. 2009 à 07:28
correction
touch -c --reference=$FILE $DST/$FILE
0
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 32
1 déc. 2009 à 07:48
Salut Manu,
Oui en fait , je me suis mal exprimée, c'est la dernière date de modification que je souhaite conserver.

Merci dubcek, je vais tester.

Ivy
0
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 32
2 déc. 2009 à 14:24
Merci Dubcek,
La ligne touch fonctionne .

J'ai juste encore un problème, c'est que depuis, des fichiers ont été modifié, et je ne souhaite appliquer le touch qu'aux fichiers dont la date de modif est plus vieille que lundi matin.

Existe-t-il un moyen de comparer la date/heure d'un fichier avec une date/heure donnée ?

(j'ai trouvé la commande newer mais elle ne retourne jamais rien)

Merci beaucoup.

Ivy
0
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 32
2 déc. 2009 à 15:37
Merci Dubcek,
Avec ça j'ai toutes les clefs en main pour faire le scripte dont j'ai besoin.

Encore Merci,

Ivy
0
IvyAlice Messages postés 379 Date d'inscription lundi 17 septembre 2007 Statut Membre Dernière intervention 14 septembre 2013 32
3 déc. 2009 à 08:30
Voilà le scripte, Donc là ça restaure groupeTEST selon le même chemin sur le disque dure externe

et avant ça un

touch -t 11300630 /home/user/limitedate

pour lui donner la date souhaitée

............................................................................................................
#!/bin/bash

logfile="/home/user/logtestdate.log"
srcPath="/media/usb/DATA"
dest="/data/groupes/groupeTEST"
debutdate=`date`
echo "$debutdate DEBUT" >>$logfile

#créer la liste des fichiers dont la date est a updater
find $dest ! -newer /home/user/limitedate -print > /home/user/list

cat /home/user/list |
while read g
do
srcfile=$(echo "$g"|cut -d/ -f3-) # prend tous le nom du chemin à partir du 3ème champs
echo "$g prend la date de $srcPath/$srcfile"
touch -c --reference="$srcPath"/"$srcfile" "$g" 2>>$logfile
done

debutdate=`date`
echo "$debutdate FIN" >> $logfile
............................................................................................................

il est pas parfait mais il servira p-e un jour à quelqu'un

Ivy
0