असफल होने के डर के बिना, कुछ सीखने के लिए आपको इसे करने की आवश्यकता है। मैं व्यावहारिकता में विश्वास करता हूं और इसलिए मैं आपके साथ स्क्रिप्टिंग लैंग्वेज की व्यावहारिक दुनिया में जाऊंगा।
यह लेख हमारे पहले लेख का विस्तार है लिनक्स शेल और बेसिक शेल स्क्रिप्टिंग को समझें - भाग I, जहां हमने आपको स्क्रिप्टिंग का स्वाद दिया, यह जारी रखते हुए कि हम आपको इस लेख में निराश नहीं करेंगे।
स्क्रिप्ट 1:एक विशेष पैटर्न बनाना
#!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read MAX_NO if ! [ $MAX_NO -ge 5 -a $MAX_NO -le 9 ] ; then echo "WTF... I ask to enter number between 5 and 9, Try Again" exit 1 fi clear for (( i=1; i<=MAX_NO; i++ )) do for (( s=MAX_NO; s>=i; s-- )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done ###### Second stage ###################### for (( i=MAX_NO; i>=1; i-- )) do for (( s=i; s<=MAX_NO; s++ )) do echo -n " " done for (( j=1; j<=i; j++ )) do echo -n " ." done echo "" done echo -e "\n\n\t\t\t Whenever you need help, Tecmint.com is always there"
उपरोक्त में से अधिकांश 'कुंजी शब्द ' आपको ज्ञात होगा और उनमें से अधिकांश स्व-व्याख्यात्मक हैं। उदा., MAX चर का अधिकतम मान सेट करता है, के लिए लूप है और लूप के भीतर कुछ भी बार-बार निष्पादित होता है जब तक कि लूप इनपुट के दिए गए मान के लिए मान्य न हो।
नमूना आउटपुट
[[email protected] ~]# chmod 755 Special_Pattern.sh [[email protected] ~]# ./Special_Pattern.sh Enter Number between (5 to 9) : 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Whenever you need help, Tecmint.com is always there
यदि आप किसी प्रोग्रामिंग भाषा के बारे में थोड़ा भी जानते हैं, तो उपरोक्त स्क्रिप्ट सीखना मुश्किल नहीं है, भले ही आप गणना, प्रोग्रामिंग और लिनक्स के लिए नए हों, यह ज्यादा मुश्किल नहीं होगा।
Special_Pattern.sh डाउनलोड करें
स्क्रिप्ट 2:रंगीन स्क्रिप्ट बनाना
कौन कहता है, लिनक्स बेरंग है और उबाऊ, नीचे दिए गए कोड को किसी भी चीज़ में सेव करें [डॉट ] श , इसे निष्पादन योग्य बनाएं और इसे चलाएं, मुझे यह बताना न भूलें कि यह कैसा था, सोचें कि आप क्या हासिल कर सकते हैं, इसे कहीं लागू कर सकते हैं।
#!/bin/bash clear echo -e "33[1m Hello World" # bold effect echo -e "33[5m Blink" # blink effect echo -e "33[0m Hello World" # back to normal echo -e "33[31m Hello World" # Red color echo -e "33[32m Hello World" # Green color echo -e "33[33m Hello World" # See remaining on screen echo -e "33[34m Hello World" echo -e "33[35m Hello World" echo -e "33[36m Hello World" echo -e -n "33[0m" # back to normal echo -e "33[41m Hello World" echo -e "33[42m Hello World" echo -e "33[43m Hello World" echo -e "33[44m Hello World" echo -e "33[45m Hello World" echo -e "33[46m Hello World" echo -e "33[0m Hello World"
नोट :अब रंग कोड के बारे में चिंता न करें, जो आपके लिए महत्वपूर्ण हैं, वे आपकी जुबान पर होंगे, धीरे-धीरे।
चेतावनी :आपके टर्मिनल में ब्लिंक करने की सुविधा नहीं हो सकती है।
नमूना आउटपुट
[[email protected] ~]# chmod 755 Colorfull.sh [[email protected] ~]# ./Colorfull.sh Hello World Blink Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World Hello World
Colorfull.sh डाउनलोड करें
स्क्रिप्ट 3:एक फ़ाइल/निर्देशिका एन्क्रिप्ट करें
यह स्क्रिप्ट एक फ़ाइल को एन्क्रिप्ट करेगी (याद रखें? निर्देशिका /ड्राइवर /…. लिनक्स . में सब कुछ फ़ाइल के रूप में माना जाता है ) उपरोक्त स्क्रिप्ट की वर्तमान सीमा यह है कि यह TAB . का उपयोग करके नाम के स्वतः पूर्ण होने का समर्थन नहीं करती है . इसके अलावा, आपको एक ही फ़ोल्डर में एन्क्रिप्टेड होने के लिए स्क्रिप्ट और फ़ाइल को रखने की आवश्यकता है। आपको "पिनेंट्री-गुई . इंस्टॉल करने की आवश्यकता हो सकती है ”, यम . का उपयोग करके या उपयुक्त पैकेज, यदि आवश्यक हो।
[[email protected] ~]# yum install pinentry-gui [[email protected] ~]# apt-get install pinentry-gui
“Encrypt.sh . नामक फ़ाइल बनाएं " और निम्न स्क्रिप्ट रखें, इसे निष्पादन योग्य बनाएं और इसे दिखाए अनुसार चलाएं।
#!/bin/bash echo "Welcome, I am ready to encrypt a file/folder for you" echo "currently I have a limitation, Place me to thh same folder, where a file to be encrypted is present" echo "Enter the Exact File Name with extension" read file; gpg -c $file echo "I have encrypted the file successfully..." echo "Now I will be removing the original file" rm -rf $file
नमूना आउटपुट
[[email protected] ~]# chmod 755 Encrypt.sh [[email protected] ~]# ./Encrypt.sh Welcome, I am ready to encrypt a file/folder for you currently I have a limitation, Place me to the same folder, where a file to be encrypted is present Enter the Exact File Name with extension package.xml ┌─────────────────────────────────────────────────────┐ │ Enter passphrase │ │ │ │ │ │ Passphrase *******_________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ Please re-enter this passphrase ┌─────────────────────────────────────────────────────┐ │ Please re-enter this passphrase │ │ │ │ Passphrase ********________________________________ │ │ │ │ <OK> <Cancel> │ └─────────────────────────────────────────────────────┘ I have encrypted the file successfully... Now I will be removing the original file </pre>
gpg -c :यह एक पासकी उर्फ पासवर्ड . का उपयोग करके आपकी फ़ाइल को एन्क्रिप्ट करेगा . सीखने की इस प्रक्रिया में आपने कभी नहीं सोचा होगा कि सीखने की वास्तविक प्रक्रिया इतनी आसान हो सकती है। तो एक फाइल को एन्क्रिप्ट करने के बाद आपको क्या चाहिए? स्पष्टतः! फ़ाइल को डिक्रिप्ट करना। और मैं चाहता हूं कि आप - शिक्षार्थी, पाठक स्वयं डिक्रिप्शन स्क्रिप्ट लिखें, चिंता न करें मैं आपको बीच में नहीं छोड़ रहा हूं, मैं चाहता हूं कि आप इस लेख से कुछ हासिल करें।
नोट :gpg -d filename.gpg> फ़ाइल नाम आपको अपनी डिक्रिप्शन स्क्रिप्ट में लागू करने की आवश्यकता है। सफल होने पर आप अपनी स्क्रिप्ट टिप्पणी में पोस्ट कर सकते हैं, यदि नहीं तो आप मुझे इसे आपके लिए लिखने के लिए कह सकते हैं।
Encrypt.sh डाउनलोड करें
स्क्रिप्ट 4:सर्वर उपयोग की जांच करना
सर्वर उपयोग की जाँच करना एक प्रशासक के महत्वपूर्ण कार्यों में से एक है, और एक अच्छा प्रशासक वह है जो अपने दिन-प्रतिदिन के कार्य को स्वचालित करना जानता है। नीचे वह स्क्रिप्ट है जो आपके सर्वर के बारे में ऐसी कई जानकारी देगी। इसे स्वयं जांचें।
#!/bin/bash date; echo "uptime:" uptime echo "Currently connected:" w echo "--------------------" echo "Last logins:" last -a |head -3 echo "--------------------" echo "Disk and memory usage:" df -h | xargs | awk '{print "Free/total disk: " $11 " / " $9}' free -m | xargs | awk '{print "Free/total memory: " $17 " / " $8 " MB"}' echo "--------------------" start_log=`head -1 /var/log/messages |cut -c 1-12` oom=`grep -ci kill /var/log/messages` echo -n "OOM errors since $start_log :" $oom echo "" echo "--------------------" echo "Utilization and most expensive processes:" top -b |head -3 echo top -b |head -10 |tail -4 echo "--------------------" echo "Open TCP ports:" nmap -p- -T4 127.0.0.1 echo "--------------------" echo "Current connections:" ss -s echo "--------------------" echo "processes:" ps auxf --width=200 echo "--------------------" echo "vmstat:" vmstat 1 5
नमूना आउटपुट
[[email protected] ~]# chmod 755 Server-Health.sh [[email protected] ~]# ./Server-Health.sh Tue Jul 16 22:01:06 IST 2013 uptime: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Currently connected: 22:01:06 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 USER TTY FROM [email protected] IDLE JCPU PCPU WHAT tecmint pts/0 116.72.134.162 21:48 0.00s 0.03s 0.03s sshd: tecmint [priv] -------------------- Last logins: tecmint pts/0 Tue Jul 16 21:48 still logged in 116.72.134.162 tecmint pts/0 Tue Jul 16 21:24 - 21:43 (00:19) 116.72.134.162 -------------------- Disk and memory usage: Free/total disk: 292G / 457G Free/total memory: 3510 / 3838 MB -------------------- OOM errors since Jul 14 03:37 : 0 -------------------- Utilization and most expensive processes: top - 22:01:07 up 174 days, 4:42, 1 user, load average: 0.36, 0.25, 0.18 Tasks: 149 total, 1 running, 148 sleeping, 0 stopped, 0 zombie Cpu(s): 0.1%us, 0.0%sy, 0.0%ni, 99.3%id, 0.6%wa, 0.0%hi, 0.0%si, 0.0%st PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 3788 1128 932 S 0.0 0.0 0:32.94 init 2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 3 root RT 0 0 0 0 S 0.0 0.0 0:14.07 migration/0
नोट :मैंने आपको वह स्क्रिप्ट दी है जो टर्मिनल में ही आउटपुट देती है, भविष्य के संदर्भ के लिए फ़ाइल में आउटपुट कैसे प्राप्त करें। रीडायरेक्ट ऑपरेटर का उपयोग करके इसे लागू करें।
- ‘> ' :पुनर्निर्देशन ऑपरेटर एक फ़ाइल निर्माण का कारण बनता है, और यदि यह मौजूद है, तो सामग्री को अधिलेखित कर दिया जाता है।
- ‘>> ' :जब आप>> का उपयोग करते हैं, तो आप इसे बदलने के बजाय जानकारी जोड़ रहे हैं।
- ‘>> '> . की तुलना में 'सुरक्षित है' '
सर्वर-Health.sh डाउनलोड करें
स्क्रिप्ट 5:डिस्क स्थान जांचें और ईमेल अलर्ट भेजें
जब डिस्क विभाजन में उपयोग की जाती है तो ईमेल प्राप्त करने के बारे में भाग अधिकतम अनुमत से बड़ा है, यह वेब व्यवस्थापकों के लिए थोड़े संशोधन के साथ एक जीवन रक्षक स्क्रिप्ट है।
MAX=95 [email protected] PART=sda1 USE=`df -h |grep $PART | awk '{ print $5 }' | cut -d'%' -f1` if [ $USE -gt $MAX ]; then echo "Percent used: $USE" | mail -s "Running out of disk space" $EMAIL fi
नोट :“उपयोगकर्ता . निकालें "आपके उपयोगकर्ता नाम के साथ। आप 'मेल . का उपयोग करके मेल की जांच कर सकते हैं 'आदेश।
चेक-डिस्क-स्पेस.श डाउनलोड करें
स्क्रिप्ट लेखन और प्रोग्रामिंग सीमाओं से परे है, कुछ भी और सब कुछ आवश्यकतानुसार लागू किया जा सकता है। अभी के लिए बस इतना ही, अपने अगले लेख में मैं आपको स्क्रिप्टिंग के कुछ अलग फ्लेवर दूंगा। तब तक मस्त रहें और देखते रहें, आनंद लें।