Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 22/10/2021, à 13:40

HPIR40

Besoin d'un script de correction de transfert NAS à NAS foireux

Bonjour à tous

J'ai copié le contenu d'un NAS synology vers un autre NAS synology

Le premier est resté en production pendnat que je faisait quelques ajustements sur le second.

malheureusement un certain s'est passé, et avant de mettre le deuxieme nas en production, et arreter le deuxieme, et j'ai copier le contenu du premier NAS vers le second en utilsant la fonction copier-ignorer du synology pour faire une dernière synchronisation.

Hors chez synology pour ignorer un fichier il suffit qu'il ait le même nom, ils ne prennent pas en compte la date et l'heure du fichier!!! et le deuxieme NAS est en production depuis 1 semaine.

Je dois donc corriger rapidement le tir avec un petit script correctif.

j'ai la premiere commande qui va me permettre de lister les fiochiers qui ont étét modifié entre les deux dates:

find /Documents -newermt 2021/09/25 ! -newermt 2020/10/12 -print0 | xargs -0 ls -l

mais par contre je voudrais que les fichiers trouvés ne soient copiés que si et seulement si il n'existe pas de fichier ayant le même nom datant de aprés le 2020/10/12 dans le repertoire de destination.
Avec, si possible, une validation manuelle du transfert (oui/non) de ma part pour plus de securité, que je puisse voir les deux dates des deux fichiers pour vérifier que tout est OK sur quelques transfert avant de valider l'automatisation complète des copies de fichiers.

Par avance merci beaucoup

Hors ligne

#2 Le 22/10/2021, à 15:19

MicP

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Bonjour

Pour pouvoir les comparer,
tu pourrais utiliser la commande stat pour récupérer la date/heure de la dernière modification d’état en seconde depuis l'époque POSIX des fichiers concernés,

Exemple :

michel@debbull:~$ fich1="$HOME/.bashrc"
michel@debbull:~$ fich2="/media/michel/sda5_xubu/home/michel/.bashrc"
michel@debbull:~$ 
michel@debbull:~$ ls -l  "$fich1"  "$fich2"
-rw-r--r-- 1 michel michel 3712  1 oct.  21:16 /home/michel/.bashrc
-rw-r--r-- 1 michel michel 3953  8 avril  2021 /media/michel/sda5_xubu/home/michel/.bashrc
michel@debbull:~$ 
michel@debbull:~$ dtFich_1=$(stat -c"%Y" "$fich1")
michel@debbull:~$ dtFich_2=$(stat -c"%Y" "$fich2")
michel@debbull:~$ 
michel@debbull:~$ if [ $dtFich_1 > $dtFich_2 ]; then echo "fich1 est plus récent que fich2"; fi
fich1 est plus récent que fich2
michel@debbull:~$ 

Dernière modification par MicP (Le 22/10/2021, à 15:27)

Hors ligne

#3 Le 23/10/2021, à 07:54

HPIR40

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Bonjour

merci beaucoup pour ces commandes.

ce que je voudrais surtout c'est que à partir de, par exemple ma sortie de:

find /Documents -newermt 2021/09/25 ! -newermt 2020/10/12 -print0 | xargs -0 ls -l

je puisse ensuite copier ses fichiers d’un repertoire source vers un repertoire cible, mais sans écraser les fichiers présent dans le répertoire cible ayant le même nom mais qui sont datés de aprés le 30 sept…

ça je ne sais pas faire.

Par avance merci

Hors ligne

#4 Le 23/10/2021, à 08:53

Zakhar

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Il faut juste poser calmement ta logique et faire un script avec par exemple les commandes indiquées par MicP

Algo symbolique :

[Pour tout fichier source - do]

- Fichier n'existe pas dans la cible : action copie ?

- Fichier existe dans la cible :
===> Test de dates
     Date source = date cible : pas d'action car on présume que c'est le même fichier (continue)
     Date source > date cible : erreur ! (ça ne devrait pas arriver)
     Date source < date cible : action copie ? (en principe tout fichier changé devrait avoir une date supérieure à celle d'origine sauf si l'utilisateur a fait exprès de changer les dates. Donc la date 25 septembre importe peu en réalité)

[end do - Pour tout fichier source]

Fais attention aux dates que tu compares !
Fais le script une première fois avec une "action copie" du genre "echo" pour vérifier que ça va bien copier ce que tu veux.
Détermine aussi où tu veux mettre les fichiers qui n'auraient pas été copiés du tout ni modifiés (premier test symbolique)


"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)

Hors ligne

#5 Le 23/10/2021, à 09:47

HPIR40

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Merci

Je ne suis pas developpeur ou programmeur a ce niveau là et je n'ai pas cette logique, donc pour moi c'est du chinois.

Je sais que la commande cp -u permet de ne pas effectuer la copie si le fichier destination existant (autre qu'un répertoire) a une date de modification  égale  ou  plus  récente que celle du fichier source.

Mais justement c'est "(autre qu'un répertoire)" qui me pose un problème.

Quand aprés à mettre tout cela en forme, c'est largement en dehors de mes compétences (et je le reconnais)...c'est d'ailleurs pour cela que je demande de l'aide ici sinon je l'aurais déjà fait sans vous embêter et vous déranger.

Dernière modification par HPIR40 (Le 23/10/2021, à 10:00)

Hors ligne

#6 Le 24/10/2021, à 09:09

HPIR40

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Bonjour

Solution donnée sur un autre forum

Bonne journée

Hors ligne

#7 Le 24/10/2021, à 09:47

icareP

Re : Besoin d'un script de correction de transfert NAS à NAS foireux

Bonjour,

HPIR40 a écrit :

Bonjour

Solution donnée sur un autre forum

Bonne journée

Un lien vers la solution ou la mettre ici pourrait peut être aider d'autres membres.
Merci

Hors ligne