This site uses cookies! Learn More

Ce site utilise des cookies !

En continuant à utiliser ce site, vous vous engagez à nous permettre de stocker des cookies sur votre ordinateur.

 

Si nous utilisons des cookies et retenons des données anonymes, c’est pour nous aider à mieux gérer notre mesure d’audience, aider nos partenaires commerciaux à nous rémunérer et nos partenaires publicitaires à proposer des annonces qui vous correspondent.

 

Grâce à ces cookies, le forum est en mesure de savoir qui écrit un message et utile pour le système d'authentification.

 

En cliquant sur « J'accepte », vous acceptez l'utilisation par NAS-Forum de cookies publicitaires et de mesure d'audience fine.

Transfert de données d'un dossiers A vers un dossiers B ( synchro) en cli via planificateur de tache (Synology)


Messages recommandés

Bonjour,

Pour une question de sécurité je dois créé 2 dossiers partagés sur mon Synology,

Un dossiers est nommé A et le deuxième B

La question est la suivante comment faire une synchro de dossiers en interne? ces à dire:

 

je met un fichier dans le dossier A, puis il est déplacé vers le dossier B

j'ai trouvé un script que j'utilise avec planifcation de tache, cela fonctionne plutôt pas mal

le voici:

find /volume1/OUT-A/* -maxdepth 0 -amin +1 -exec mv '{}' /volume1/OUT-B/ \;

Mais il y a 2 problemes:

Les médias que je transfère font pour la plupart du temps entre 20G et 500G (médias video)

Donc lorsque je copie un média dans le dossier A, le Synology déplace le média dans le dossier B, sans attendre la fin de la copie.

Je me retrouve avec un médias corrompu,j'ai ajouté l'option -cmin +10, mais 10minutes, cela peut etre suffisant comme insuffisant.

Existe t'il une option qui permette de dire que le fichier est terminé de copier, ou que le fichier est fermé.

2 eme probleme:

Lorsque je met des dossiers dans le dossier A, la commande n'attend pas que la copie soit terminée, il me déplace le dossier, du coup cela met la copie en erreur.

L'idée serait qu'il ne prenne en considération le fichier ou le dossier une fois la copie terminée.

 

Merci d'avance

lolo

Lien vers le commentaire
Partager sur d’autres sites

salut.

je ne comprend pas l’intérêt de déplacer un fichier de A vers B puis bak again. Si tu peux nous donner ton intention on comprendra peux être mieux  ce que tu veux faire, et te donner d'autres solutions. 

je sais ça ressemble un peu a "dite moi vos besoins, je vous dirai comment vous en passer" mais sinon je vois pas.

la seule piste que j'aurais, c'est comme on est sur le même filesystem je ferait un link (soit Hard soit symbolique) entre les fichiers A/fic et B/fic pour traitement en B/ ... mais bon ... sans savoir pourquoi ...

bonne chance.

Lien vers le commentaire
Partager sur d’autres sites

  •  

Bonjour
La norme de sécurité draconiennes qu'est le TTPN, nous est imposé si nous voulons travailler avec eux.
En gros :
Le serveur de récupération de données doit être sur un vlan1 et avoir internet et passer obligatoirement par un Firewall. Dans mon cas un watchguard m270.
Les stations audio et vidéo pas d'internet et Vlan2. chaque workstation à un ou plusieurs disque audio et vidéo monté ou en FC ou iscsi.

Ce serveur de récupération dépose les médias dans un NAS, dans le dossier À.
Ce dossier est scanner par l anti-virus du Synology.

Puis via le script, le média qui est dans le dossier À passe dans un dossier B pour être mis à dispo dans un serveur de production (quantum)
Tout cela afin que si une personne entre par effraction dans le serveur de récupération de données et veuille récupèrer des médias très important, il ne puisse pas.

 

En gros une personne entrant par effraction sur le serveur de réception. Ne pourra atteindre les stations de travail.

Le Nas étant la pour faire barrière

J'espère avoir été clair.

En arrivant au travail je vous transmets un synoptique de l'infra demandé par TTPN.

Cela vous aidera

Lien vers le commentaire
Partager sur d’autres sites

Plus que vérifier l'augmentation de la taille du fichier, je vérifierais le checksum.
Tu pars sur l'idée d'un script qui fait deux vérifications sur un intervalle de X secondes. Si l'output est le même c'est que le fichier n'a pas changé.
De là tu peux partir sur une boucle if qui s'occupera de déplacer le fichier d'un dossier à l'autre. Sinon ne rien faire.
Un peu de biblio : https://stackoverflow.com/questions/12900538/fastest-way-to-tell-if-two-files-have-the-same-contents-in-unix-linux

Lien vers le commentaire
Partager sur d’autres sites

Je suis pas un expert du bach ou shell ou autre, mais dans le dossier A, vont etre copiées des médias avec des noms, qui ne sont jamais les memes, je ne vois pas comment faire du diff sur de multiples fichiers ou dossiers?

Bonne journée

lolo

Lien vers le commentaire
Partager sur d’autres sites

  • 2 semaines après...

personnellement je ne me fierais pas à la taille, car il est commun pour un transfert FTP de s’arrêter et de reprendre. je préférerais utiliser une commande comme 

lsof /mon/path/to/fichier 

ce donne dans une boucle

until [ -z "$(lsof /mon/path/to/fichier.txt)" ];do sleep 1;done;echo fini

qui dit fini, ou qui attend que le fichier soit  libéré

sur Synology il y a un pseudo lsof dans le package de  la synocommunity ->  synocli-monitor

ce qui donne sur synology :

until [ -z "$(lsof|grep /mon/path/to/fichier.txt)" ];do sleep 1;done;echo fini

En dernier recours il y a le lsof du pauvre (sans install de package de la commutity)

until [ -z "$(ls -l /proc/{1,2,3,4,5,6,7,8,9}*/fd/ |grep '/tmp/toto.txt')" ];do sleep 1;done;echo fini

 

Modifié par dominix.pf
Lien vers le commentaire
Partager sur d’autres sites

  • 6 mois après...

 Ma ligne de command devrait a peu près comme ça.

 

until [ -z "$(lsof|grep /volume1/out-A)" ];do sleep 1;done;echo fini

If fini mv /Volume1/out-B

À savoir que je  scan un dossier partagé dans lequel il y a des dossiers avec des médias. Ou des médias à la racine de out-A

J'ai fait une command qui me permet de déplacer dans Out-B tout medias de plus de 5mn.

Find /volume1/A* - mindepth 1 - max depth 3 - type f - clin +1-exec mv '{}'  /volume1/B/ \;

Mais avec un dossier cela ne fonctionne pas. Il déplace les médias dans le dossier avant que ceux ci ne soit fermé.

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.