Unison pour synchroniser des fichiers : exemples et explications

Unison est un outil de synchronisation de fichiers open source qui permet de maintenir deux répertoires de fichiers en parfaite synchronisation. Cela peut être utile dans de nombreuses situations, telles que la synchronisation de fichiers entre un ordinateur de bureau et un ordinateur portable, la sauvegarde de fichiers sur un serveur de stockage en nuage ou la synchronisation de fichiers entre différents utilisateurs d’un réseau.

Synchroniser un dossier local

Pour utiliser Unison, vous devez d’abord l’installer sur chacun des ordinateurs ou des périphériques que vous souhaitez synchroniser. Unison est disponible pour la plupart des systèmes d’exploitation, y compris Windows, macOS et Linux. Vous pouvez télécharger la dernière version d’Unison à partir du site Web officiel de l’outil.

Une fois que vous avez installé Unison sur chaque périphérique que vous souhaitez synchroniser, vous pouvez utiliser la ligne de commande pour lancer la synchronisation. Voici un exemple de commande pour synchroniser deux répertoires localisés sur votre ordinateur de bureau :

unison /home/user/documents /home/user/backup

Cette commande synchronisera le répertoire /home/user/documents avec le répertoire /home/user/backup. Tous les fichiers qui sont présents dans l’un de ces répertoires, mais pas dans l’autre, seront ajoutés ou supprimés pour que les deux répertoires soient en parfaite synchronisation.

Synchroniser un dossier distant

Vous pouvez également utiliser Unison pour synchroniser des fichiers entre deux ordinateurs ou périphériques distants. Pour ce faire, vous devrez configurer les deux ordinateurs pour qu’ils puissent se connecter l’un à l’autre via ssh. Une fois que vous avez configuré la connexion ssh, vous pouvez utiliser une commande similaire à celle ci-dessus, en spécifiant l’adresse IP ou le nom d’hôte de l’ordinateur distant à la place du chemin d’accès local.

Voici un exemple de commande pour synchroniser des fichiers entre deux ordinateurs distants :

unison /home/user/documents ssh://user@remote-server//home/user/documents

Dans cet exemple, le répertoire /home/user/documents de votre ordinateur local sera synchronisé avec le répertoire /home/user/documents de l’ordinateur distant nommé remote-server.

Il existe de nombreuses options que vous pouvez utiliser pour personnaliser la façon dont Unison synchronise

Tour d’horizon des principaux protocole domotique

Il existe de nombreux protocoles de communication utilisés dans le domaine de la domotique pour connecter et contrôler les appareils et services de votre maison. Voici quelques-uns des protocoles les plus couramment utilisés, avec leurs fréquences d’utilisation :

  • Z-Wave : Z-Wave est un protocole de communication sans fil qui utilise la radiofréquence pour permettre aux appareils de communiquer entre eux. Il utilise une fréquence de radio de 868 MHz en Europe et de 908 MHz en Amérique du Nord. Il est très populaire dans le domaine de la domotique en raison de sa faible consommation d’énergie et de sa portée étendue.
  • Zigbee : Zigbee est un autre protocole de communication sans fil qui utilise la radiofréquence pour permettre aux appareils de communiquer entre eux. Il utilise une fréquence de radio de 2,4 GHz. Il est également très populaire dans le domaine de la domotique en raison de sa faible consommation d’énergie et de sa portée étendue.
  • Wi-Fi : Wi-Fi est un protocole de communication sans fil qui utilise des ondes radio pour permettre aux appareils de communiquer avec un réseau local ou Internet. Il utilise une fréquence de radio de 2,4 GHz ou de 5 GHz. Il est très couramment utilisé dans les maisons et les entreprises pour connecter des appareils tels que des ordinateurs, des téléphones mobiles, et des appareils de domotique.
  • 433 MHz : Le protocole de communication sans fil 433 MHz est l’un des protocoles les plus couramment utilisés dans le domaine de la domotique. Il utilise une fréquence de radio de 433 MHz pour permettre aux appareils de communiquer entre eux. Cette fréquence est située dans la bande de fréquences des ondes moyennes, qui est utilisée pour la transmission de données à courte distance.
  • LAN : Le LAN (Local Area Network) est un protocole de communication qui permet aux appareils de communiquer entre eux sur un réseau local, tel qu’un réseau d’entreprise ou un réseau domestique. Il utilise des câbles de réseau ou des technologies sans fil pour connecter les appareils entre eux.
  • Infrarouge : L’infrarouge est un protocole de communication qui utilise des ondes de lumière invisible pour permettre aux appareils de communiquer entre eux. Il est couramment utilisé dans les télécommandes et les appareils de domotique tels que les thermostats et les détecteurs de mouvement.
  • Bluetooth : Bluetooth est un protocole de communication sans fil qui utilise des ondes radio pour permettre aux appareils de communiquer entre eux à courte distance. Il est largement utilisé dans les appareils portables, tels que les téléphones mobiles et les enceintes Bluetooth. Le Bluetooth utilise une fréquence de 2,4 GHz pour transmettre des données.
  • enOcean : enOcean est un protocole de communication sans fil qui utilise l’énergie ambiante, comme la lumière ou le mouvement, pour alimenter et transmettre des données entre les appareils. Il est souvent utilisé dans les appareils de domotique tels que les détecteurs de mouvement et les interrupteurs sans fil. enOcean utilise une fréquence de 315 MHz ou 868 MHz pour transmettre des données.

