- Parallel SSH oturumları üzerinden birden çok sunucuda komutları aynı anda çalıştırabilen bir CLI aracı
- Basit kullanımdan gelişmiş giriş/çıkış denetimine kadar destek sunar ve sunucu kümesi yönetiminde kullanışlıdır
Temel özellikler
- Birden çok host üzerinde komut çalıştırır ve çıktıyı host adını önek olarak ekleyerek gösterir
- Örnek:
pussh -h host1,host2 uname -a
- Host listesi dosyadan veya standart girdiden sağlanabilir
- Örnek:
pussh -f servers uname -a veya fetch-servers | pussh -f - uname -a
- Çıktı, sıralama veya filtreleme için bir pipeline'a bağlanabilir
- Örnek: disk kullanımına göre sıralama →
pussh -f servers df -h / | grep /dev | sort -rn -k5
- Her hostun çıktısı ayrı dosyalara kaydedilebilir (
%h host adı yer tutucusudur)
- Örnek:
pussh -f servers -o %h-hw.txt lshw
- SSH çıktı sonucu başka komutlara pipe edilebilir
- Örnek:
pussh -f servers -o '|grep feature' command > output
Girdi denetimi özellikleri
- Komut çalıştırılırken girdi, bir dosyadan veya bir komut çıktısından sağlanabilir
- Örnek:
pussh -f servers -i file command
- Örnek: host başına girdi dosyası →
pussh -f servers -i %h.data command
- Örnek: dinamik girdi →
pussh -f servers -i 'get-data %h|' command
-i ve -o serbestçe birlikte kullanılabilir
Dağıtım ve çalıştırma özellikleri
- Komutlar veya script'ler uzak sisteme aktarılıp çalıştırılabilir
- Örnek:
pussh -f servers -u my-deploy.sh args ...
- Ancak çalıştırılabilir dosya self-contained biçimde olmalı veya hedef sunucu ortamıyla uyumlu olmalıdır
Performans optimizasyonu ipuçları
- SSH bağlantısının kurulma hızı toplam çalışma süresini ciddi biçimde etkiler
- SSH agent'ın işleme hızı sınırı aşılırsa kimlik doğrulama başarısızlıkları veya bağlantı hataları oluşabilir
- Öneri: kullanım sırasında bir rate değeri ayarlayın (örnek:
alias pussh='pussh -r 50')
- Ağ gecikmesi büyük etki yarattığından, önce uzak LAN makinesine ssh ile bağlanıp ardından pussh'ı o makinede çalıştırmak daha hızlıdır
Geliştirme ve geçmiş
- 2008'den beri Bearstech içinde kullanılan bir araç
- Başlangıçta birkaç satırlık bir shell script'iydi; bugün 500'den fazla sunuculuk kümelerde de kararlı biçimde çalışıyor
- Bulut yönetim sistemiyle entegre çalışarak basit host tanımlarından yürütülebilir host listeleri üretir
Sınırlamalar
- Uzak sunucunun stdout ve stderr akışları ayrılmaz, tek bir akışta birleştirilerek çıktı verilir
- Uzak sunucuda çalıştırılan komutun çıkış durumu (exit status) alınamaz
2 yorum
İsmi pek tekin değil!
Kesinlikle daha fazla katılamazdım 🤣