सर्वर पते और विकल्पों के लिए क्रोन पार्स एसएसएच कॉन्फिग फाइल है


2

SSH के लिए IP पते और अन्य विकल्प (जैसे IdentityFile) ~/.ssh/configप्राप्त करने के लिए कोई भी व्यक्ति पार्स को कॉन्फ़िगर कैसे करता है ? जाहिर है जोड़ने से कोई फायदा नहीं होता।source /home/user/.ssh/config

मैं क्रोन से चलाए जाने वाले स्क्रिप्ट में विकल्पों को जोड़ना नहीं चाहता क्योंकि यह बीस से अधिक सर्वरों को कॉल करता है जिसमें अलग-अलग विकल्प होते हैं। ~/.ssh/configजब IP पते या PEM कुंजियाँ बदल जाती हैं, तो मैं फ़ाइल को अपडेट रखता हूं , और मैं बनाए रखने के लिए उस प्रयास को किसी अन्य फ़ाइल में डुप्लिकेट नहीं करना चाहता ।

क्रोन उपयोगकर्ता के पर्यावरण को इनहेरिट नहीं करता है जो इसे कॉन्फ़िगर करता है। इस प्रकार, दी गई स्क्रिप्ट के लिए:

$ cat .ssh/config
Host alpha
    Hostname 1.2.3.4
    User dotan
    IdentityFile ~/.ssh/Dotan.pem
    IdentitiesOnly yes

$ cat script.sh
#!/bin/bash
echo "Alpha"
ssh alpha dmesg

यह काम:

$ ./script.sh > output.log
$ cat output.log
Alpha
[73542728.181371] type=1400 audit(1397118713.764:13): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=710 comm="apparmor_parser"

हालांकि, यह क्रोनजोब काम नहीं करता है :

0 0 * * * /home/dotan/script.sh > /home/dotan/output.log

आउटपुट है:

Alpha

यह साबित होता है कि स्क्रिप्ट चली, लेकिन SSH कनेक्ट करने में विफल रही।

संपादित करें: मुझे पता चला है कि ssh के पास -F /home/dotan/.ssh/configएक विन्यास फाइल निर्दिष्ट करने का विकल्प है, लेकिन इससे समस्या हल नहीं हुई।


मैं नहीं देखता कि क्रोन के साथ इसका क्या संबंध है। क्या आप कुछ और स्पष्टीकरण दे सकते हैं कि आप क्या हासिल करने की कोशिश कर रहे हैं और आपका .ssh / config कैसा दिख सकता है?
कैमरन केर

मैंने प्रश्न को अधिक जानकारी के साथ संपादित किया है।
१४:१४ पर 12:१६ पर डॉटान्कोहेन

है ssh -vकोई भी जानकारी नहीं दे?
ग्रैविटी

@grawity: पता चलने पर कि ssh -vथा नहीं किसी भी जानकारी दे महत्वपूर्ण था समस्या पाने के लिए नीचे दिए गए कैमरून के जवाब देने के लिए मेरी टिप्पणी देखें। धन्यवाद!
डॉटनचेन

जवाबों:


2

आपका माहौल अलग होगा। envक्रोन के साथ / बिना चलने पर आउटपुट की तुलना करें ।

इसके अलावा, आप इसे क्रोन में कहां डाल रहे हैं? क्या यह आपके खाते के रूप में चल रहा है, या यह रूट के रूप में चल रहा है (आपके क्रॉन जॉब को देखकर नहीं बता सकता है)


मुद्दा यह था कि स्क्रिप्ट एक और स्क्रिप्ट कहलाती है जिसमें पूर्ण पथ का उपयोग नहीं किया गया है। अनदेखी करना क्या आसान बात है!
डॉट १४:४०

यह काफी स्वतंत्र रूप से होता है। आपको अपने Crontab में SHELL और PATH जैसी चीज़ें सेट करना उपयोगी हो सकता है। याद रखें, यदि कहा जाता है sh, तो काम करने के लिए बाश-विशिष्ट व्यवहार की अपेक्षा न करें। इसके अलावा, स्क्रिप्ट के अंत में ".sh" लगाने की कोई आवश्यकता नहीं है (या निष्पादन योग्य फ़ाइलों के लिए कोई एक्सटेंशन; जो आपको ज़रूरत पड़ने पर एक अलग भाषा में पुन: लागू करने की स्वतंत्रता देता है।
कैमरून केर

धन्यवाद। वास्तव में वास्तविक लिपियों में विस्तार नहीं है, लेकिन मैं अपने एसओ पदों को अधिक पठनीय होने के लिए सामान्य करना पसंद करता हूं। मेरा PS1 भी गड़बड़ है!
डॉटनचेन
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.