Il est important de choisir le protocole de communication qui convient le mieux à vos besoins et à votre environnement de maison intelligente. Si vous avez besoin de connecter des appareils à courte distance, comme des appareils portables, le Bluetooth peut être une bonne option. Si vous souhaitez utiliser des appareils alimentés par l’énergie ambiante, enOcean peut être une bonne solution. Si vous avez besoin de connecter des appareils à un réseau local ou Internet, WiFi peut être le choix le plus adapté. En fin de compte, le choix du protocole de communication dépend de vos besoins et de votre environnement de maison intelligente. Selon le protocole les capteurs sont + ou – chère.

Pour ma part, dans mon installation on retrouve par ordre d’importance : Zigbee, WiFi, LAN et Bluetooth.

Home Assistant, la domotique OpenSource

Home Assistant est un logiciel open source de domotique qui vous permet de centraliser et de contrôler tous les appareils et services connectés de votre maison. Avec Home Assistant, vous pouvez créer des automatisations pour votre maison, visualiser l’état de votre maison en temps réel, et contrôler vos appareils à distance.

Home Assistant est compatible avec de nombreux protocoles de communication et de nombreux appareils et services, tels que Google Assistant, Amazon Alexa, Nest, Philips Hue, et bien d’autres encore. Vous pouvez facilement ajouter de nouveaux appareils et services en utilisant le « Marketplace » intégré de Home Assistant.

L’une des principales forces de Home Assistant est sa communauté active et en croissance constante. Vous pouvez trouver de l’aide et de l’assistance sur les forums de la communauté en ligne, et de nombreux utilisateurs partagent leurs configurations et leurs automatisations sur le forum. Il existe également de nombreux tutoriels et guides en ligne pour vous aider à démarrer avec Home Assistant.

Home Assistant est également très personnalisable. Vous pouvez personnaliser l’apparence de l’interface en utilisant des thèmes prédéfinis ou en créant votre propre thème. Vous pouvez également créer des vues personnalisées pour afficher l’état de votre maison sous forme de tableaux de bord, de widgets, et de graphes.

En résumé, Home Assistant est une excellente solution de domotique open source qui vous permet de centraliser et de contrôler tous les appareils et services connectés de votre maison. Avec sa compatibilité avec de nombreux appareils et services, sa communauté active et en croissance constante, Home Assistant est un choix solide pour tous ceux qui souhaitent créer une maison intelligente.

Voilà une bonne introduction pour home assistant. Je l’utilise depuis plus d’un an et ai déjà fait un beaucoup de chose avec. On trouveras donc un certain nombre de choses : des notes, des impressions, des retour d’expérience etc…

Voilà un bon retour sur du blog !

Startup Script S3QL pour OVH

L’objectif est de monter un conteneur d’objet OVH, sur une machine debian. Pour cela on va utiliser l’utilitaire s3ql le dépôt est ici: https://bitbucket.org/nikratio/s3ql

Installation de s3ql

Sur debian, un petit:

sudo apt install s3ql

Et le tour est joué.

Configuration du montage

Ensuite c’est avec OVH, que cela se passe la doc est bien faite: https://www.ovh.com/fr/g1908.monter_un_conteneur_dobjet_avec_s3ql

Pour ma part les commandes suivante me sont très utile. J’utilise un serveur seafile, les fichiers sont alors stocké dans le conteneur.

Cas pratique pour un serveur seafile

Monter le conteneur, avec les droits pour un utilisateur seafile:

sudo -u seafile mount.s3ql --allow-other --authfile /home/seafile/s3qlcredentials.txt swiftks://auth.cloud.ovh.net/GRA1:seafile /mnt/ctn-seafile/

Parfois un peut de maintenance est nécessaire:

sudo fsck.s3ql --authfile /home/seafile/s3qlcredentials.txt swiftks://auth.cloud.ovh.net/GRA1:seafile

Conclusion

Je manque de vision sur le système, mais dans la pratique je dois avouer que je ne recommanderais pas cette architecture pour un système en production. D’ailleurs ce n’est pas très recommandé par OVH (cf. la doc). De plus je me retrouve avec des corruptions de donné, et je suis contraint d’utiliser fsck tan au niveau de seafile, que de s3ql.

