क्या प्रोग्रामर चीजों को हर sysadmin पता होना चाहिए?


20

इस सवाल से प्रेरित होकर , मैं रिवर्स से पूछता हूं: सिस्टम प्रशासकों को प्रोग्रामिंग के बारे में कितना पता होना चाहिए? विशेष रूप से, एक sadadmin के लिए कौन से प्रोग्रामिंग टूल उपयोगी हैं?


1
यह एक SO प्रश्न नहीं होना चाहिए। मुझे लगता है कि यह पहले से ही वहाँ वैसे भी पूछा गया है।
टिम मैथ्यूज


2
हां, लेकिन जैसा कि उस प्रश्न पर उल्लेख किया गया है, एसएफ और एसओ पर दो बहुत अलग समुदाय मौजूद हैं। मुझे लगता है कि यह देखना दिलचस्प होगा कि प्रोग्रामर की चीजें sysadmins को लगता है कि sysadmins को पता होना चाहिए, बजाय इसके कि प्रोग्रामर चीजों को प्रोग्रामर को लगता है कि sysadmins को पता होना चाहिए।
टिम

जवाबों:


29
  • संस्करण नियंत्रण । पैच को जेनरेट करने, पढ़ने और लागू करने में सक्षम हो। पता है कि एक संस्करण नियंत्रण प्रणाली का उपयोग कैसे करें जो रिपॉजिटरी विस्तृत संस्करण प्रस्तुत करता है और आप एक क्यों चाहते हैं। जानते हैं कि वर्णनात्मक चैंज कैसे लिखें और आप उन्हें क्यों चाहते हैं। कीवर्ड और समय सीमा के लिए रिपॉजिटरी के लॉग को खोजने का तरीका जानें।
  • स्क्रिप्टिंग । एक बार कुछ करो और अपने रास्ते पर रहो। इसे दो बार या अधिक, एक बार करें फिर एक स्क्रिप्ट लिखें।
  • डिबगिंग । स्टैक ट्रेस पढ़ना सीखें और अपने सॉफ़्टवेयर समर्थन संपर्क से संबंधित त्रुटियों की रिपोर्ट कैसे करें। त्रुटि ढूंढना अच्छा और मददगार है, लेकिन इसे ठीक करने का तरीका जानना कोड को पढ़ने में बहुत अधिक निवेश कर सकता है। वह हिस्सा करें जो आपके लिए आसान है, और उन्हें वह हिस्सा करने दें जो उनके लिए आसान हो।
  • परीक्षण । निरंतर निगरानी करें और त्रुटियों को लॉग करें। संस्करण नियंत्रण और परीक्षण के साथ संयोजन के रूप में उपयोग किया जाता है, आपके पास इस बात का एक मजबूत विचार है कि तब क्या गलत हो सकता है और तब क्या बदल सकता है। उत्पादन और प्रीप्रोडक्शन दोनों की निगरानी करें।
  • पीयर रिव्यू । उत्पादन प्रणालियों में परिवर्तन का प्रस्ताव और समीक्षा करें। प्रीप्रोडक्शन पर टेस्ट करें, वास्तव में निर्धारित करें कि क्या किया जाना चाहिए और रिकॉर्ड करें कि सेवाओं को कितने समय तक प्रभावित किया जा सकता है। नौकरशाही सत्ता की राजनीतिक लड़ाइयों में प्रबंधन को न बदलने दें।
  • अध्ययन क्रिप्टोग्राफी । एक आधुनिक प्रणाली प्रशासक नेटवर्क संसाधनों का प्रभारी है; सुरक्षा को अंतिम चरण के रूप में जोड़ना कहीं न कहीं असंभव और बहुत महंगा प्रस्ताव है। सार्वजनिक कुंजी क्रिप्टोग्राफी, पासवर्ड हैंडलिंग प्रथाओं और सामान्य रूप से एन्क्रिप्शन को समझना अत्यंत मूल्यवान होगा।

और यहां तक ​​कि अगर आप स्क्रिप्ट (या स्क्रिप्ट अच्छी तरह से) नहीं कर सकते हैं, तो यह पहचानने में सक्षम होने के लिए कि किसी चीज को स्वचालित करना बहुत महत्वपूर्ण है।
ईथर

