उबंटू पर बैश स्क्रिप्टिंग के लिए पूर्ण गाइड | स्वचालन और कार्य प्रबंधन अनुकूलन

目次

1. Bash की बुनियादें

Bash शेल क्या है?

Bash (Bourne Again Shell) Linux वितरणों में सबसे अधिक उपयोग किया जाने वाला कमांड‑लाइन इंटरफ़ेस है। यह सरल yet शक्तिशाली टूल उपयोगकर्ताओं को सिस्टम के साथ इंटरैक्ट करने का मंच प्रदान करता है, जिससे वे फ़ाइल संचालन, प्रोग्राम निष्पादन, और कार्य प्रबंधन जैसे आवश्यक कार्य कर सकते हैं।

Bash के लाभ

  • शक्तिशाली स्क्रिप्टिंग क्षमताएँ : Bash उपयोगकर्ताओं को शेल स्क्रिप्ट्स के माध्यम से जटिल कार्यों को स्वचालित करने की अनुमति देता है।
  • व्यापक समर्थन : यह अधिकांश Unix‑आधारित ऑपरेटिंग सिस्टम और Linux वितरणों द्वारा समर्थित है।
  • उच्च अनुकूलनशीलता : उपयोगकर्ता अपने कार्यप्रवाह के अनुसार एलियास और शेल फ़ंक्शन्स का उपयोग करके अपने वातावरण को कस्टमाइज़ कर सकते हैं।
# Simple Bash command example
echo "Hello, World!"

2. बेसिक Bash कमांड्स

फ़ाइल संचालन

Bash में सबसे अधिक उपयोग किए जाने वाले फ़ाइल संचालन कमांड्स यहाँ दिए गए हैं।

  • ls : किसी डायरेक्टरी की सामग्री को सूचीबद्ध करता है।
  • cd : डायरेक्टरी बदलता है।
  • cp : फ़ाइलों या डायरेक्टरीज़ की प्रतिलिपि बनाता है।
  • mv : फ़ाइलों को स्थानांतरित या उनका नाम बदलता है।
  • rm : फ़ाइलों को हटाता है।
# Display detailed contents of a directory
ls -l

# Move to the home directory
cd ~

# Copy a file
cp source.txt destination.txt

# Move a file
mv old_name.txt new_name.txt

# Delete a file
rm unwanted_file.txt

सिस्टम जानकारी और प्रोसेस प्रबंधन

सिस्टम जानकारी की जाँच और प्रोसेस का प्रबंधन भी आवश्यक कार्य हैं।

  • ps : सक्रिय प्रोसेस दिखाता है।
  • top : प्रोसेस की रीयल‑टाइम सूची और सिस्टम का अवलोकन प्रदर्शित करता है।
  • kill : प्रोसेस को समाप्त करने के लिए सिग्नल भेजता है।
# Display active processes
ps aux

# Show system overview and process list
top

# Terminate process with ID 1234
kill 1234

3. Bash स्क्रिप्ट लिखना

बेसिक स्क्रिप्ट संरचना

Bash स्क्रिप्ट एक फ़ाइल होती है जिसमें कई कमांड्स होते हैं। स्क्रिप्ट बनाकर आप कई ऑपरेशन्स को स्वचालित और निष्पादित कर सकते हैं।

#!/bin/bash
# This line is called a shebang and specifies the shell interpreter for the script.

echo "Hello, World!"  # Displays a string using the echo command

वेरिएबल्स का उपयोग

वेरिएबल्स का उपयोग स्क्रिप्ट के भीतर डेटा को संग्रहीत और पुनः उपयोग करने के लिए किया जा सकता है।

#!/bin/bash
message="Hello, Bash Scripting!"
echo $message

कंडीशनल स्टेटमेंट्स और लूप्स

कंडीशनल स्टेटमेंट्स और लूप्स जटिल लॉजिक और दोहराव वाले कार्यों को संभालने में मदद करते हैं।

#!/bin/bash
# Example of an if statement
if [ $1 -gt 100 ]
then
  echo "The number is greater than 100."
else
  echo "The number is 100 or less."
fi

# Example of a for loop
for i in 1 2 3 4 5
do
  echo "Looping ... number $i"
done

4. Bash के साथ कार्यों का स्वचालन

टास्क ऑटोमेशन का अवलोकन

Bash स्क्रिप्ट्स का उपयोग करके आप सिस्टम बैकअप, डेटा सिंक्रनाइज़ेशन, और रिपोर्ट जनरेशन जैसे नियमित कार्यों को प्रभावी ढंग से स्वचालित कर सकते हैं, जिससे सिस्टम प्रशासन में लगने वाला प्रयास कम हो जाता है।

ऑटोमेटेड बैकअप स्क्रिप्ट

दैनिक डेटा सुरक्षा के लिए, निम्नलिखित स्क्रिप्ट निर्दिष्ट डायरेक्टरी का नियमित रूप से बैकअप लेती है।

#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)

# Create the backup directory if it doesn't exist
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

# Compress and back up the directory contents
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."

क्रोन जॉब्स के साथ स्क्रिप्ट्स को स्वचालित रूप से चलाना

क्रोन का उपयोग करके आप ऊपर दी गई बैकअप स्क्रिप्ट को रोज़ाना सुबह 2 बजे चलाने के लिए शेड्यूल कर सकते हैं।

