2013-08-01 7 views
5

पर स्थानीय स्क्रिप्ट निष्पादित करें मेरे पास एक स्थानीय स्क्रिप्ट है जो रिमोट होस्ट पर रूट निजी के बिना नहीं चलती है। मैंने संपादित किया है और sudoers फ़ाइल को घर dir (/ home/username/script) से स्क्रिप्ट चलाने के लिए अनुमति दी है। स्क्रिप्ट परिणाम के साथ एक txt फ़ाइल बनाता है लेकिन मैं आउटपुट को टर्मिनल पर रीडायरेक्ट करता हूं और स्थानीय मशीन पर आउटपुट को टेक्स्ट फ़ाइल में पाइप करता हूं।रिमोट लिनक्स होस्ट

मैं "ssh user @ hostname sudo -Sv < script.sh> results.txt" नहीं कर सकता क्योंकि यह रिमोट होस्ट, विशेष रूप से घर डीआईआर से स्क्रिप्ट नहीं चलाएगा।

क्या किसी को स्क्रिप्ट को रिमोट होस्ट & पर स्क्रिप्ट की प्रतिलिपि बनाने के लिए किसी तरीके (एक पंक्ति) के बारे में पता है, आउटपुट पुनर्प्राप्त करते समय इसे रूट के रूप में निष्पादित करें?

किसी भी सहायता

उत्तर

2

कॉपी scp साथ स्क्रिप्ट के लिए धन्यवाद, तो यह चलाते हैं।

scp script.sh [email protected]: 
ssh [email protected] sudo ./script.sh > results.txt 

एक पंक्ति में यह करने के लिए:

ssh [email protected] 'cat > script.sh; chmod 755 script.sh; sudo ./script.sh' <script.sh> results.txt 

बहरहाल, यह अगर आप sudo में एक पासवर्ड डालना होगा काम नहीं करेगा। स्क्रिप्ट में ssh के stdin को रखा जाएगा। Expect का उपयोग करके ऐसा करने का एक तरीका हो सकता है, लेकिन मेरे पास बहुत अधिक विशेषज्ञता नहीं है।

+0

त्वरित प्रतिक्रिया के लिए धन्यवाद! एसएसएच कुंजी संग्रहित नहीं होती हैं इसलिए मुझे स्कॉइंग और एसशिंग करते समय 14 char pswd दर्ज करना होगा। क्या यह एक लाइन के लिए एक रास्ता है? –

+0

मुझे सुडो (स्क्रिप्ट चलाने) के लिए पासवर्ड दर्ज करने की आवश्यकता नहीं होगी। ऐसा लगता है जैसे यह बहुत अच्छा काम करेगा! इसके अलावा, आपके समय और मदद के लिए बहुत बहुत धन्यवाद !! –

+0

यह सवाल का सही जवाब नहीं है, यह दूरस्थ रूप से कमांड चलाने के बारे में था, रिमोट मशीन पर नहीं दबा रहा था! – Rafareino

12

आप sudo है, और जड़ तक sudo करने की अनुमति दी है, तो यह थोड़ा कम वाक्य रचना के साथ काम करता है:

ssh -T [email protected] 'sudo su -' < script.sh

+5

+1 यह स्वीकार्य उत्तर होना चाहिए। –

संबंधित मुद्दे