शुद्ध विंडोज शॉप के लिए त्वरित और आसान संस्करण नियंत्रण प्रणाली क्या है?
jftuga

SVN? : मेरा मतलब है, यह इस बेवकूफ के लिए काफी अच्छा लगता है codinghorror.com/blog/2008/04/...
jldugger

9

मैं इसके साथ शुरू करूँगा:

  1. सबसे बुनियादी लिपियों से अधिक कैसे लिखें भाषा कोई फर्क नहीं पड़ता। स्वचालन आपका मित्र है।
  2. डिबगर को कैसे चलाएं / किसी प्रकार की क्रैश रिपोर्ट को पढ़ना सीखें: यह एक क्रैश रिपोर्ट का पता लगाता है और यह पूछना है कि क्या बहुत आसान है।
  3. संस्करण नियंत्रण - केवल कोड के लिए नहीं, बल्कि एक इतिहास या परिवर्तन नियंत्रण रखने लायक कुछ के लिए।

7

सिस्टम प्रशासन सिर्फ प्रोग्रामिंग है। एक कॉन्फ़िगरेशन प्रबंधन प्रणाली आपको एक वितरित मशीन के रूप में आपके पूरे बुनियादी ढांचे को देखने की सुविधा देती है। एक sysadmin के रूप में, आपका काम इस मशीन को प्रोग्राम करना है।

एक पाठ संपादक को जानें। आमतौर पर vi के लिए sysadmins, emacs प्रोग्रामर के लिए।

जानिए कैसे करें स्क्रिप्ट। स्क्रिप्टिंग भाषा चुनें। पर्ल एक बारहमासी पसंदीदा है, जैसा कि शेल / sed / awk कॉम्बो है। रूबी और पायथन काम कर सकते हैं, लेकिन बहुत सी चीजों के लिए वस्तुएं गलत प्रतिमान हैं।

पता है कि पठनीय प्रलेखन कैसे लिखना है।

संस्करण नियंत्रण। कॉन्फ़िगरेशन फ़ाइलों और ऑडिट ट्रेल्स को बनाए रखने के लिए महत्वपूर्ण।

प्रोग्रामिंग शब्दों में सोचना सीखें। प्रक्रियात्मक, वस्तु उन्मुख और कार्यात्मक प्रोग्रामिंग प्रतिमानों को समझें। इनका उपयोग कभी नहीं किया जा सकता है, लेकिन उन्हें जानना आपको असीम रूप से अधिक उत्पादक बनाता है।

डिबगर (या अधिक) और लॉगिंग का उपयोग करना सीखें।

RDBMS का उपयोग करना सीखें। आरडीबीएमएस का सही ढंग से उपयोग करके डेटा प्रोसेसिंग आवश्यकताओं को सरल बनाया जा सकता है। यहां तक ​​कि मांग पर एक डीबीए की भूमिका पर स्विच करने में सक्षम होने से चमत्कार कर सकते हैं।

तैनाती से पहले टेस्ट परीक्षण-संचालित विकास दर्शन देखें।

जोड़ी प्रोग्रामिंग अच्छी है। किसी और को जानने / सलाह / सही करने के लिए अपने कंधे पर रखें।

कम से कम भाषाओं के एक समूह के साथ एक परिचित परिचित होना सीखें। हर साल एक नई भाषा सीखें।


वास्तविक दुनिया में वापस ... मुझे अभी तक एक ऐसे सिडसमिन से मिलना है जो इसमें से कोई भी करता है (इसके अलावा थोड़ा सा परीक्षण और लेखन)। शायद मैंने गलत कंपनियों के लिए काम किया है!
पॉवरऐप १२

1
तब वास्तविकता का आपका संस्करण बेकार है। मेरा हर एक कार्यकर्ता vi को पसंद करता है (मैंने emacs सीखा और दो बार उस यातना से भागने का मन नहीं किया); हमें समर्थन उद्देश्यों के लिए सैकड़ों पर्ल स्क्रिप्ट और एक दर्जन एक-बंद php वेबसाइट मिली हैं। हम निगरानी के लिए ऑप्सव्यू / नगियोस चलाते हैं, जो वास्तव में निरंतर रूप से चलने वाले परीक्षण का कोई रूप है - जब आप कोई बदलाव करते हैं तो त्वरित प्रतिक्रिया। फिर भी, मैं वेबसाइटों और लिपियों और बेहतर ऑडिट ट्रेल्स के लिए अधिक संस्करण नियंत्रण प्राप्त करना चाहूंगा।
ld

