2009-07-30 12 views
5

मैं अक्सर एक सर्वर में sshing कर रहा हूँ एक विशिष्ट निर्देशिका का उपयोग करने जा और चल SVN अद्यतनस्वचालित SVN अद्यतन

मैं सोच रहा हूँ वहाँ शायद इस स्वचालित करने के लिए एक बहुत ही आसान तरीका है कि, तो मैं कर सकते हैं सरल विशिष्ट एक उपनिर्देशिका जब मैं स्क्रिप्ट चलाता हूं और यह एसएसएच, सीडी के माध्यम से सही निर्देशिका में लॉगिन करेगा और svn-update चलाएगा।

क्या यह कैपिस्ट्रानो के लिए एक नौकरी है या क्या एक साधारण बैश स्क्रिप्ट नौकरी कर सकती है?

+3

यह बनाने के लिए एक नौकरी है। ssh उपयोगकर्ता @ रिमोट 'सीडी/पथ/से/प्रोजेक्ट और एसवीएन अपडेट' – LiraNuna

+0

धन्यवाद, मैंने इस स्क्रिप्ट को थोड़ा सा झुका दिया है और जब मैं चलाता हूं तो यह अपडेट हो जाएगा ./update-devsite :) – Tom

उत्तर

5

cron के लिए नौकरी की तरह लगता है। निष्पादित crontab, और इसलिए की तरह एक प्रविष्टि जोड़ने:

 
#min hour date month day command 
0 * * *  * ssh [email protected] '(cd path/to/working/copy; svn update)' 

आप ssh passwordless authentication with ssh-agent स्थापित करने के लिए इतना है कि यह संकेत नहीं देगा पड़ सकता है।

संपादित करें (नीचे टिप्पणी प्रति):

मान लिया जाये कि आप ऐसा

 
ssh [email protected] crontab -e 

को चलाने के लिए पर्याप्त विशेषाधिकार फिर तो जैसे एक प्रविष्टि जोड़ें:

 
#min hour date month day command 
0 * * *  * (cd path/to/working/copy; svn update) 

आप अनदेखा कर सकते हैं संपादन के ऊपर भाग, जब तक कि आपका सर्वर आपको क्रॉन का उपयोग करने की अनुमति न दे।

+0

क्रॉन-जॉब क्यों नहीं है लक्ष्य मशीन पर चलाओ? – innaM

+0

यह एक बहुत अच्छा सवाल है ... मैं इसी तरह की स्थिति में था जहां सर्वर पर "svn update" चलाने के लिए पर्याप्त विशेषाधिकार थे, लेकिन मेरी खुद की क्रॉन नौकरियां बनाने के लिए अपर्याप्त विशेषाधिकार थे, और बस यह माना जाता था कि टॉम एक समान बैठे थे । हालांकि, अब जब आप इसे लाते हैं, तो यह एक मूर्खतापूर्ण धारणा है ... सर्वर कंप्यूटर पर क्रॉन नौकरी चलाने के लिए यह निश्चित रूप से बेहतर होगा। –

2

शायद आपको खुद से पूछना चाहिए कि आप यह कार्रवाई क्यों कर रहे हैं?

क्या क्रूज़ कंट्रोल या हडसन जैसे निर्माण सर्वर को अधिक सामान्य मामला हल हो सकता है (जब एक svn प्रतिबद्ध प्रदर्शन किया जाता है)?

यदि आपको किसी विशिष्ट svn सर्वर पर निगरानी की आवश्यकता है, और आपके पास प्रशासनिक पहुंच है, तो आप सर्वर पर पोस्ट-प्रतिबद्ध हुक सक्षम कर सकते हैं, उदाहरण के लिए आपको प्रत्येक प्रतिबद्धता पर एक ईमेल भेजने के लिए (या केवल कुछ विशिष्ट पर काम के प्रकार)।

यदि आप अपनी स्थिति के उपयोगकेस को स्पष्ट कर सकते हैं तो इससे मदद मिलेगी।

0

सरल बैश स्क्रिप्ट यह करेगा, sv/अद्यतन फ़ाइल को अपने/etc/प्रोफ़ाइल फ़ाइल में जोड़ें।

here for bash login स्क्रिप्ट प्रोसेसिंग देखें।

यदि आप इसे किसी दूसरे बॉक्स से चलाने के लिए चाहते हैं (यानी लॉग इन नहीं करते हैं) तो याद रखें कि एसएसएच चलने की प्रक्रिया होने पर बाहर नहीं निकलेगा, इसलिए आप पृष्ठभूमि में अद्यतन को सभी रीडायरेक्ट के साथ चला सकते हैं करने के लिए/dev/शून्य।