Debian-facile

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

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

#1 22-02-2017 00:29:45

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

[Résolu] Pipe dd + tar + openssl

Bonjour à tous smile

Je fait actuellement un script de backup pour mes différents systèmes sous debian.
Je compte utiliser la commande tar couplé avec openssl et dd afin de crypter mes backup.

Étant donné que je voudrais faire des sauvegardes en différentiel, j'ai essayé de pipe dd, tar et openssl mais sans succès pour le moment.

Pour la situation ci-dessous, j'ai 2 fichier texte nommés: coco et coco2
Voici le test que j'ai mis en oeuvre pour mon backup:

1 - Je fait une archive tar crypté avec openssl:

tar --create --file - --posix --gzip -- coco | openssl enc -e -aes256 -out zzz.tar



2 - Je met à jour zzz.tar:

dd of=zzz.tar | (tar --create --file - --posix --gzip -- coco coco2 | openssl enc -e -aes256 -out temp.tar) && sync



C'est là que le pipe des commandes semble ne pas passer. La ligne de commande se fige indéfiniment et je doit l’interrompre à coup de Ctrl+C.
A savoir que si je passe les commandes en deux parties, création de l'archive, puis dd, tous se passe sans soucis. Donc je problème doit venir du pipe que je fait avec ces 3 commandes.

J'ai déjà fait mes petites recherche mais je n'ai rien trouvé et j'avoue être un peux bloqué scratchhead.gif
Si ça peut aider cette commande sera dans un script .sh.

Merci d'avance smile

Dernière modification par moi4567 (23-02-2017 23:20:28)

Hors ligne

#2 22-02-2017 16:25:27

Watael
Membre
Distrib. : Debian GNU/Linux 8.6 (jessie)
Noyau : Linux 3.16.0-4-amd64
(G)UI : xmonad, i3, dwm
Inscription : 19-01-2017

Re : [Résolu] Pipe dd + tar + openssl

salut,

à quoi sert `dd' ici ?
`of' c'est le fichier destination.

la partie gauche d'un pipe transmet sa sortie standard à l'entrée standard de la commande de la partie droite.

Hors ligne

#3 22-02-2017 18:47:32

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Pipe dd + tar + openssl

moi4567 a écrit :

La ligne de commande se fige indéfiniment


Normal. Tu n'as pas indiqué de fichier d'entrée à dd donc par défaut c'est l'entrée standard, et il attend sagement que tu lui donnes à manger après avoir effacé le contenu du fichier de sortie zzz.tar.

Et qu'entends-tu exactement par "je mets à jour zzz.tar" ? Si je comprends bien, l'expression entre parenthèses ne fait que créer de toutes pièces une nouvelle archive chiffrée temp.tar.

Watael a écrit :

à quoi sert `dd' ici ?


A mon avis à rien, comme souvent.

En ligne

#4 22-02-2017 19:01:15

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : [Résolu] Pipe dd + tar + openssl

Bonjour à tous,

Merci pour vos réponses.

@Watael
Ici dd servait à faire la différentielle entre la nouvelle et l'ancienne archive.
Mais je me suis effectivement planté, j'ai mis l'entrée de la commande dd (if) à droite au lieu de gauche comme tu l'as fait remarquer. Ça ne risquait pas de fonctionner roll
Ça ressemble à ça:

tar --create --file - --posix --gzip -- coco coco2 | openssl enc -e -aes256 -out temp.tar | dd of=zzz.tar && sync



La commande passe correctement seulement voilà, elle ne réagis pas comme je l'espérais.
Le problème ici c'est qu'il y a création d'une archive temp.tar qui encombre (temporairement) le disque.
L'idée serait de pouvoir mettre à jour l'archive zzz.tar (en différentiel) sachant que cette dernière est crypté... scratchhead.gif

@raleur:
Quand je dis mettre à jour j’entends faire une "sauvegarde" en différentielle dans le fichier zzz.tar... Je sais pas si j'ai été très clair.
Concrètement, j'ai mon archive zzz.tar qui contient le fichier coco. La commande que j'essaie de mettre au point permettrait rajouter le fichier coco2 dans l'archive zzz.tar sans la décrypter pour autant.

En tous cas merci, j'ai déjà avancé smile

EDIT: Mea culpa, je me suis encore planté dans mon pipe kernal_panic.gif
La commande correct est:

tar --create --file - --posix --gzip -- coco coco2 | openssl enc -e -aes256 | dd of=zzz.tar && sync



Mon erreur était de déifinir un fichier de sortie pour la commande openssl. Ce dont j'avais besoin c'était de rediriger l'output vers la commande dd pour qu'elle puisse faire la synchronisation.
Tous ça me fait me poser une question... Il n'y a pas création d'un fichier (je ne parle pas de zzz.tar mais de l'input de dd). En partant de là, l'archive est générée et gardé dans la ram ou elle est écrite quelque part sur le disque avant d'être effacée?

Ça peut être gênant si il me reste peux d'espace sur mon disque.

Dernière modification par moi4567 (22-02-2017 19:25:20)

Hors ligne

#5 22-02-2017 19:27:47

raleur
Membre
Inscription : 03-10-2014

Re : [Résolu] Pipe dd + tar + openssl

dd ne sert à rien ici, il suffisait d'écrire "-out zzz.tar" dans les options d'openssl.
Cette commande ne met pas à jour le fichier zzz.tar de façon différentielle mais le recrée entièrement.

En ligne

#6 23-02-2017 23:20:14

moi4567
Membre
Distrib. : Jessie
Noyau : Linux 3.16.0-4-amd64
(G)UI : Gnome 3
Inscription : 22-06-2015

Re : [Résolu] Pipe dd + tar + openssl

Après avoir pas mal cherché, je me suis rendu compte qu'un fichier crypté avec openssl deux fois de la même façon ne donnera pas le même résultat (en terme de bytes).
J'opte donc pour une sauvegarde faite avec rsync dans un "espace"  encfs.

Merci à tous smile

Hors ligne

Pied de page des forums