मुझे कई मेजबानों के माध्यम से लूप और एसएचएस करने और प्रत्येक पर कमांड की एक श्रृंखला चलाने की आवश्यकता है।
कुछ इस तरह:
for i in $(jot -w '%02.0f' 14 1)
>do ssh user@host$i sudo -i "command1; command2; command3"
>done
लेकिन मैं इसे सही ढंग से काम करने के लिए नहीं कर सकता। मैंने Google पर विभिन्न चीजों को देखा है जैसे sudo sh -c
, sudo को पाइप करना, आदि, लेकिन यह पता नहीं लगा सकता।
- मैं एक नियमित उपयोगकर्ता के रूप में ssh'ing कर रहा हूं जो बिना किसी पासवर्ड के sudo कर सकता है (मूल रूप से ssh सक्षम नहीं है)
- कमांड 1 नहीं लौट रहा है, इसलिए कमांड 2 को चलने से रोकना नहीं चाहिए, आदि
;
- मैं लूप को एक मैक से चला रहा हूं, इसलिए
jot -w
, जो किseq -f
लिनक्स में लगभग बराबर है - CentOS 5.4 को ssh'ing
- मैं इसे रूट $ PATH के साथ चलाना चाहूंगा ताकि मुझे कमांड्स के लिए पूर्ण पथ निर्दिष्ट न करना पड़े, लेकिन यह पूरी तरह से आवश्यक नहीं है
अग्रिम में धन्यवाद!
seq
:printf '%02d ' {1..14}
या बैश 4 में:for i in {01..14}
(बैश <4 अग्रणी शून्य को अनदेखा करता है)।