Activer rsh pour accélérer rsync ou zfs sur OS X

Activer rsh pour accélérer rsync ou zfs sur OS X

Pas forcément besoin dans un réseau local de chiffrer les communications lorsque l’on fait une sauvegarde. Par exemple, je recopie entre plusieurs machines tous mes fichiers de photos, musiques, vidéos avec rsync.

rsync s’appuie sur rsh/rlogin ou sur ssh pour assurer les échanges entre machines. Aujourd’hui, on préfère ssh pour des questions de sécurité.

Toutefois, si la sécurité n’est pas nécessaire et qu’on a un besoin de performance, on peut utiliser rsh/rlogin mais voilà rsh/rlogin n’est pas actif sur OS X.

J’utilise zfs comme système de fichiers et son système de snapshot pour mes sauvegardes incrémentales. Entre machines, l’utilisation de rsh/rlogin me permet d’accélérer nettement l’archivage entre machines.

Voici la recette pour l’activer et le lancer :

conversion des fichiers XML binaires en fichiers XML textes éditables

> plutil -convert xml1 /System/Library/LaunchDaemons/shell.plist
> plutil -convert xml1 /System/Library/LaunchDaemons/login.plist 

autorisation d’activation des services

> sed -i -e "s/Disabled/Enable/" /System/Library/LaunchDaemons/shell.plist
> sed -i -e "s/Disabled/Enable/" /System/Library/LaunchDaemons/login.plist 

chargement des services

> launchctl load /System/Library/LaunchDaemons/shell.plist
> launchctl load /System/Library/LaunchDaemons/login.plist

Pour voir ce que cela donne, l’état des services :

> launchctl list | egrep "rsh|login"
77  0   com.apple.logind
-   0   com.apple.rshd
-   0   com.apple.rlogind

lancement des services

> launchctl start com.apple.rshd
> launchctl start com.apple.rlogind

Les services sont bien lancés, on vérifie :

> launchctl list | egrep "rsh|rlogin"
-   1   com.apple.rshd
-   1   com.apple.rlogind
>

Et voilà… mes sauvegardes sont bien plus rapides et consomment moins (en réseau, en processeur, etc.).