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 06/11/2006, à 15:39

Eltche

sauvegarde tar par SSH

Bonjour,
Je m'initie à la sauvegarde distante par ssh. Pour poser contexte, j'ai un serveur de sauvegardes et un poste à sauvegarder.

J'ai trouvé une commande

tar -cvf - /home | ssh username@IPduPosteaSauvegarder "cat > sauvegarde.tar"

Cette commande est lancé depuis le serveur de sauvegarde. Seulement elle créée le fichier sauvegarde.tar sur le poste client alors que je souhaiterais le créer sur le serveur de sauvegarde...

Second point, vu que je n'ai pas élaboré cette commande, je ne la comprend pas entierement.
Je ne comprend pas le tiret entre tar -cvf et /home

tar -cvf - /home ...

De plus ,je comprend que la sortie standard de - cat - est renvoyée vers sauvegarde.tar mais je ne voie pas ce que cette commande à sur son entrée standard. Enfin si, c'est forcement le /home mais comment l'expliquer ?

Et dernier point je ne voie pas ce que peux retourner la commande tar à la commande ssh par le biais du pipe (|)

Si vous pouvez m'éclairer sur un ou plusieurs points je vous en serait reconnaissant

Dernière modification par Eltche (Le 06/11/2006, à 15:47)

Hors ligne

#2 Le 06/11/2006, à 16:45

luc Milland

Re : sauvegarde tar par SSH

Salut,
avant tout, je trouve cette commande un peu à la "one again", personellement...c'est joli, mais c'est tendu du slip de piper la sortie d'une commande sur du ssh, en cas de déco, tout ça...Et puis c'est même pas compressé, c'est dommage.
Sans faire plus compliqué :

tar -xcvf home.tar.gz /home  # (on compresse, tant qu'on y est)

puis

scp home.tar.gz username@IPduPosteaSauvegarder:/chemin/de/destination/

scp est l'outil de copie via ssh.

Mais le mieux, c'est d'utiliser rsync via ssh (http://samba.anu.edu.au/rsync/). Là tu feras de la vraie backup incrémentale et tout.
Pour un usage plus facile, y'a backuppc : http://backuppc.sourceforge.net/  et http://www.klipz.fr/tutoriel_backuppc.html. Ça utilise rsync via ssh (et d'autre chose encore, genre samba pour les postes windows) et tu as une belle interface web, la possibilité de garder des archives un temps déterminé, etc...

Enfin, pour tes questions :

le tiret dans tar indique qu'au lieu de créer un fichier, on envoie sur la sortie standard, laquelle est pipée vers ssh, qui en fait un cat sur la machine distante.


http://www.praksys.org

Hors ligne

#3 Le 06/11/2006, à 16:52

Eltche

Re : sauvegarde tar par SSH

J'ai plus d'infos sur ce fameux tiret

tiré de http://abs.traduc.org/abs-4.1-fr/ch03.html#dashref2

[...]le signe « - » n'est pas en lui-même un opérateur Bash, mais plutôt une option reconnue par certains utilitaires UNIX qui écrivent dans stdout ou lisent dans stdin, tels que tar, cat, etc.
bash$ echo "quoiquecesoit" | cat -
quoiquecesoit

Lorsqu'un nom de fichier est attendu, un - redirige la sortie vers stdout (vous pouvez le rencontrer avec tar cf), ou accepte une entrée de stdin, plutôt que d'un fichier. C'est une méthode pour utiliser un outil principalement destiné à manipuler des fichiers comme filtre dans un tube.[...]

Donc pour ma commande précedente:

tar -cvf - /home | ssh username@IPduPosteaSauvegarder "cat > sauvegarde.tar"

cela signifie que tar crée une archive vers stdout (la sortie standard de cat). La sortie standard est envoyé à la commande ssh ou plus exactement, sur l'entrée stdin de cat par l'intermédiare de ssh.

Pfff...

Ceci dit je n'ai pas résolue mon problème de sauvegarde sad

Hors ligne

#4 Le 06/11/2006, à 17:04

luc Milland

Re : sauvegarde tar par SSH

euh, t'as lu ma réponse ?
Sinon, si tu tiens à utiliser cette ligne, il suffit que tu l'exécute sur le poste à sauvegarder, à destination de ton serveur de sauvegarde, non ?


http://www.praksys.org

Hors ligne

#5 Le 06/11/2006, à 17:27

Eltche

Re : sauvegarde tar par SSH

avant tout, je trouve cette commande un peu à la "one again", personellement...c'est joli, mais c'est tendu du slip de piper la sortie d'une commande sur du ssh, en cas de déco, tout ça...Et puis c'est même pas compressé, c'est dommage.

