Transférer un fichier tar de 30 Go d'un serveur distant à un autre - limité par l'espace disque

8

J'ai un fichier tar "Moodle" de 38 Go que je dois transférer de l'ancien serveur (hébergement partagé), que nous pouvons appeler "Serveur A" vers le nouveau serveur (Dédié virtuel), ou "Serveur B". Je suis avec Mediatemple si cela aide.

J'ai déjà tarballé le répertoire et utilisé wget pour le transférer vers le serveur B via SSH, cependant - c'est un paquet minable de 100 Go et j'ai une capacité de disque de 96% - ce qui signifie que je ne peux pas décompresser le fichier sur le serveur B! Existe-t-il un moyen de transférer cet énorme fichier du serveur A vers le serveur B, en préservant les autorisations et avec le moins possible de corruption de fichiers, ce qui ne me fera pas atteindre la limite de disque?

Bien que j'aie passé un bon moment à faire cela jusqu'à présent, je serais prêt à abandonner mon plan initial si quelqu'un pouvait offrir une meilleure idée - et je vous en serais très reconnaissant!

alexbass
la source

Réponses:

21

Ne tarez pas. Utilisez rsync -avpour conserver les autorisations lors du transfert des fichiers. Bien que comme tar, cela ne préserve pas le contexte selinux. Mais je ne considérerais pas cela comme important.

Dennis Kaarsemaker
la source
1
Salut Dennis, merci pour la réponse. Je ne suppose pas que vous pourriez élaborer un peu sur la façon d'utiliser la commande rsync? Ou fournir un article utile? Merci encore
alexbass
1
Un article utile serait la page de manuel rsync :) Mais en résumé: si vous avez un accès ssh de serverb à servera, exécutez ceci sur serverb:rsync -av servera:/path/to/files/to/copy/ /path/to/copy/to
Dennis Kaarsemaker
1
Si vous ne savez pas comment utiliser les commandes fondamentales sur le système d'exploitation que vous utilisez, commencez par l'aide. Sur les machines Unix, c'est souvent quelque chose comme man rsyncoursync --help
mfinni
1
-aimplique -r(et beaucoup plus de drapeaux que les gens oubliaient jusqu'à -ace qu'ils soient ajoutés car "ce sont les drapeaux utiles pour faire des sauvegardes")
Dennis Kaarsemaker
1
Si la sécurité n'est pas un problème (je veux dire que vous faites confiance au réseau entre les deux machines), nc est également une option. Sur le serveur: tar -zc source | nc -l 1313 Sur le client: nc SERVER_IP 1313 | tar -zx
Tsvetomir Dimitrov
12

Vous voulez probablement acheter plus d'espace disque, mais en supposant que non, vous pourriez ...

canalisez l'archive plutôt que de la télécharger.

newserver#  ssh olduser@oldserver "cat /path/to/tarball" | tar xf -

ou si vous n'avez pas accès SSH à votre ancien serveur

newserver# wget -O - http://oldserver/path/to/tarball | tar xf -

ou utilisez rsync comme Dennis l'a dit .

Sois créatif. Il y a d'autres solutions que je ne mentionne pas.

voretaq7
la source
Vous devrez peut-être utiliser l' --numeric-owneroption avant de créer tarball pour vous assurer que le propriétaire et les groupes ne changeront pas. ssh ouser@oserver tar -zcplC /src_path --numeric-owner . | tar -zxpC /dst_path
F.Hauri
@ F.Hauri --numeric-ownerpeut avoir des conséquences involontaires (potentiellement graves) si le schéma UID / GID diffère entre les deux machines. Ce n'est généralement pas un problème dans l'environnement interne, mais le passage d'un «hébergement partagé» à un «virtuel dédié» peut entraîner des problèmes. Vous devez vous attendre à devoir fixer la propriété sur le nouveau serveur en cas d' utilisation tar, cpioet peut - être même rsync.
voretaq7
Oui, vous avez raison, mais ne pas connaître ce type d'option pourrait également avoir le même effet de bordure. Mieux encore: sachez ce que vous faites et ... rtfm ;-)
F. Hauri
... une façon intéressante (filtres) à utiliser (ou non) à faire preuve de créativité : ncOR˝ openssl, sed, gpg, uuencodeet mail(avec soin;), enscript+ lpr+ [porteurs] aviaires ( de fr.wikipedia.org/wiki/IP_over_Avian_Carriers~~number=plural ) + scan+ ocr. .. Mais il y a encore plus ...
F. Hauri