5 पॉइंट द्वारा xguru 2025-04-22 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • Parallel SSH सेशन्स के ज़रिए कई सर्वरों पर एक साथ कमांड चलाने के लिए CLI टूल
  • आसान उपयोग से लेकर उन्नत input/output control तक सपोर्ट करता है, और server cluster management के लिए उपयोगी है

बुनियादी सुविधाएँ

  • कई hosts पर कमांड चलाता है, और output में host name को prefix के रूप में दिखाता है
    • उदाहरण: pussh -h host1,host2 uname -a
  • host list को फ़ाइल या standard input से दिया जा सकता है
    • उदाहरण: pussh -f servers uname -a या fetch-servers | pussh -f - uname -a
  • output को pipeline से जोड़कर sort या filter किया जा सकता है
    • उदाहरण: disk usage के आधार पर sort करना → pussh -f servers df -h / | grep /dev | sort -rn -k5
  • हर host का output अलग फ़ाइल में सेव किया जा सकता है (%h host name की जगह है)
    • उदाहरण: pussh -f servers -o %h-hw.txt lshw
  • SSH output result को दूसरे कमांड में pipe किया जा सकता है
    • उदाहरण: pussh -f servers -o '|grep feature' command > output

इनपुट नियंत्रण सुविधाएँ

  • कमांड चलाते समय input को फ़ाइल या कमांड output से दिया जा सकता है
    • उदाहरण: pussh -f servers -i file command
    • उदाहरण: host-वार input फ़ाइल → pussh -f servers -i %h.data command
    • उदाहरण: dynamic input → pussh -f servers -i 'get-data %h|' command
  • -i और -o को मनचाहे तरीके से साथ में इस्तेमाल किया जा सकता है

डिप्लॉयमेंट और रन सुविधाएँ

  • कमांड या स्क्रिप्ट को remote पर भेजकर चलाया जा सकता है
    • उदाहरण: pussh -f servers -u my-deploy.sh args ...
    • लेकिन executable self-contained फ़ॉर्मेट में होना चाहिए या target server environment के साथ compatible होना चाहिए

परफ़ॉर्मेंस optimization टिप्स

  • SSH connection establish होने की speed पूरे execution time को बहुत प्रभावित करती है
  • अगर SSH agent की processing speed limit पार हो जाए, तो authentication failure या connection error हो सकते हैं
  • सिफारिश: rate सेट करके उपयोग करें (उदाहरण: alias pussh='pussh -r 50')
  • network latency का बड़ा असर पड़ता है, इसलिए remote LAN machine में ssh login करने के बाद उसी मशीन से pussh चलाने पर ज़्यादा तेज़ हो सकता है
    • उदाहरण benchmark (Gigabit LAN के आधार पर):
      $ time pussh -f servers -r 100 date  
      Total: 201 host(s), 4 second(s)  
      
      real    0m4.069s  
      user    0m7.132s  
      sys     0m3.140s  
      

विकास और इतिहास

  • 2008 से Bearstech के अंदर उपयोग में रहा टूल
  • शुरुआत में यह कुछ लाइनों की shell script था, और अब 500 से ज़्यादा सर्वरों वाले cluster में भी स्थिर रूप से काम करता है
  • cloud management system के साथ इंटीग्रेट होकर, साधारण host description से executable host list बनाता है

सीमाएँ

  • remote server का stdout और stderr अलग नहीं रहता, बल्कि एक ही stream में मिलकर output होता है
  • remote server पर चलाए गए कमांड का exit status नहीं लिया जा सकता

2 टिप्पणियां

 
ahwjdekf 2025-04-24

नाम काफ़ी संदिग्ध है!

 
nemorize 2025-04-25

मैं इससे ज़्यादा सहमत नहीं हो सकता 🤣