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
📚 Documentation complète
🎮 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)