Debian Debian-France Debian-Facile Debian-fr.org Debian-fr.xyz Debian ? Communautés

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 26-10-2021 18:16:35

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : Linux 5.10.0-8-amd64
(G)UI : Mate
Inscription : 05-07-2020

[résolu à moitié] Trouver les éléments créés sur une période

Bonjour,

En effectuant sur petite sauvegarde de mes 4 Dossiers important et en regardant par curiosité dans les propriétés, j'ai pu constater que j'avais une différence de 247 éléments (fichiers donc) entre le 17/10/2021 (dernière sauvegarde effectuée) et aujourd'hui 26/10/2021.
J'apporte rarement de nouveaux fichiers dans ces dossiers et ce chiffre de 247 en 9 jours et tout bonnement impossible pour moi à faire. 4 ou 5 oui mais pas plus.. Du coup je me demande ce que c'est.

J'aimerais savoir si il y a une possibilité de trouver tous ces fichiers créés entre ces 2 date sur ces 4 Dossiers.
et savoir l'appliquer

merci à vous

Dernière modification par totoZero7 (28-10-2021 22:05:42)

Hors ligne

#2 26-10-2021 19:22:39

yap22
Membre
Lieu : Bro Dreger (Breizh)
Distrib. : Debian stable
(G)UI : Xfce
Inscription : 29-02-2016

Re : [résolu à moitié] Trouver les éléments créés sur une période

Bonjour,

La commande find fait le boulot :


find -ctime -9 -ls
 


Le résultat sera la liste des fichiers créés depuis moins de 9 jours.

Hors ligne

#3 26-10-2021 20:16:35

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : Linux 5.10.0-8-amd64
(G)UI : Mate
Inscription : 05-07-2020

Re : [résolu à moitié] Trouver les éléments créés sur une période

merci pour la commande mais ça me renvoie les fichiers modifiés. Je cherche à trouver les nouveaux fichiers.

Hors ligne

#4 27-10-2021 14:18:31

Croutons
Membre
Distrib. : Debian10 Buster
Noyau : Linux 4.19.0-18-amd64
(G)UI : Mate
Inscription : 16-12-2016

Re : [résolu à moitié] Trouver les éléments créés sur une période

Hello
Tout dépend de la forme que prend la sauvegarde (fichiers compressés ?)
Ce qui me viens vite fais a l'esprit faire une liste des dossiers sauvegardés et une liste des dossiers source avec la commande ls (surement avec l'option -R pour lister les sous dossiers)
rediriger le résultat dans un fichier texte , puis comparer les 2
exemple avec 2 repertoires

ls -laR ~/Documents/ ~/Musique/>sources.txt


ls -laR /sauvegarde/Documents/ sauvegarde/Musique/>sauvegarde.txt



On compare les 2 résultats(voir avec meld par exemple)

meld sources.txt sauvegarde.txt


-->les cahiers du debutant<--      WikiDF-->Découvrir les principales commandes Linux<--
L' expérience, c'est le nom que chacun donne à ses erreurs. Oscar Wilde

En ligne

#5 27-10-2021 14:56:48

LinuxEveryDay
Membre
Distrib. : Debian Sid
Noyau : Linux 5.14.0-4-amd64
(G)UI : Metacity (Marco) MATE
Inscription : 28-09-2021

Re : [résolu à moitié] Trouver les éléments créés sur une période