Tu as parfaitement raison sur "a la one again" lol, mais pour l'instant je m'essaie aux bases. C'est sur que cette commande est foireuse pour de bonne sauvegarde. Mais avant de faire des copies incrementales je souhaite savoir faire le B.A.BA. Une bonne vieille archive tar même si c'est pas ce qu'il y a de mieux maitenant d'après ce que j'ai cru voir (dar?)

Pour le principe, je souhaite que ce soit le serveur de sauvegardes qui initie le script de sauvegarde et qu'il rapatrie la sauvegarde chez lui.
Je ne souhaite pas faire une archive sur le poste client car je n'ai pas assez de place sur le disque

Merci pour ta réponse a propos du tiret. Je venais juste de poster ma réponse...

Dernière modification par Eltche (Le 06/11/2006, à 17:29)

Hors ligne

#6 Le 06/11/2006, à 17:48

luc Milland

Re : sauvegarde tar par SSH

Pour le principe, je souhaite que ce soit le serveur de sauvegardes qui initie le script de sauvegarde et qu'il rapatrie la sauvegarde chez lui.

Alors t'emmerde pas la vie :
1) Fais en sorte de ne pas avoir besoin de mot de passe pour ssh :

ssh-keygen -t dsa # pas de passphrase, pour assurer le login automatique. Faut faire ça sous le nom du user qui exécute le script : celui qui veut se connecter à l'hôte à sauvegarder.

ssh-copy-id -i de_la_clé_publique username@hote_a_backuper # comme ça le user sur cet hôte connait l'empreinte de ta clé, plus besoin de password.

2) Tu fais ton script :

#!/bin/bash

# oneAgainBackup : une backup à l'arrache

ssh username@hote_a_backuper 'tar xvzf home.tar.gz /home'
scp username@hote_a_backuper:~/home.tar.gz /var/backups/mes_backups/

Pour faire les choses propres quand-même wink, copie ce script dans /usr/local/bin, rend le exécutable, et crée un fichier /etc/cron.d/oneAgainBackup :

# se lance tous les jours à 22 heures avec l'utilisateur [i]user[/i] 

0 22 * * * [i]user[/i]  usr/local/bin/oneAgainBackup

Voilà, en faisant gaffe aux droits, tout ça, ça devrait coller.

(mais rsync c'est pas si compliqué et c'est bien, hein, si si)


http://www.praksys.org

Hors ligne

#7 Le 06/11/2006, à 18:09

sksbir

Re : sauvegarde tar par SSH

Eltche a écrit :

Bonjour,
Je m'initie à la sauvegarde distante par ssh. Pour poser contexte, j'ai un serveur de sauvegardes et un poste à sauvegarder.

J'ai trouvé une commande

tar -cvf - /home | ssh username@IPduPosteaSauvegarder "cat > sauvegarde.tar"

Cette commande est lancé depuis le serveur de sauvegarde. Seulement elle créée le fichier sauvegarde.tar sur le poste client alors que je souhaiterais le créer sur le serveur de sauvegarde...

Pour répondre à ce point , c'est parce que malgré les " que tu as mis, le > est interprété localement.

Pour que ça marche à distance, il faut annuler l'interprétation du > par le shell local.

Concrètement : tar -cvf - /home | ssh username@IPduPosteaSauvegarder cat \> sauvegarde.tar

Hors ligne

#8 Le 18/01/2007, à 15:28

yohann

Re : sauvegarde tar par SSH

cool
merci pour ce poste ca tombe sur ce que je voulais faire.

plus qu'a ajouter un peu de rsync pour pas retélécharger tout le tmps 90% la même chose


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#9 Le 04/07/2008, à 21:45

ndouly

Re : sauvegarde tar par SSH

Salut à vous!

Dit moi, comment pourrais-je reprendre tout ça pour l'envoyer sur bande? hmm

Moi je voudrais faire ma sauvegarde sur bande (/dev/nrst15). Faut que j'ai du mal à reprendre la commande avec comme destination le lecteur de bande.

Je précise que le lecteur de bande est sur une machine distante et que les fichiers à sauvegarder son en  local.

Alors si quelqu'un peut m'éclaircir les idées avec la bonne syntaxe, je dormirais désormais tranquille. cool

Merci d'avance !!

#10 Le 05/07/2008, à 11:37

yohann

Re : sauvegarde tar par SSH

pour commencer un petit historique:
tar signifie justement tape archive recorder
autrment dit le programme etait fait a la base pour enregistrer sur une bande
donc voila le code a utiliser depuis l'ordit qui a le lecteur de bande

