Blog de dada

DevOps, bidouilleur et routard plein de logiciels libres

Attention, ce billet se traine depuis plus de 3 mois. Les informations qu'il contient ne sont peut-être plus à jour.


Astuces du dimanche #4

Rédigé par dada / / 2 commentaires


Quatrième version des astuces du dimanche ! Je dois avouer que j'aime bien cette formule simple et rapide pour partager des astuces peu révolutionnaires mais qu'il fait bon rappeler de temps en temps.

Au programme de cette semaine : partager des fichiers en réseau sans se prendre la tête et comment créer une archive de sauvegarde (pour un backup, par exemple) et vous l'envoyer alors que vous n'avez pas de place sur le disque dur.

Partager ses fichiers via python

Sans clés USB ou système de partage en réseau, il est bien difficile de partager un fichier avec le PC du voisin. La solution suivante permet de se servir de python pour créer un serveur web simple. Il sera accessible depuis votre adresse IP et le port spécifié.

  • Avec python 2.7 ou plus
# python -m SimpleHTTPServer 80
  • Avec python 3 ou plus
# python -m http.server 80
Lancez l'une de ces commandes depuis un terminal ouvert là où se trouve le ficher à transférer, donnez votre IP et le port à votre pote/collègue et le tour est joué. Attention tout de même à ne pas lancer cette commande depuis votre /home/ sous peine de partager l’intégralité de votre vie privée ;-)

Création et envoie d'archive par le réseau

C'est un truc que je rencontre souvent au boulot : faut faire un gros tar.gz de sauvegarde et le placer bien au chaud sur une autre machine mais pas moyen d'y arriver avec l'espace disque disponible.
Pas de panique, la commande tar associée à ssh, à un pipe et cat permette de faire des miracles.

ssh -n ServeurDistant -p PORT 'tar zcvf - toto.txt' | cat - > toto.tar.gz

Avec ça, depuis votre terminal, vous récupérez le contenu de toto.txt, que vous archivez simplement sur votre disque dur local. Celui du serveur distant n'est plus utilisé : terminé le problème de place !

Bon dimanche ! :)

2 commentaires

#1  - koocotte a dit :

Je ne vois pas trop à quoi sert le "cat -" dans la seconde commande

Répondre
#2  - Elessar a dit :

Pour info, GNU tar envoie par défaut sur la sortie standard, à moins qu'on ne lui précise un fichier à écrire avec l'option "-f" : préciser "-f -" ne sert donc à rien du tout !

Pareil pour cat : par défaut, il écrit ce qu'il reçoit sur son entrée standard, à moins qu'on ne lui donne une liste de fichiers à lire : il est donc inutile de préciser "-" comme fichier d'entrée ! Ceci étant, s'il s'agit de récupérer l'archive en local, cat est franchement inutile, autant rediriger la sortie de SSH.

Ensuite, SSH compressant les données, inutile de demander à tar de le faire

Et finalement, l'option verbose de tar n'est pas franchement utile pour ce genre d'usage.

Compte tenu de ces deux remarques, tout ça peut être simplifié en :
ssh ServeurDistant -p PORT 'tar -c toto.txt' > toto.tar.gz

Répondre

Fil RSS des commentaires de cet article

Écrire un commentaire

Quelle est le dernier caractère du mot lxhepc ?