Peut-être avec fdupes ( -> https://manpages.debian.org/bullseye/fd … .1.en.html ) qui permet de détecter les fichiers en double/triple/multi exemplaire (basé sur la sommme md5)
Perso je l'utilise souvent vu que je suis un peu big_smile bordelique dans mes sauvegardes.
Après (g)rsync permet d'avoir des sauvegarde propres et sans duplicatas https://doc.ubuntu-fr.org/grsync https://debian-facile.org/doc:reseau:rsync

Hors ligne

#6 27-10-2021 21:18:50

Tawal
Membre
Distrib. : Debian 11 Bullseye
Noyau : Linux 5.10.0-9-amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [résolu à moitié] Trouver les éléments créés sur une période

Hello

Une manière de faire pour trouver que le fichiers créés après le 17-10-2021 :
Pour avoir la date du 17-10-2021 en secondes depuis le 01-01-1970 UTC à 00:00:00

date --date=2021-10-17 +%s


Puis stat donne la date de création du fichier en secondes depuis le 01-01-1970 UTC à 00:00:00 :

stat -c %W fichier


Ensuite, il faut scruter le dossier (et sous dossier) en question et comparer la date de création du fichier avec la date en question :

shopt -s nullglob globstar; echo "Fichiers créés après le 17-10-2021 :"; for fich in /chemin/du/dossier/sauvegarde/**/*; do if [ $(stat -c %W "$fich") -ge $(date --date=2021-10-17 +%s) ]; then echo "$fich"; fi; done

à entrer en 1 seule ligne dans le terminal (en adaptant le chemin du dossier sauvegarde évidemment)


Mise en forme dans un script bash :

#!/bin/bash
shopt -s nullglob globstar
echo "Fichiers créés après le 17-10-2021 :"
for fich in /chemin/du/dossier/sauvegarde/**/*
do
    if [ $(stat -c %W "$fich") -ge $(date --date=2021-10-17 +%s) ]
    then
        echo "$fich"
    fi
done



Edit:
Correction :
    de nulglob en nullglob.
    ajout d'un espace avant le "]" dans la ligne terminal

Dernière modification par Tawal (28-10-2021 18:09:19)


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#7 27-10-2021 23:27:17

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : Linux 5.10.0-8-amd64
(G)UI : Mate
Inscription : 05-07-2020

Re : [résolu à moitié] Trouver les éléments créés sur une période

Wow tout ça!

Alors déjà, merci pour cet éclat de possibilités à tous.

Ensuite
@Croutons, je garde ta méthode sous le coude qui est fort intéressante même si elle ne m'a pas aidé dans ce problème.

@LinuxEveryDay, je suis en train de regarder rsync en ce moment, justement, pour accélérer la sauvegarde, que je fais manuellement et que je n'aime pas faire. C'est en cours...je galère avec la compréhension de la manip car j'ai des disques internes/externes chiffrés (non monté) et je ne sais pas trop comment faire pour faciliter cela. J'y travaille.

@Tawal, le code dans bash ne fonctionne pas ça me met:

bash: shopt: nulglob,globstar : nom d'option du shell non valable
Fichiers créés après le 17-10-2021 :
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
bash: [: « ] » manquant
 



Et pour le script, ça marche mais il y a la même ligne que dans bash avec un truc qui ne semble pas être correct:

./script_recherche


./script_recherche: ligne 2 : shopt: nulglob,globstar : nom d'option du shell non valable
Fichiers créés après le 17-10-2021 :
"ligne de mes fichiers crées 1"
"ligne de mes fichiers crées 2"
"ligne de mes fichiers crées 3"
"ligne de mes fichiers crées etc.."
 


Au fait, est-ce qu'il y a une autre méthode que "./" pour exécuter un script ?, et est-ce qu'on est obligé de le faire dans un terminal ?


Sinon je crois savoir où est mon surplus de fichiers, mais hélas, je ne l'ai pas obtenu dans les méthodes au dessus.
Je pense que c'est un dossier complet d'un compte (profil) de Thunderbird, que j'ai directement importé sans faire de modification moi-même dedans.
Du coup, comment puis-je détecter ce genre de chose à l'avenir ? car il n'y a pas de comparaison possible entre la source et la sauvegarde. à part garder une "trace" de l'ancienne sauvegarde peut-être ? Comment s'y prendre ?

Hors ligne

#8 28-10-2021 07:47:52

Tawal
Membre
Distrib. : Debian 11 Bullseye
Noyau : Linux 5.10.0-9-amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [résolu à moitié] Trouver les éléments créés sur une période

Corrigé les erreurs de la ligne terminal et du script wink

totoZero7 a écrit :

Au fait, est-ce qu'il y a une autre méthode que "./" pour exécuter un script ?, et est-ce qu'on est obligé de le faire dans un terminal ?


Sans rendre le script exécutable :

bash /chemin/complet/nom_du_script


Sinon en l'ayant rendu exécutable, placer le script dans un dossier du PATH (/usr/local/bin par exemple) et appeler directement le script par son nom.
On peut aussi créer un lanceur avec la commande de lancement qui va bien selon si le script est exécutable ou pas, ou placé dans un dossier du PATH.

Pour se prémunir du cas d'erreurs d'importation dans les sauvegardes, il faut garder l'ancienne sauvegarde avant de faire la nouvelle.
Voir les options --backup et --backup-dir de rsync


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#9 28-10-2021 22:02:45

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : Linux 5.10.0-8-amd64
(G)UI : Mate
Inscription : 05-07-2020

Re : [résolu à moitié] Trouver les éléments créés sur une période

Tawal a écrit :

Pour se prémunir du cas d'erreurs d'importation dans les sauvegardes, il faut garder l'ancienne sauvegarde avant de faire la nouvelle.
Voir les options --backup et --backup-dir de rsync


Je l'ai noté dans mon tuto (qui est en gros travaux). Merci cool


Tawal a écrit :

Corrigé les erreurs de la ligne terminal et du script


Là je vois des choses apparaître ! ça défile et je peux voir les lignes de fichiers modifiés



Merci pour toutes ces commandes.
En revanche, ça n'indique toujours pas les dossiers créés et je crois que c'est tout bonnement impossible car je viens de m'apercevoir que quand on modifie un fichier, ça modifie aussi sa date de création.


Je crée un fichier text.txt puis j'exécute la commande stat dessus

stat test.txt


  Fichier : test.txt
   Taille : 0          Blocs : 0          Blocs d'E/S : 4096   fichier vide
Périphérique : fe01h/65025d  Inœud : 15731379    Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/    totoZero7)   GID : ( 1000/    totoZero7)
 Accès : 2021-10-28 21:37:47.213843408 +0200