आप लोग यूनिक्स एडिंस हैं? विंडोज की दुनिया में, उस सामान का बहुत हिस्सा अभी तक sys व्यवस्थापक की चेतना में रिसना है। मेरा विश्वास करो, अगर यह किया तो मुझे अच्छा लगेगा।
पॉवरऐप १२

20 वीं सदी का लड़का, हमने इस सामान को सीखने में अपने विंडोज एडिंस को लात मारी। वे अभी तक वहां नहीं हैं, लेकिन जब मैंने ज्वाइन किया था तब से यहां बेहतर है। अब हम जिन बड़ी समस्याओं का सामना कर रहे हैं, वे राजनीतिक / प्रबंधन के मुद्दे हैं, बजाय हमारे तकनीकी मुद्दों के।
देवदास

ओह, और हमारे पास एक सुराग के साथ विंडोज डेवलपर्स भी हैं, इसलिए वे वास्तव में इस तरह के प्रयासों के समर्थक हैं।
देवदास

5
  • जानिए कैसे करें कार्यक्रम हां, यह महत्वपूर्ण है: जैसा कि एक टिप्पणीकार ने कहा, यदि आप इसे एक से अधिक बार करते हैं, तो एक स्क्रिप्ट लिखें - और इसे अच्छी तरह से लिखें।
  • एक मानक ऑपरेटिंग सिस्टम इंस्टॉलेशन में शामिल टूल को जानें। UNIX व्यवस्थापकों के लिए, इसका अर्थ है कर्न शेल (ksh) और पर्ल और vi जैसे उपकरण। Emacs या Ruby या Tcl या C शेल पर मौजूद होने पर भरोसा न करें।
  • नेटवर्क को जानें। ईथरनेट पैकेट्स को एक साथ कैसे रखा जाता है? एक पैकेट कैसा दिखता है? विभिन्न प्रकार के पैकेट क्या हैं? Tcpdump, wirehark, snoop, और अन्य जैसे टूल को जानें।
  • पोर्टेबल कोड लिखें। यदि कोड Linux - और Tru64 - और Solaris - और OpenVMS के तहत चलने वाला है, तो पोर्टेबल कोड लिखें। यहां तक ​​कि अगर यह केवल UNIX के दो संस्करणों के तहत चलेगा - इसे पोर्टेबल बनाएं। लेकिन तब, अगर उसे पोर्टेबल होने की जरूरत नहीं है, तो उस पर अतिरिक्त समय खर्च न करें।
  • जानिए कहां है डॉक्यूमेंटेशन Perl के लिए, इसका अर्थ है perldoc, Perl Mongers, perl.org, आदि। ksh के लिए, इसका अर्थ है मैन पेज और आपकी पसंदीदा Korn खोल पुस्तकें।
  • दस्तावेज़, दस्तावेज़, दस्तावेज़, दस्तावेज़! अपने कोड का दस्तावेज़, मैन पेज बनाएँ, इनलाइन पर्ल दस्तावेज़ बनाएँ, और जो भी उचित हो। बताएं कि प्रोग्राम का उपयोग कैसे करें और आपने इसे इस तरह से कोडित क्यों किया।
  • अपने सिस्टम के पैकेजिंग टूल्स को जानें। Red Hat, या HP-UX डिपो, या सोलारिस पैकेज के लिए RPM बनाने का तरीका जानें: यह आपको अपने सिस्टम के लिए संकुल बनाने की अनुमति देगा, और इस तरह उन्हें अधिष्ठापन प्रक्रिया में एकीकृत करेगा।

3

स्क्रिप्टिंग आवश्यक है, लेकिन मैं यह सलाह दूंगा कि कुछ "वास्तविक" भाषाओं को जानना एक निश्चित बोनस है। आप उदाहरण के लिए .NET System.DirectoryServices नाम स्थान के साथ कुछ बहुत उपयोगी चीजें कर सकते हैं।


3

