Dxxcorp’s Blog

La boîte à outils du web …
  • rss
  • Accueil
  • Paysages
  • Recherche
  • Contact
  • E-mail

Le copier-coller binaire du très très pauvre

Gab | 4 mars 2008

Le contexte est le suivant: depuis mon poste je bosse sur un serveur qui est ‘logiquement’ loin d’un autre serveur. Par ‘logiquement’, j’entends: pas dans le même réseau, y a des firewalls qui séparent, bref faire un ssh entre les deux est un poil compliqué, quoique pas infaisable, mais ne se fait pas sans un rebond par une ou plusieurs autres machines.

Le problème est de transférer un fichier .patch du serveur 1 au serveur 2. L’idée idiote de base est, puisque depuis mon poste je suis connecté aux deux, de faire un bête copier/coller à la souris d’une fenêtre à l’autre. Oui, mon fichier .patch fait moins d’une page écran.

Sauf que les .patch sont assez sensible à l’indentation et au fait que des espaces soient des espaces et pas des tabulations, et vice-versa.

D’où une technique rigolote inventée par mes soins, et qui peut servir à copier/coller des fichiers binaires assez petit, moyennant une petite contrainte.

Supposons que mon fichier s’appelle plop.patch: sur le serveur 1:

gzip plop.patch
uuencode plop.patch.gz < plop.patch.gz

Là, ça va afficher à l’écran plein de choses pas belles.

Sur le serveur 2:

uudecode

Et recopiez à la souris ce que vous a craché le serveur 1.

Et hop! magique, vous vous retrouvez avec un fichier plop.patch.gz sur le serveur 2 :)

Juste pour le fun, un exemple:

uuencode dxx.png < dxx.png

(résultat là: dxx.png.txt parce que wordpress c’est vraiment la merde pour coller du texte non formaté)

Vous l’aurez deviné, la contrainte est que ce que crache uuencode ne doit pas faire plus d’une page écran, sinon c’est un poil fastidieux.

Pour info: uuencode veut dire ‘Unix to Unix encode’. C’est un algorithme qui permet d’encoder sur 7 bits des données binaires sur 8 bits. Il était utilisé dans les cas où les données binaires risquaient de se faire interpréter (cf uucp). Le résultat le plus ‘visible’ est que tout ce que pond uuencode est affichable :)

Commentaires
Pas de Commentaires »
Catégories
Non classé
Tags
astuce, Lit Nuxe
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Un lock en shell

Gab | 29 février 2008

Oui je sais, tout le monde sait faire, mais ce que je propose est un truc tout couillon et quasi automatique.

C’est venu du problème suivant: je récupère de gros fichiers de chez un collègue via rsync. Je le fais une fois par jour (via cron), et il se peut que la synchro prenne plus d’une journée. Et j’ai pas envie que mon script de synchro se lance plusieurs fois. C’est donc un problème d’instance: je ne veux qu’une instance de mon script à un moment donné.

Voilà la fonction adequat, avé les commentaires:

# Fournit un mécanisme de lock: empêche plusieurs instances

# de tourner en même temps.

# Et efface le fichier de lock en sortant

# Utilisation:

# lockme fichier_de_lock

lockme(){

# Fichier de lock: fichier passé en paramètre

lock=$1

# s'il existe, c'est qu'une instance du programme tourne, donc on sort, non sans avoir annoncé le numéro du process qui tournait (des qu'on voudrait le tuer :D )

if [ -e $lock ]

then

echo "An instance is running (`cat $lock`)." && exit

else

# sinon, je crée le fichier en y mettant le pid du process courant

echo "$$" > $lock

# Et là, c'est la ruse: je positionne un trap qui dit que quand le programme sort (le '0' à la fin) il efface le lock. Magique :)

trap "echo '(cleaning)' ; rm -f $lock" 0

fi

}

Exemple complet? Exemple complet.

touch test.sh

chmod +x test.sh

vi test.sh

#!/bin/bash

lockme(){

lock=$1

if [ -e $lock ]

then

echo "An instance is running (`cat $lock`)." && exit

else

echo "$$" > $lock

trap "echo '(cleaning)' ; rm -f $lock"

fi

}

# notez que le fichier de lock NE DOIT PAS être un truc du genre `mktemp -u`, sinon plusieurs instances tourneront inévitablement!