Modif. : 2021-10-28 21:37:43.553962864 +0200
Changt : 2021-10-28 21:37:45.805889361 +0200
  Créé : 2021-10-28 21:37:43.553962864 +0200
 



Je le modifie 3 minutes après

stat test.txt


  Fichier : test.txt
   Taille : 2          Blocs : 8          Blocs d'E/S : 4096   fichier
Périphérique : fe01h/65025d  Inœud : 15731346    Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/    totoZero7)   GID : ( 1000/    totoZero7)
 Accès : 2021-10-28 21:40:55.987677972 +0200
Modif. : 2021-10-28 21:40:55.995677711 +0200
Changt : 2021-10-28 21:40:56.003677450 +0200
  Créé : 2021-10-28 21:40:55.987677972 +0200
 




J'ai trouvé l'énigme de des 247 lignes avec le script et par déduction. Je marque le post en [résolu à moitié] car mon problème est réglé.
Néanmoins, on ne peut pas trouver les fichiers créés. Ils sont mélangés avec les fichiers modifiés

Dernière modification par totoZero7 (28-10-2021 22:06:15)

Hors ligne

#10 30-10-2021 13:26:53

Tawal
Membre
Distrib. : Debian 11 Bullseye
Noyau : Linux 5.10.0-9-amd64
(G)UI : Xfce
Inscription : 25-02-2021

Re : [résolu à moitié] Trouver les éléments créés sur une période

Heuuu !!!


Ce n'est pas normal que la date de création change lors d'une simple modification du fichier.
Chez moi :

$ touch test
$ stat test
  Fichier : test
   Taille : 0          Blocs : 0          Blocs d'E/S : 4096   fichier vide