मैं एक प्रोग्रामर और सीनियर एडमिन / इंटीग्रेटर हूं। काम करने के लिए जहां मैं करता हूं, आपको निम्नलिखित बातें जानने की जरूरत है:

  • शेल स्क्रिप्ट (POSIX, नो बाशिज़), थोड़ा पर्ल, थोड़ा पायथन कैसे लिखें
  • बेसिक सी (सिंगल यूनिक्स विनिर्देश)
  • संकलक उपकरण श्रृंखला कैसे स्थापित करें
  • स्रोत से पुस्तकालयों और अन्य ओएसएस परियोजनाओं का निर्माण कैसे करें
  • Valgrind क्या है और इसका उपयोग मेमोरी लीक्स को स्पॉट करने के लिए कैसे किया जाता है
  • रोल .rpm और .deb पैकेज कैसे रोल करें
  • जबकि हमें इसकी आवश्यकता नहीं है , थोड़ा PHP और थोड़ा LISP चोट नहीं करेगा

अधिकांश जूनियर व्यवस्थापक हमारे प्रोग्रामरों में से एक को देख सकते हैं और कह सकते हैं (प्राधिकरण के साथ), हां, मैंने इसे सही तरीके से स्थापित किया है, यहां पर आपके पास एक रिसाव है, यही वजह है कि जिस कोड को आपने अभी धक्का दिया है वह टूट रहा है। या "नहीं, MySQL का हमारा संस्करण नहीं है , यहां अपनी क्वेरी देखें ..."

मुझे लगता है कि हम एक अलग तरह के हैं, जब हम एक उपहार प्रशासक को किराए पर लेते हैं .. हम उनके लिए आधे रास्ते की उम्मीद करते हैं (अंततः) प्रोग्रामिंग के लिए अपना रास्ता ढूंढते हैं, भले ही इसकी हैकिंग कुछ हम काम करने के लिए जिस तरह से वे इसे काम करने की आवश्यकता के लिए उपयोग करते हैं ।

संक्षेप में, अच्छी तरह से गोल होना आपको कभी चोट नहीं पहुंचाने वाला है।


1

कई, कई साल पहले (विंडोज एनटी 3.1 वास्तव में) मैंने एक प्रोग्रामर के रूप में लेखन सेवाओं और यहां तक ​​कि सामयिक डिवाइस ड्राइवर में विशेषज्ञता शुरू की थी। इसका मतलब है कि आप विंडोज कर्नेल को अच्छी तरह से जानते हैं। समय में मैं प्रोग्रामिंग से थोड़ा ऊब गया और नेटवर्क प्रबंधन में बदल गया। मैंने पाया है कि प्रोग्रामिंग में मेरी पृष्ठभूमि बार-बार मूल्यवान है।

ऐसा नहीं है कि VBScript स्क्रिप्ट लिखना अपेक्षाकृत दर्द रहित है। यह जानना कि विंडोज कैसे काम करता है, और विशेष रूप से आईपी कैसे काम करता है, अजीब सर्वर और नेटवर्क की समस्याओं को सुलझाने में बहुत मदद करता है। इसके अलावा यह एक मानसिकता है। प्रोग्रामर का उपयोग दस्तावेज़ीकरण और संस्करण नियंत्रण के लिए किया जाता है, और यह मुझे यह देखने के लिए परेशान करता है कि कितने विंडोज व्यवस्थापक बस कुछ देखने की कोशिश करेंगे कि क्या यह काम करता है और बाद में गड़बड़ करने की चिंता करता है।

सभी बहुत अच्छी तरह से, लेकिन यह कहने के लिए बहुत उपयोगी नहीं है कि दूर चले जाओ और दस साल के लिए एक प्रोग्रामर के रूप में काम करें! हालाँकि, मुझे लगता है कि यह अधिकांश sysadmins को C ++ या C # जैसी "कठिन" भाषा में प्रोग्रामिंग का कुछ अनुभव रखने में मदद करेगा। और यदि आपके पास अपने संगठन में प्रसिद्धि प्रोग्रामर हैं, तो उनके साथ पियें!

जॉन रेनी


1

बुरी चीजें होती हैं, आपका कोड आपके विचार से अधिक लंबा होगा। उपयोगी त्रुटि संदेशों के साथ इनायत करें। आप डिस्क, रैम, सीपीयू, समय आदि से बाहर निकलेंगे, इससे निपटेंगे।