lock=/tmp/zetestlock

lockme $lock

sleep 1000

Puis faites:

./test.sh &

./test.sh

An instance is running (7937).

Yeah!

PS: Wordpress c’est de la m…. pour l’insertion de code.

Commentaires
Pas de Commentaires »
Catégories
Non classé
Tags
astuce, Lit Nuxe
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Emblèmes

Gab | 26 novembre 2007

Comme moi vous regardez vos divx sur l’ordi, comme moi vous avez un répertoire ‘A écouter’ dans vos mp3, et comme moi vous êtes bordélique…

Alors comme moi vous allez utiliser les emblèmes de Gnome :) Lire la suite »

Commentaires
Pas de Commentaires »
Catégories
Non classé
Tags
astuce, Lit Nuxe
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Transcoder du .flv, avec une cerise

Gab | 31 août 2007

Pour commencer, je vais vous présenter un truc que j’ai fait il y a peu de temps. C’est tout simple, vous allez voir. Le but est de transcoder une vidéo de .flv (format propriétaire de pas trop mauvaise qualité) en .avi.

Pour l’exemple, on va prendre la vidéo gagnante du concours de vidéo-clip ‘Innocence’ de Björk. Perso, j’adore le vidéo-clip donc j’ai voulu l’avoir chez moi. Mais j’aime pas les formats propriétaires, donc pas de .flv :)

Primo: Télécharger la vidéo. Lire la suite »

Commentaires
2 Commentaires »
Catégories
Non classé
Tags
Aile-Aile, Lit Nuxe, Son, Vidéo
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Salut monde!

Gab |

A.k.a.: hello world ;)

Doudou m’ayant fait de la place sur son blog, faut au moins que je me présente: Gab. Et c’est moi qui vais vous fournir les astuces sous Linux (Lit Nuxe) et les L(ogiciels) L(ibres) (Aile-Aile).

Lire la suite »

Commentaires
2 Commentaires »
Catégories
Non classé
Tags
Aile-Aile, Lit Nuxe
Flux rss des commentaires Flux rss des commentaires
Trackback Trackback

Mes Paysages

Andes - 0078.JPG

RSS Vie de Merde

    Aujourd'hui, à la pause café, mes collègues ont pris un malin plaisir à se moquer des gens qui ont leur gilet jaune sur le siège passager de leur voiture : "Ce sont des beaufs !" On a vraiment bien rigolé, mais aussitôt le café terminé, le beauf que je suis a couru discrètement à sa voiture. VDM

Tags

Actu Aile-Aile Ajouter un tag astuce audigy Bizzaaarreee développement Dit Vert download energie Foot football google Jeux linux lirc Lit Nuxe mount Musique Non classé Oueb Ouinedose Photo Pub Son Téléchargement torrent Un Faux uuid Vidéo

Articles récents

  • Ouverture d’un nouveau Blog : L’actu Du Foot
  • Carte son, zappette et enceintes
  • Monter ses disques avec des uuid
  • Faciliter l’utilisation des .torrent en les transformant en .exe
  • La fin d’une époque sympa : Elite Team

Commentaires récents

  • Da Kool Blog dans Carte son, zappette et enceintes
  • dxxcorp dans Faciliter l’utilisation des .torrent en les transformant en .exe
  • laure manaudou dans Exclusif, de nouvelles photos de Laure Manaudou à Poil !
  • dxxcorp dans Convertissez vos fichiers en les envoyant par mail
  • dxxcorp dans Les plus beaux paysages du monde à domicile !


Archives

  • juillet 2008 (1)
  • mai 2008 (2)
  • avril 2008 (1)
  • mars 2008 (4)
  • février 2008 (3)
  • janvier 2008 (13)
  • décembre 2007 (1)
  • novembre 2007 (3)
  • octobre 2007 (5)
  • septembre 2007 (21)
  • août 2007 (7)

Caux Pain

  • Axel’s Blog
  • Google est ton ami
  • Une page au hasard ?

Méta

  • Inscription
  • Connexion
  • Articles RSS
  • RSS des commentaires
  • WordPress.org
rss Flux rss des commentaires valid xhtml 1.1 design by jide powered by Wordpress get firefox