🚀 xsshend

Téléversement SSH parallèle avec interface TUI moderne

xsshend - Téléversement SSH simple et efficace

🔧 Installation rapide

cargo install xsshend

xsshend est un outil Rust moderne pour le téléversement de fichiers vers multiples serveurs SSH. Interface en ligne de commande simple et intuitive avec suivi en temps réel.

✨ Fonctionnalités principales

🎯 Interface CLI simple

Commandes intuitives avec filtrage avancé par environnement, région et type de serveur

📊 Transferts en temps réel

Barres de progression et suivi détaillé pour chaque serveur

⚡ Performance optimisée

Architecture simplifiée suivant les principes SOLID pour une efficacité maximale

🔐 Sécurité intégrée

Découverte automatique des clés SSH avec support complet de ssh-agent

🎯 Configuration assistée

Commande init pour création et configuration automatique

🧪 Tests complets

93 tests automatisés garantissent la fiabilité du code

🚀 Démarrage rapide

# Installation
cargo install xsshend

# Initialisation avec assistant
xsshend init

# Lister les serveurs disponibles
xsshend list

# Téléversement simple
xsshend upload fichier.txt

# Filtrage par environnement
xsshend upload app.jar --env Production

# Mode simulation
xsshend upload deploy.sh --env Production --dry-run

🎮 Interface CLI

Interface en ligne de commande avec filtrage hiérarchique :

# Structure hiérarchique des serveurs
Production/
├── Region-A/
│   ├── Public/     # --env Production --region Region-A --type Public
│   │   ├── WEB_SERVER_01 → web01@prod-web-01.example.com
│   │   └── API_SERVER_01 → api01@prod-api-01.example.com
│   └── Private/    # --env Production --region Region-A --type Private
│       └── DATABASE_01 → db01@prod-db-01.example.com
└── Region-B/
    └── Public/
        └── CACHE_SERVER_01 → cache01@prod-cache-01.example.com

# Exemples d'utilisation
xsshend upload config.json --env Production --region Region-A
xsshend upload app.war --env Production --type Public --dest /opt/tomcat/
xsshend upload logs/ --env Staging --dry-run

⚡ Progression en temps réel

🚀 Début du téléversement: 1 fichier(s) vers 3 serveur(s)
📂 Destination: /opt/uploads/
🎯 Serveurs ciblés:
   • Production:Region-A:Public:WEB_SERVER_01 → web01@prod-web-01.example.com (PROD)
   • Production:Region-A:Public:API_SERVER_01 → api01@prod-api-01.example.com (PROD)
   • Production:Region-A:Private:DATABASE_01 → db01@prod-db-01.example.com (PROD)

📤 Téléversement de ./myapp.jar en cours...

web01@prod-web-01... [████████████████████████████████] 2.3MB/2.3MB ✅
api01@prod-api-01... [██████████████████              ] 1.5MB/2.3MB ⏳
db01@prod-db-01..... [████████████████████████████     ] 2.1MB/2.3MB ⏳

✅ Téléversement terminé avec succès!
📊 3 serveur(s) - 0 échec(s)