OVH Cloud OVH Cloud

scp d'un fifo ne marche pas ?

6 réponses
Avatar
cedric
Bonjour.

Je fait un tar dans un fifo :

mkfifo toto
tar -c repertoire -f fifo &

puis je fait :

scp toto machin@titi.com:

et scp me dis :

toto: not a regular file

et quitte, cassant le pipe.

Or lorsque j'envoie pas ftp, oubien lorsque je fait simplement
scp toto titi
ca fonctionne très bien.

Pourquoi donc ?

6 réponses

Avatar
Etienne de Tocqueville
cedric writes:

mkfifo toto
tar -c repertoire -f toto &
scp toto :


Je n'ai pas essayé, mais un « ssh "cat >toto" <toto » (ou un
« ssh "cat toto" >toto » selon le sens) ne conviendrait-il pas ?

Cela dit, tant qu'a faire, autant utiliser un pipe classique :

tar -c repertoire -f - | ssh "cat >toto"

Sinon, je ne connaissais pas "mkfifo", mais je ne vois pas trop la
différence avec "mknod p"...

Avatar
cedric
Etienne de Tocqueville wrote:
Je n'ai pas essayé, mais un « ssh "cat >toto" <toto » (ou un
« ssh "cat toto" >toto » selon le sens) ne conviendrait-il pas ?


Si, tout à fait. Je n'ai pas l'habitude d'utiliser ssh.

Sinon, je ne connaissais pas "mkfifo", mais je ne vois pas trop la
différence avec "mknod p"...


La différence, c'est que je trouve le premier plus facile à mémoriser.

Merci pour tout!

Avatar
Nicolas George
Etienne de Tocqueville wrote in message
:
Sinon, je ne connaissais pas "mkfifo", mais je ne vois pas trop la
différence avec "mknod p"...


La commande mkfifo est standard (Single Unix), et porte le même nom que la
fonction associée. Single Unix définit la fonction mknod, avec différentes
options, dont la création de FIFO (la seule option portable, d'ailleurs),
mais pas la commande correspondante.

En pratique, ça revient au même.

Avatar
Christian CAMIER
Bonjour,

Dans le cadre de l'exemple donné, pourquoi ne pas essayer tout
simplement faire un :

tar cf - repertoire | ssh "cat > toto"

En effet un fifo est un fchier ayant un comportement spécial et qui
pourrait être bloquant lors d'un transfert massif de données type :

scp -r repertoire :dir

Pour éviter ce type de bloquage, scp n'accepte pas de transferer les
fichiers qui ne sont pas réguliers.

cedric wrote:
Bonjour.

Je fait un tar dans un fifo :

mkfifo toto
tar -c repertoire -f fifo &

puis je fait :

scp toto :

et scp me dis :

toto: not a regular file

et quitte, cassant le pipe.

Or lorsque j'envoie pas ftp, oubien lorsque je fait simplement
scp toto titi
ca fonctionne très bien.

Pourquoi donc ?


Avatar
cedric
Christian CAMIER wrote:
En effet un fifo est un fchier ayant un comportement spécial et qui
pourrait être bloquant lors d'un transfert massif de données type :

scp -r repertoire :dir


Moui il pourrait être bloquant mais c'est ce à quoi servent les fifo
après tout. N'est-ce pas un peu arbitraire ?

Avatar
Christian CAMIER
cedric wrote:

Moui il pourrait être bloquant mais c'est ce à quoi servent les fifo
après tout. N'est-ce pas un peu arbitraire ?
Tout choix est arbitraire, il est fait en fonction d'une description

d'un besoin elle même un choix, donc arbitraire. De plus, su tu prends
en compte l'exemple donné dan smon premier post, tu verra qu'il y a
toujours possibilité de faire autrement.

Mainetnant, si tu tiens à tout prix utiliser scp sur un fifo, tu peux
toujours reprendre les sources et corriger pour qu'il accepte les fifo
en entrée.