इतना आशावादी मत बनो, कि एक लाख अंक में एक बार अजीब उत्पादन में बहुत बार हो जाएगा।


1

यहाँ सभी विवरणों के साथ, मैं यह नहीं कहने जा रहा हूँ कि मैं एक पापी व्यक्ति हूँ। लेकिन तथ्य यह है कि मैं बनाया और विंडोज़ / लिनक्स सर्वर के एक जोड़े का प्रबंधन, मैं कुछ स्वीकार करना चाहिए:

  • linux में, bash scripting को जानना आवश्यक है - यदि आप जानते हैं कि इसे perl / awk / etc के साथ कैसे एकीकृत किया जाए, तो बेहतर है। मैंने पाया कि इसका उपयोग करने से कई कार्य आसान हो गए।

  • C / C ++ में प्रोग्राम जानने से बहुत मदद मिलती है। कभी-कभी आपको अपनी आवश्यकताओं के अनुरूप एक GNU स्रोत कोड (यदि आप एक का उपयोग करते हैं) को संशोधित करना होगा क्योंकि एक GNU उत्पाद बन गया है तो यह सुनिश्चित नहीं करता है कि आपको हमेशा समय पर आपकी ज़रूरत की मदद मिलेगी - और कई बार वे C / C ++ में लिखे जाते हैं।


0
  • SQL - सब कुछ डेटाबेस के साथ काम करता है
  • प्रोग्रामिंग - भाषा तब तक मायने नहीं रखती है, जब तक आप तर्क और प्रक्रिया को समझते हैं और आप सीख सकते हैं और किसी भी भाषा को अपना सकते हैं।
  • डॉक्यूमेंट कोड और परिवर्तन कैसे करें - यह एक बहुत बड़ा है। कितनी बार आप एक कॉन्फ़िगरेशन को देखने के लिए अटक गए हैं यह जानने की कोशिश कर रहे हैं कि बिल्ली ने किसी को ऐसा क्यों किया और अगर हम इसे वापस बदल देते हैं तो यह प्रभावित करने वाला है। जब आप कोड या स्क्रिप्ट से परे जाते हैं, तो यह तब कवर करता है, जब आप फायरवॉल सेटिंग्स में बदलाव करते हैं, जब फ्रिंज केस को संभालने के लिए फ़ायरवॉल सेटिंग्स में बदलाव होता है, जब एक बारिश के दिन दोपहर को डोमेन वाई से ईमेल आता है। और यह आप नहीं हो सकते हैं, यह वह PFY हो सकता है जिसने आगे बढ़ने का फैसला किया है और इसे करना है और फिर आपको अपनी छुट्टी पर 2 बजे कॉल करना होगा क्योंकि सब कुछ एक गुप्त तरीके से टूट गया।
  • सिस्टम लैंग्वेज - विंडोज पर यह पॉवर्सशेल और डब्ल्यूएमआई जैसी चीजें हैं जो आपकी स्क्रिप्टिंग भाषाओं को कुछ बहुत शक्तिशाली संसाधनों में बांधने और पीसी पर कुछ भी करने देती हैं। यूनिक्स / लिनक्स के पास उपकरणों का अपना सेट है जिसे मैं बोलने के लिए योग्य नहीं हूं।

0

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

बुनियादी लग सकता है, लेकिन मैंने बहुत सारी ब्रेड-एन-मक्खन की दुकानें देखी हैं, जहां लोगों को नहीं लगता कि उन्हें इस तरह के सिस्टम प्रशासन की आवश्यकता है। बहुत से स्थान प्रशासनिक साधनों के बड़े सेटों पर बड़ा $ $ $ खर्च करते हैं और जहाँ तक मैं बता सकता हूँ, 95% वे जो उपकरण उपयोग करते हैं वह कुछ घंटों की पटकथा के साथ किया जा सकता था अगर कोई जानता था या जानता था कि कैसे कर दो।


0

मैंने पाया है कि बैश, डॉस बैच, और पॉवरशेलिंग स्क्रिप्टिंग किसी भी लोकप्रिय सिस्टम पर कुछ भी करने के लिए फ्रेमवर्क के साथ एक सिस्टम एडमिन प्रदान करते हैं।

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