Périphérique : 803h/2051d  Inœud : 1310722     Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/   tawal)   GID : ( 1002/   tawal)
 Accès : 2021-10-30 13:25:00.833177928 +0200
Modif. : 2021-10-30 13:25:00.833177928 +0200
Changt : 2021-10-30 13:25:00.833177928 +0200
  Créé : 2021-10-30 13:25:00.829172900 +0200
$ echo "test" > test
$ stat test
  Fichier : test
   Taille : 5          Blocs : 8          Blocs d'E/S : 4096   fichier
Périphérique : 803h/2051d  Inœud : 1310722     Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/   tawal)   GID : ( 1002/   tawal)
 Accès : 2021-10-30 13:25:00.833177928 +0200
Modif. : 2021-10-30 13:25:19.601414335 +0200
Changt : 2021-10-30 13:25:19.601414335 +0200
  Créé : 2021-10-30 13:25:00.829172900 +0200
$


Comme la science n'est pas infuse, elle se diffuse.
Useless Use of Cat Award
Filenames and Pathnames in Shell: How to do it Correctly
À chaque problème sa solution, à chaque solution son moyen, si pas de moyen, toujours le problème !

En ligne

#11 30-10-2021 14:16:40

David5647
Membre
Distrib. : Debian Bullseye/Sid
Noyau : 5.7.0-2-amd64
(G)UI : KDE/i3wm
Inscription : 27-08-2017

Re : [résolu à moitié] Trouver les éléments créés sur une période

Je ne suis pas sûr que le système de fichier enregistre les dates de création de fichiers (En tout cas, ce n'est pas définit dans la norme POSIX). (=> ext4 le supporte depuis un certain temps, l'option à été ajouté à stat en 2020, (et je retrouve plus le page))
Je pense que ce qui est ici nommé "crée" représente (à défaut?) la date de création de l'inode.
Ici, echo ne semble pas modifier l'inode, tandis qu'un autre éditeur (par ex vim) le modifie. Je n'en connais pas la raison. Il faudrait sûrement définir ce qu'est créer/modifier un fichier dans un système de fichier tongue .

stat test

Fichier : test
   Taille : 0          Blocs : 0          Blocs d'E/S : 4096   fichier vide
Périphérique : fe02h/65026d  Inœud : 1182047     Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/   david)   GID : ( 1000/   david)
 Accès : 2021-10-30 13:58:30.377747278 +0200
Modif. : 2021-10-30 13:58:30.377747278 +0200
Changt : 2021-10-30 13:58:30.377747278 +0200
  Créé : 2021-10-30 13:58:30.377747278 +0200



echo "test" > test

stat test

  Fichier : test
   Taille : 5          Blocs : 8          Blocs d'E/S : 4096   fichier
Périphérique : fe02h/65026d  Inœud : 1182047     Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/   david)   GID : ( 1000/   david)
 Accès : 2021-10-30 13:58:30.377747278 +0200
Modif. : 2021-10-30 13:58:53.010199713 +0200
Changt : 2021-10-30 13:58:53.010199713 +0200
  Créé : 2021-10-30 13:58:30.377747278 +0200



vim test

stat test

  Fichier : test
   Taille : 7          Blocs : 8          Blocs d'E/S : 4096   fichier
Périphérique : fe02h/65026d  Inœud : 1182811     Liens : 1
Accès : (0644/-rw-r--r--)  UID : ( 1000/   david)   GID : ( 1000/   david)
 Accès : 2021-10-30 13:59:09.158518188 +0200
Modif. : 2021-10-30 13:59:09.158518188 +0200
Changt : 2021-10-30 13:59:09.162518265 +0200
  Créé : 2021-10-30 13:59:09.158518188 +0200

Dernière modification par David5647 (30-10-2021 14:46:38)

Hors ligne

#12 30-10-2021 15:06:18

raleur
Membre
Inscription : 03-10-2014