tar cv rep/a/enregistrer

on utilise pas l'option -f qui dit a tar d'utiliser un fichier au lieu du lecteur de bande


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#11 Le 07/07/2008, à 12:07

ndouly

Re : sauvegarde tar par SSH

Bonjour yohann,

Et déjà merci pour ta réponse !!

Partant donc du principe de la commande "tar cv /rep/fichiers" est-il possible de la completer comme suite:

tar cvf /rep/fichiers-a-sauvegarder |ssh root@ipserveurdistant:/dev/nrst15

où ipserveurdistant est le serveur de sauvegarde avec comme lecteur de bande "/dev/nrst15".

Bien sûr les fichiers à sauvegarder son en local. J'ai pensé à copier les fichiers sur le système distant mais pas assez d'espace. Du coup je voudrais directement les envoyer sur le lecteur de bande, qui contient déjà un enregistrement (représentant environ 2% d'espace utiliser sur la bande).

Ainsi si j'ai la bonne commande de sauvegarde distant, je complèterais mon script avec optimisation de mes sauvegardes (sur une seule bande). cool

Merci toute informations.

#12 Le 07/07/2008, à 12:22

yohann

Re : sauvegarde tar par SSH

ça peut passer mais je suis pas certain, faudrait tester, et lire tout le man de tar et ssh peut aider, mais j' ai pas trop le temps.
bonne chance néanmoins


j.vachez, le génie du net | Soirées jeux sur Lyon | 441
++++++++++[>+++++++>++++++++++>+++<<<-]>++.>+.+++++++
..+++.>++.<<+++++++++++++++.>.+++.------.--------.>+.

Hors ligne

#13 Le 07/07/2008, à 14:12

ndouly

Re : sauvegarde tar par SSH

J'ai tout essayé mais rien !!

tar cvf /dev/nrst15 |ssh user@ipserverdistant "ls /rep/fichiers.gz"

cherche désespérément syntaxe correcte sad

#14 Le 08/07/2008, à 23:47

Eltche

Re : sauvegarde tar par SSH

ndouly a écrit :

J'ai tout essayé mais rien !!

tar cvf /dev/nrst15 |ssh user@ipserverdistant "ls /rep/fichiers.gz"

cherche désespérément syntaxe correcte sad

bonjour

essaie quelque chose comme (je suis pas sur de l'exactitude de la commande, mais l'esprit est là)

tar - files |ssh user@ipserverdistant "( tar cv -)"

Le tiret de la commande tar permet d'envoyer le flux sur la sortie standard sur le pipe. Le flux est  réutilisé par l'entrée standart de la 2eme commande tar qui enregistre du le lecteur.

Perso, je pense que c'est risqué d'enregistré en  direct sur le lecteur via ssh. Il semble me rapeller que les lecteurs ont besoin d'un flux assez régulier ce qui n'est pas forcement le cas via ssh. Il vaudrait mieux investir pour un dique dur plus consequent sur le serveur pour faire un rsync via ssh et ensuite enregistrer via tar  sur le lecteur de bande

Hors ligne

#15 Le 29/06/2010, à 12:15

jadjay

Re : sauvegarde tar par SSH

Arf le top c'est le PULL !

Comme ça toute vos sauvegarde son sur un serveur qui n'est pas accessible via ssh en externe (pirate inside!) et toute vos commandes de sauvegardes sont sur une seule table cron:

ssh user@host "sudo tar czf - /" | cat > /var/backups/sauvegarde_host_$(date +\%F).tar.gz


[Portable] Compaq Presario C750ef - DualCore - Intel 965GM - BCM94311MCG - 2Go - 160Go - Ubuntu x86 Lucid Lynx
[Desktop] Intel dual Core - Intel VGA - 2Go Ram - 2x500Go DD - Ubuntu Lucid Lynx amd64
-----
"J'critique pas le coté farce, mais pour le fair-play y'aurait quand même à  dire." Antonio (Ventura) dans Ne Nous Fâchons Pas

Hors ligne

#16 Le 20/01/2011, à 21:37

grobs

Re : sauvegarde tar par SSH

Déterrage => OK

Pourquoi ne pas utiliser simplement les options distantes de tar ???

tar -cvzf root@unemachine:/le/path/backup.tar.gz /

C'est efficace et prévu dans tar alors pourquoi ne pas l'utiliser ?


"Mieux vaut vérifier que les enceintes sont bien branchées avant de recompiler un noyau". (vieux proverbe de Debianneux)

Hors ligne