एक अलग उपयोगकर्ता के रूप में दूरस्थ सर्वर के लिए पर्यावरण चर पासिंग


1

जब मैं एक SSOS CentOS सर्वर पर दूरस्थ सर्वर में SSH के पर्यावरणीय चर को सेट करने का प्रयास कर रहा हूं। मैं कमांड को रूट के रूप में चला रहा हूं, लेकिन इसे Oracle उपयोगकर्ता के रूप में कमांड चलाने की आवश्यकता है। मुझे साइट पर कुछ चीजें मिलीं, लेकिन काम करने के लिए कोई भी दिखाई नहीं दिया।

ssh $SERVER su $ORACLE_USER 'ORACLE_HOME="/u01/app/oracle/product/11.2.0"; PATH="/u01/app/oracle/product/11.2.0/Opatch:$PATH';  opatch lsiinventory'

क्या कोई मेरी मदद कर सकता है?

जवाबों:


4

अधिकांश गोले में, चर स्वचालित रूप से पर्यावरण का हिस्सा नहीं होते हैं जब तक कि वे वहां निर्यात नहीं किए जाते हैं (बॉर्न शेल शब्दावली में)। श / बैश के लिए, उपयोग करें:

ssh $SERVER "su $ORACLE_USER -c 'export ORACLE_HOME=\"/u01/app/oracle/product/11.2.0\";
                                 export PATH=\"/u01/app/oracle/product/11.2.0/Opatch:\$PATH\";
                                 opatch lsiinventory'"

(बैश में, मौजूदा पर्यावरण वैरिएबल जैसे $ PATH को बदलने से यह स्वचालित रूप से इसे फिर से निर्यात करेगा, लेकिन यह सभी गोले में सही होने की गारंटी नहीं है।)

यह भी ध्यान दें कि तर्क पृथक्करण को संरक्षित ssh नहीं करता है और एक पैरामीटर के रूप में सब कुछ भेजता है (जो अंततः दिया जाता है /bin/sh -c "…")। भ्रम से बचने के लिए, केवल पहले स्थान पर ssh के लिए एक ही कमांड पैरामीटर पास करना सबसे अच्छा हो सकता है।


0

सिर्फ सुदूर तंत्र पर एक छोटा शेल स्क्रिप्ट लांचर क्यों नहीं बनाया गया और इसे कैसे चलाया जाए:

#!/bin/bash
export ORACLE_HOME=/u01/app/oracle/product/11.2.0
exec $ORACLE_HOME/Opatch/opatch lsiinventory

इसे "oplauncher" chmod 755 नामक कुछ फ़ाइल में सहेजें, और लॉग ऑन करने के लिए ssh का उपयोग करें और इसे चलाएं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.