Re : [résolu à moitié] Trouver les éléments créés sur une période

totoZero7 a écrit :

J'aimerais savoir si il y a une possibilité de trouver tous ces fichiers créés entre ces 2 date


Qu'est-ce qui te dit que ces fichiers ont été créés entre ces deux dates ? Ne pourraient-ils pas avoir été déplacés ou copiés ?
Si tu veux la liste des fichiers qui existend dans un répertoire et pas dans l'autre, tu peux faire :

cd repertoire1
find . | sort > liste1
cd repertoire2
find . | sort > liste2
diff liste1 liste2


Il y a sûrement des méthodes plus subtiles.

David5647 a écrit :

Ici, echo ne semble pas modifier l'inode, tandis qu'un autre éditeur (par ex vim) le modifie


Depuis quand "echo" est un éditeur ?
Primo, echo ne modifie rien du tout, il se contente d'écrire sur sa sortie standard. C'est le shell, via la redirection de cette sortie standard, qui modifie.le fichier.
(Edit : en fait il se trouve que par défaut "echo" est un "builtin" du shell donc c'est le même programme, mais le raisonnement reste valable avec la commande externe /bin/echo)
Secundo on peut voir que vim ne modifie pas l'inode existant, il le remplace par un nouvel inode (ce qui pose potentiellement problème dans le cas d'un lien "dur" qui sera cassé). En clair, il crée un nouveau fichier. Nouvel inode, nouvelle date de création.

Dernière modification par raleur (30-10-2021 15:09:46)


Il vaut mieux montrer que raconter.

Hors ligne

#13 30-10-2021 21:17:56

totoZero7
Membre
Distrib. : Debian 11 bullseye
Noyau : Linux 5.10.0-8-amd64
(G)UI : Mate
Inscription : 05-07-2020

Re : [résolu à moitié] Trouver les éléments créés sur une période

raleur a écrit :

Qu'est-ce qui te dit que ces fichiers ont été créés entre ces deux dates ? Ne pourraient-ils pas avoir été déplacés ou copiés ?


C'était une forte supposition. Mais tu as raison, c'était des fichiers copiés dont je ne sais pas quand ils ont été créés (profil thunderbird importé).


L'habitude que j'ai prise est de sauvegarder 4 dossiers du disque A sur le disque B.
Une fois que j'ai effectué la sauvegarde, j'enregistre la date et le nombre d’éléments (fichiers) dans un fichier annexe. Mon petit log à moi.
C'est en voulant enregistrer les nouvelles "infos" de cette fameuse sauvegarde que je me suis aperçu de l'écart important du nombre de fichier entre la dernière sauvegarde effectuée et celle de maintenant.
Mais, comme je venais d'importer les fichiers de A vers B, je n'avais aucun moyen de comparer A et B car ils sont identique juste après la sauvegarde. (erreur de stratégie que je dois travailler)
Dans la rapidité, le doute et la trouille (247 nouveaux fichiers d'un coup alors qu'habituellement il y en 5 max)... je me suis dit que c'était des fichiers nouveaux venus des extraterrestres... j'ai donc voulu inspecter sur la création de fichier récent.

Le chouette script de Tawal m'a permis de voir, très proprement, le gros pavé de lignes de fichiers modifiés récemment.

Cela dit, avec ce post et les commentaires qui ont bien rebondis, cela m'a permis de voir que la création de fichier, comme le croit la plupart des gens, à savoir : je crée un fichier à telle date, donc c'est ça la création, n'est pas vrai. La date de création est la date de l'inode de ce que j'ai cru comprendre. Elle démarre certes à la création du dit fichier mais elle se modifie sous différents aspects qui me sont obscures à bien comprendre. Dans la tête des gens, la date de création de fichier serait la date à laquelle on a fait naître ce fichier et qui le reste, ce qui n'est pas le cas.

Dernière modification par totoZero7 (30-10-2021 21:18:23)

Hors ligne

Pied de page des forums