0 2 * * * /path/to/backup.sh

एरर हैंडलिंग और नोटिफिकेशन्स

बैकअप प्रक्रिया के दौरान त्रुटियों को संभालने के लिए, एरर डिटेक्शन जोड़ें और जब समस्याएँ उत्पन्न हों तो व्यवस्थापक को नोटिफिकेशन भेजें।

#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
LOG_FILE="/var/log/backup.log"
DATE=$(date +%Y%m%d)

if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

if tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .; then
  echo "Backup successful on $DATE" >> $LOG_FILE
else
  echo "Backup failed on $DATE" | mail -s "Backup Failure" admin@example.com
fi

5. समस्या निवारण और सामान्य त्रुटियाँ

Bash त्रुटियों को समझना और संभालना

Bash स्क्रिप्ट चलाते समय त्रुटियों का सामना करना आम बात है। यह अनुभाग कुछ सामान्य त्रुटियों और उन्हें कैसे हल किया जाए, को समझाता है।

Command Not Found त्रुटि

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

command not found
  • Solution: जाँचें कि कमांड स्थापित है या नहीं और सुनिश्चित करें कि $PATH पर्यावरण चर सही तरीके से सेट है।

Permission Denied त्रुटि

यह त्रुटि तब आती है जब आपके पास फ़ाइल या डायरेक्टरी तक पहुँचने के लिए आवश्यक अनुमतियाँ नहीं होतीं।

Permission denied
  • Solution: ऑपरेशन को उपयुक्त उपयोगकर्ता खाते के साथ चलाएँ या chmod या chown कमांड का उपयोग करके फ़ाइल अनुमतियों को बदलें।

Syntax त्रुटि

यह त्रुटि तब होती है जब स्क्रिप्ट में सिंटैक्स गलत हो।

syntax error: unexpected end of file
  • Solution: स्क्रिप्ट को ध्यानपूर्वक समीक्षा करें और किसी भी सिंटैक्स त्रुटि को ठीक करें।

File Not Found त्रुटि

यह त्रुटि तब आती है जब निर्दिष्ट फ़ाइल मौजूद नहीं होती।

No such file or directory
  • Solution: फ़ाइल पाथ सही है यह सत्यापित करें और सुनिश्चित करें कि फ़ाइल मौजूद है।

डिबगिंग टूल्स का उपयोग

Bash स्क्रिप्ट को डिबग करने के लिए set -x का उपयोग करें, जो प्रत्येक कमांड को उसके निष्पादन के समय दिखाता है, जिससे त्रुटियों की पहचान आसान हो जाती है।

set -x  # Enable script debugging

6. उन्नत Bash तकनीकें

फ़ंक्शनों के साथ काम करना

Bash स्क्रिप्ट में फ़ंक्शन कोड को मॉड्यूलर बनाते हैं और पुन: उपयोग योग्य बनाते हैं।

#!/bin/bash
# Define a function
greet() {
  echo "Hello, $1!"
}

# Call the function with an argument
greet "Alice"

उपयोगकर्ता इनपुट को संभालना

Bash स्क्रिप्ट कमांड लाइन से इनपुट स्वीकार करके उपयोगकर्ताओं के साथ इंटरैक्ट कर सकती हैं।

#!/bin/bash
echo "Enter your name:"
read name
echo "Hello, $name!"

एरेज़ के साथ काम करना

Bash एरेज़ को सपोर्ट करता है, जिससे आप एक ही वेरिएबल में कई मान संग्रहीत कर सकते हैं।

#!/bin/bash
fruits=("Apple" "Banana" "Cherry")

# Accessing elements
echo "First fruit: ${fruits[0]}"

# Looping through an array
for fruit in "${fruits[@]}"; do
  echo "Fruit: $fruit"
done

रेगुलर एक्सप्रेशन और स्ट्रिंग मैनिपुलेशन

Bash स्क्रिप्ट रेगुलर एक्सप्रेशन का उपयोग करके स्ट्रिंग्स को बदल सकती हैं और पैटर्न से मेल खा सकती हैं।

#!/bin/bash
text="Bash scripting is fun!"

# Extract a substring
echo "${text:0:4}"  # Output: Bash

# Replace a word
echo "${text//fun/exciting}"  # Output: Bash scripting is exciting!

7. निष्कर्ष

सारांश

यह गाइड बुनियादी Bash कमांड्स से लेकर स्क्रिप्टिंग, ऑटोमेशन और समस्या निवारण तक सब कुछ कवर करता है। Bash में निपुणता हासिल करके आप सिस्टम कार्यों को कुशलता से प्रबंधित और स्वचालित कर सकते हैं।

आगे का अध्ययन

  • प्रोसेस सब्स्टिट्यूशन और नेम्ड पाइप्स जैसी उन्नत स्क्रिप्टिंग तकनीकों का अन्वेषण करें।
  • Python जैसी अन्य प्रोग्रामिंग भाषाओं के साथ Bash को एकीकृत करना सीखें।
  • वास्तविक दुनिया के ऑटोमेशन कार्यों के साथ प्रयोग करके अपनी स्क्रिप्टिंग कौशल को बढ़ाएँ।

Bash कौशल को लगातार सुधारते रहकर आप एक अधिक प्रवीण सिस्टम एडमिनिस्ट्रेटर या डेवलपर बन सकते हैं।

侍エンジニア塾