POC de deux daemons bash qui écoutent et communiquent via TCP/IP.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Xala 674904a80f initial commit with code 4 years ago
client initial commit with code 4 years ago
server initial commit with code 4 years ago
LICENSE Initial commit 4 years ago
README.md initial commit with code 4 years ago

README.md

poc-bash-tcp

POC de deux scripts bash qui écoutent et communiquent via TCP/IP.

Dépendances

Le paquet entr est nécessaire au bon fonctionnement de cette preuve de concepte. Aussi, et sauf erreur de ma part, ce paquet n'est pas proposé sur les dépôts des distributions de la branche Debian.

Pour l'installer, suivre la documentation officielle.

Explications

Ici, on imagine un serveur de sauvegarde qui centralise les sauvegardes et donc gère la planification, l'historique et la notification mail. À savoir qu'en réalité les scripts ne font rien de tout cela. Juste ils se parlent entre eux.

Pour cela, le serveur communique avec ses clients via le port TCP/3737. Aussi, il écoute sur le port TCP/3738 pour que ses clients puissent lui remonter la fin de la sauvegarde et le status de cette dernière (ok/nok).

serveur ---> client:3737
client  ---> server:3738

À noter que les IP et ports d'écoute sont configurable via un fichier de configuration.

Pour communiquer entre eux via TCP, les clients et le serveur utilisent netcat. Donc attention à l'aspect non-sécurisé des échanges. Il existe un fork de netcat qui implémente la notion de chiffrement des communications. Mais ici on va rester simple avec le paquet installé par défaut sur la branche Debian.

Comment tester ?

Commencer par démarrer les daemons avec les init-scripts puis faire un tail sur les fichiers de log.

./server-startstop.sh start && tail -f server.log
./client-startstop.sh start && tail -f client.log

Puis lancer une sauvergarde sur l'hôte "localhost" avec pour fichier de config. "toto.cfg" via le script server/launcher.sh.

./launcher.sh localhost test.cfg

Puis observer les logs avec joie :)