Transférer des fichiers d'un serveur à un autre avec rsync sous Linux photo 1

Rsync : corriger l’erreur “protocol version mismatch — is your shell clean?”

Lors d’une synchronisation avec rsync over SSH, il peut arriver de tomber sur cette erreur :

TERM environment variable not set.
protocol version mismatch -- is your shell clean?
(see the rsync man page for an explanation)
rsync error: protocol incompatibility (code 2)Code language: JavaScript (javascript)

Le message est un peu cryptique, mais la cause est souvent simple : le shell distant affiche du texte au moment où rsync s’attend à parler uniquement avec le processus rsync distant.

Autrement dit, la connexion SSH fonctionne, mais quelque chose pollue le flux : un echo, un message de bienvenue, une commande interactive, un script dans .bashrc, un fortune, un neofetch, un tput, une bannière, ou un message lancé depuis /etc/ssh/sshrc.

Et rsync, lui, n’a aucun humour dans ce cas. Il lit du texte inattendu au lieu du protocole attendu, puis il répond : “is your shell clean?”. Traduction libre : “ton shell bavarde trop”.

Pourquoi rsync affiche “is your shell clean?”

Quand vous lancez une commande comme celle-ci :

rsync -avz ./site/ user@example.com:/var/www/site/Code language: JavaScript (javascript)

rsync ouvre une connexion distante, souvent via SSH, puis démarre un autre processus rsync sur le serveur distant. Les deux processus échangent ensuite des données selon le protocole rsync.

Si le shell distant imprime quelque chose avant le démarrage du rsync distant, le protocole est contaminé. Quelques caractères suffisent à casser l’échange.

La documentation rsync explique que l’erreur “protocol version mismatch — is your shell clean?” vient généralement de scripts de démarrage ou de la couche shell distante qui produisent une sortie parasite sur le flux utilisé par rsync. La méthode de diagnostic recommandée consiste à lancer une commande distante silencieuse et à vérifier qu’elle ne produit aucune sortie.

Lire la suite

CSS : définir la taille d'un champ texte photo

CSS : définir la largeur d’un champ texte proprement

Lorsqu’un champ texte déborde d’un formulaire, d’une barre de recherche ou d’un bloc latéral, on pense souvent que l’attribut HTML size suffit à régler le problème.

En pratique, ce n’est pas le bon réflexe. Pour contrôler proprement la largeur d’un champ texte, il faut utiliser CSS : width, max-width, box-sizing, et parfois clamp() pour un comportement responsive.

L’attribut HTML size définit le nombre de caractères visibles dans certains champs input. Il ne remplace pas une largeur CSS fiable dans une interface moderne. MDN précise que, pour un élément input, size correspond au nombre de caractères visibles pendant l’édition de la valeur.

Le problème : un champ texte trop large

Imaginons un champ de recherche placé dans une zone étroite : une sidebar, un menu mobile, un header, un widget WordPress ou un petit formulaire d’inscription.

Le HTML ressemble souvent à ceci :

<label for="recherche">Recherche</label>
<input
    id="recherche"
    name="recherche"
    type="search"
    size="15"
>Code language: HTML, XML (xml)

On pourrait croire que size="15" force le champ à mesurer exactement quinze caractères de large. Pourtant, selon la police, le navigateur, les styles hérités, le padding, la bordure et le contexte du layout, le résultat peut varier.

Et surtout, size ne règle pas le vrai problème : intégrer le champ dans une mise en page CSS.

Lire la suite

sdcard-empty-trash

Récupérer l’espace disque d’une carte SD

Les cartes SD et microSD sont partout : appareils photo, caméras, drones, smartphones, Raspberry Pi, consoles portables, autoradios, laptops et lecteurs externes. Elles sont petites, pratiques, faciles à transporter, et leurs capacités ont énormément augmenté.

Pourtant, il arrive un problème assez agaçant : vous supprimez des fichiers d’une carte SD, mais l’espace libre n’augmente pas. La carte semble toujours pleine, comme si les fichiers étaient encore là.

Dans la plupart des cas, ils sont effectivement encore là. Ils ont simplement été déplacés dans une corbeille cachée sur la carte.

Pourquoi la carte SD reste pleine après suppression des fichiers ?

Quand vous supprimez un fichier depuis un gestionnaire de fichiers, le système ne l’efface pas forcément immédiatement. Très souvent, il le déplace dans une corbeille.

Sur le disque interne de l’ordinateur, c’est généralement ce que l’on veut. Cela permet de récupérer un fichier supprimé par erreur. En revanche, sur une carte SD, une clé USB ou un disque externe, ce comportement peut surprendre.

Le fichier disparaît bien du dossier visible, mais il reste stocké dans un dossier caché à la racine du volume. Résultat : la carte SD ne libère pas l’espace attendu.

Selon le système utilisé, vous pouvez retrouver des dossiers cachés comme :

  • .Trash-1000 sous Linux ;
  • .Trashes sous macOS ;
  • $RECYCLE.BIN sous Windows ;
  • .fseventsd, .Spotlight-V100 ou ._* sur les volumes utilisés avec macOS.

Le dossier exact dépend du système, du format de la carte et de l’utilisateur qui a supprimé les fichiers.

Lire la suite