Tar+reseau

Bonjour,

Je souhaite faire un ‘tar’ de mon home sur mon serveur de sauvegarde local. accès impossible !!

[quote]$tar zcvf - /home/toto | ssh -pxxxxx 192.168.1.xxxx:/home/totosauvegarde
la compression se passe bien puis:
pseudo-terminal will not be allocated because stdin is not a terminal.
ssh: could not resolve hostname 192.168.1.xxx:/home/totosauvegarde: Name or service not know

Je pense que tu mélanges la syntaxe de ssh et scp.

Ah bon !!
Cette commande fonctionne : $ ssh 192.168.1.xxx -pxxxx
Je me suis basé dessus pour envoyer la copie ‘tar’. Mais je ne sais pas où indiquer le port ?

Le problème n’est pas le port mais la syntaxe 192.168.1.xxxx:/home/totosauvegarde qui est propre à scp et non ssh.

[quote=“PascalHambourg, post:2, topic:70262, full:true”]
Je pense que tu mélanges la syntaxe de ssh et scp.
[/quote]Même avec scp, je doute aussi qu’un utilisateur autre que root puisse créer un fichier dans le répertoire /home/

Bon alors, le temps presse et j’ai repris mon ‘rsync’ que je maîtrise mieux : [quote]rsync -av -e ‘ssh -pXXXX’ /home/toto toto@192.168.1.xxx:/home/[/quote]
Mais çà ne me donne pas la solution avec tar !!!
J’y retourne :slight_smile:

Et en faisant un tar puis ton scp en sudo?

Ouais, j’ai essayé avec le compte root à la source mais ya un truc dans scp qui fonctionne pas !

[quote]# tar -zcvf - /home/toto/outRec/toto | scp -P xxxx 192.168.1.xxx:/home/toto/Essai1TransfTar
tar: Suppression de « / » au début des noms des membres
/home/toto
usage: scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 … [[user@]host2:]file2

scp attend deux arguments, la source et la destination. Ta commande n’en contient qu’un.

[quote]toto@toto-ubuntu:~/outRec/Toto$ tar -zcvf essai1.tar.gz /home/toto/outRec/Toto | scp -P xxxx essai1.tar.gz toto@192.168.1.xxx:/home/toto
tar: Suppression de « / » au début des noms des membres
The authenticity of host ‘[192.168.1.xxx]:xxxx ([192.168.1.xxx]:xxxx)’ can’t be established.
ECDSA key fingerprint is 1d:88:ee:ef:e5:xxxxxxxxxxxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/home/toto/.ssh/known_hosts).
toto@192.168.1.xxx’s password: tar: /home/toto/outRec/Toto/essai1.tar.gz : fichier modifié pendant sa lecture

scp: /home/toto/essai1.tar.gz: Permission denied[/quote]

L’utilisateur 1 (machine 1) ne peut pas écrire sur le serveur ??

Trouvé :slight_smile:
J’ai créé un répertoire toto-transfert-tar sur le serveur. Je luiai donné les droits en écriture ‘chmod 775’ et j’ai modifié le groupe ‘chown root:toto toto-tarnsfert-tar’. Du coup la commande suivante fonctionne

A quoi sert le pipe (|) entre les deux commandes ?

Il lui sert à faire le tar sur le PC A puis d’envoyer le tar via SCP au PC 2

Non puisque cela passe par un fichier essai1.tar.gz.

A l’origine, il servait à faire le ‘tar’ avant. Mais Pascal a peut-être raison.

J’ai était obligé de modifier ma syntaxe pour faire apparaître le fichier source que réclame scp. Du coup je suis obligé de le créer avant !

Quand j’étais admin… je faisais un script qui créé le tar avant, puis le scp envoyait le fichier vers mon Serveur distant

Pas besoin de passer par un fichier intermédiaire. L’idée est d’envoyer la sortie de tar dans stdout -> tuyau -> ssh machineArchive dd of=/path/to/dest.tar

fp2x@drhpcmss:/$ ssh imas id
uid=1000(fp2x) gid=1000(fp2x) groupes=1000(fp2x),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),108(netdev)
fp2x@drhpcmss:/$ sudo tar cf - etc | ssh imas dd of=/tmp/etc.tar
16280+0 enregistrements lus
16280+0 enregistrements écrits
8335360 octets (8,3 MB) copiés, 3,44703 s, 2,4 MB/s
fp2x@drhpcmss:/$ ssh imas ls -lApst /tmp/etc.tar
8140 -rw-r--r-- 1 fp2x fp2x 8335360 juil.  8 15:54 /tmp/etc.tar
fp2x@drhpcmss:/$

Si on ne précise pas le paramètre if=.. dans la commande dd c’est l"entrée standard qui est utilisée.

Cordialement,
Regards,
Mit freundlichen Grüssen,
مع تحياتي الخالصة

F. Petitjean

« On ne perd pas son temps en aiguisant ses outils. »
Proverbe français

Peut-on faire la même chose avec scp au lieu de ssh en spécifiant /dev/stdin comme fichier source ?

Il semblerait que non

fp2x@drhpcmss:/$ sudo tar cf - etc | scp - imas:/tmp/etc_2.tar
-: No such file or directory
fp2x@drhpcmss:/$ sudo tar cf - etc | scp /dev/stdin  imas:/tmp/etc_2.tar
/dev/stdin: not a regular file
fp2x@drhpcmss:/$

scp et rsync veulent des vrais fichiers :slight_smile:

Dédé est votre ami. Allez Dédé !

Cordialement,
Regards,
Mit freundlichen Grüssen,
مع تحياتي الخالصة

F. Petitjean
« Celui qui, parti de rien, n’est arrivé nulle part n’a de merci à dire à personne !! »
Pierre Dac