NOTE: en cas d’arrêt de la machine il faudrait d’abord couper seafile, puis démonter le dossier s3ql. Même chose au démarrage: on monte le dossier avec s3ql, puis démarrage du serveur seafile. Je mettrait à jour ce poste dès que j’aurais trouvé la bonne manière de faire.

Tunnel SSH, IP Dynamique & proxy Firefox

Configurer un tunnel SSH sur un poste client, puis le proxy Firefox

Quand on bosse avec des freelances, qui se trouvent à différents endroits du monde leur accès à internet peut-être plus ou moins aléatoire. En ce moment je rencontre le problème suivant:

Nous utilisant un service en s’appuyant sur leur API. Mais l’accès au différentes ressources est restreinte selon l’IP cliente. Pour peu que l’on se trouve derrière une IP dynamique et cela devient problématique…

Au moin deux solutions peuvent être mise en oeuvre pour contourner le problème:

  • Utilisation d’un VPN
  • Utilisation d’un Tunnel SSH

Le choix a été fait d’utiliser un tunnel SSH, car plus simple, selon moi, à mettre en œuvre, surtout si le besoin est de fixer l’adresse IP de la machine cliente. L’installation est simple pour le client, un client ssh est disponible sur une machine Linux, et l’utilitaire putty sous Windows permet de faire cela simplement. Le tunnel SSH créer un proxi local sur la machine cliente client convient de préciser au programme dont on souhaite qu’il utilise le tunnel

Configuration du tunnel SSH

Configuration du tunnel SSH sous Windows:

Récupérer putty, et configurer une connexion SSH classique:

  • Host Name (or IP adress)
  • Port si le serveur SSH n’écoute pas sur le port 22

Howto:tunnel_ssh_avec_putty [Fig. 1]
Configuration tunnel SSH putty étape 1
Ensuite se rendre dans Connection > SSH > Tunnels

  • Source Port, une valeur arbitraire mais doit être libre sur la machine cliente
  • Destination, identique à Host Name, préciser le port si différent de 22 (après les deux points)
  • Et enfin choisir Dynamique

howto_putty_ssh_tunnel3
Configuration tunnel SSH putty étape 2

Pour finir Cliquez sur le bouton ADD pour ajouter le tunnel. Pour ouvrir le tunnel cliquer sur Open.

Configuration du Tunnel sous Linux

Avec ssh:

ssh -D1080 user@destination:port

Le port est facultatif si égal à 22.

Le paramètre -D est pour définir une connexion dynamique.

Enfin 1080, est le Source Port, une valeur arbitraire pourvu que ce soit un port libre la machine cliente.

Configuration du proxy sous Firefox

Une fois le tunnel établi il se comporte comme un proxy sur la machine locale: exemples de configuration avec Firefox:

proxy-firefox-tunnel-ssh-1
Configuration Proxy Firefox Etape 1

Se rendre dans Paramètre > Avancé > Réseau, dans la section Connexion cliquer sur paramètres:

proxy-firefox-tunnel-ssh-2
Configuration Proxy Firefox Etape 2

Sélectionner « Configuration Manuelle du Proxy« , dans Hôte SOCKS saisissez « localhost« , SOCKS v5 et dans le champ Port mettre Source Port précédement défini.

Puis valider par OK. Tant que le proxy sera actif toute les connesxions initialiser par Firefox passerons désormais par le tunnel SSH.

Elle est pas belle la vie 🙂

HTML Helper pour WordPress

Je n’aime pas le html. Je sais pour un dev web, c’est plutôt gênant. Quoiqu’il en soit j’ai créé une classe HTMLHelper pour WordPress. Bon il y a des pour et des contres quand à l’utilisation d’une classe PHP supplémentaire pour générer du templating. Cette réponse sur StackExchange est intéressante: http://codereview.stackexchange.com/a/65281.

J’en ai profité pour me familiariser avec les Closures et fonctions anonymes en PHP. Voici un exemple de ce qu’il est possible de faire:

// Déclaration des en-tête d'un tableau HTML
$data['head'] = array(
	'Capture',
	'Nom',
	'Catégories',
	'Mots Clefs',
	'Projet',
	'Actions'
);

// On prépare les donné a présenter dans le tableau
foreach ( $videos as $index => $video ) {
	$data['data'][] = array(
		HTMLHelper::img( $image_url, array( 'height' => 256, 'width' => 128 ) ),
		$title,
		'Catégories',
		'Mots Clefs',
		HTMLHelper::p( array(), function () {
			echo 'Projet';
		} ),
		'Voir, editer, Supprimer'
	);
}

// Et Hop! On génère notre tableau HTML !
HTMLHelper::table( $data, array(), true );

Ce projet en est à son commencement (aucun commentaire!), mais je compte bien l’améliorer au file de l’eau. Pour le moment il est disponible sur GitHub: https://github.com/natrio/wp-html-helper. Faites en bon usage 🙂

 

A noter que ce dépôt est plutôt bon à mon goût: https://github.com/naomik/htmlgen.