Ubuntu मा Bash स्क्रिप्टको पूर्ण गाइड | स्वचालन र कार्य व्यवस्थापन अनुकूलन

目次

1. Bash को आधारभूत

Bash शेल भनेको के हो

Bash (Bourne Again Shell) लिनक्स डिस्ट्रीब्युसनहरूमा सबैभन्दा सामान्य रूपमा प्रयोग गरिने कमान्ड लाइन इन्टरफेस हो। यो सरल र शक्तिशाली उपकरणले प्रयोगकर्तालाई प्रणालीसँग अन्तर्क्रिया गर्नका लागि प्लेटफर्म प्रदान गर्दछ, फाइल सञ्चालन, कार्यक्रम सञ्चालन, कार्य व्यवस्थापन आदि, धेरै आधारभूत कार्यहरू सम्पादन गर्न सक्छ।

Bash को फाइदाहरू

  • शक्तिशाली स्क्रिप्ट क्षमता:Bash ले शेल स्क्रिप्ट प्रयोग गरेर जटिल कार्यहरूलाई स्वचालित गर्न सक्छ।
  • व्यापक समर्थन:धेरैजसो युनिक्स-आधारित अपरेटिंग सिस्टमहरू र लिनक्स डिस्ट्रीब्युसनहरूमा समर्थित छ।
  • उच्च अनुकूलन क्षमता:एलाइास वा शेल फङ्क्शनहरूबाट, प्रयोगकर्ताले आफ्नो कार्य शैली अनुसार वातावरणलाई अनुकूलित गर्न सक्छन्।
# सरल Bash कमान्ड उदाहरण
echo "नमस्कार, विश्व!"
年収訴求

2. ब्यासका आधारभूत कमान्डहरू

फाइल सञ्चालन

ब्यासमा सबैभन्दा बढी प्रयोग हुने फाइल सञ्चालन कमान्डहरू प्रस्तुत गर्दछौं।
  • ls:डाइरेक्टरीको सामग्री सूची रूपमा देखाउँछ।
  • cd:डाइरेक्टरी परिवर्तन गर्दछ।
  • cp:फाइल वा डाइरेक्टरी प्रतिलिपि गर्दछ।
  • mv:फाइल स्थानान्तरण गर्दछ वा नाम परिवर्तन गर्दछ।
  • rm:फाइल हटाउँछ।
# डाइरेक्टरीको सामग्री विस्तृत रूपमा देखाउनुहोस्
ls -l

# होम डाइरेक्टरीमा जानुहोस्
cd ~

# फाइल प्रतिलिपि गर्नुहोस्
cp source.txt destination.txt

# फाइल स्थानान्तरण गर्नुहोस्
mv old_name.txt new_name.txt

# फाइल हटाउनुहोस्
rm unwanted_file.txt

प्रणाली जानकारी र प्रक्रिया व्यवस्थापन

प्रणाली जानकारी जाँच गर्न र प्रक्रिया व्यवस्थापन गर्नका लागि कमान्डहरू पनि महत्वपूर्ण छन्।
  • ps:सक्रिय प्रक्रियाहरू देखाउँछ।
  • top:प्रक्रियाको रीयल-टाइम सूची र प्रणालीको अवलोकन देखाउँछ।
  • kill:प्रक्रियालाई सिग्नल पठाएर समाप्त गर्दछ।
# सक्रिय प्रक्रियाहरू देखाउनुहोस्
ps aux

# प्रणालीको अवलोकन र प्रक्रिया सूची देखाउनुहोस्
top

# प्रक्रिया ID १२३४ समाप्त गर्नुहोस्
kill 1234

3. ब्यास स्क्रिप्ट लेख्ने तरिका

स्क्रिप्टको आधारभूत संरचना

ब्यास स्क्रिप्ट धेरै कमान्डहरू समावेश गर्ने फाइल हो। स्क्रिप्ट सिर्जना गरेर, तपाईं एक श्रृंखला सञ्चालनहरूलाई स्वचालित गर्न र निष्पादन गर्न सक्नुहुन्छ।
#!/bin/bash
# यो लाइनलाई शेब्याङ भनिन्छ, र यो स्क्रिप्ट व्याख्या गर्न प्रयोग गरिने शेल निर्दिष्ट गर्दछ।

echo "नमस्ते, विश्व!"  # echo कमान्डले स्ट्रिङ प्रदर्शित गर्दछ

भेरियबलको प्रयोग

भेरियबल प्रयोग गरेर डाटा बचत गर्न र स्क्रिप्ट भित्र पुन: प्रयोग गर्न सकिन्छ।
#!/bin/bash
message="नमस्ते, ब्यास स्क्रिप्टिङ!"
echo $message

शर्त र लूपहरू

जटिल तर्क र कार्यहरूको दोहोर्याइलाई प्रक्रिया गर्नका लागि, शर्त विभाजन वा लूपहरू प्रयोग गरिन्छ।
#!/bin/bash
# if वाक्यको उदाहरण
if [ $1 -gt 100 ]
then
  echo "संख्या १०० भन्दा बढी छ।"
else
  echo "संख्या १०० वा कम छ।"
fi

# for लूपको उदाहरण
for i in 1 2 3 4 5
do
  echo "लूपिङ ... संख्या $i"
done

4. बाश प्रयोग गरेर कार्य स्वचालन

कार्य स्वचालनको अवलोकन

बाश स्क्रिप्ट प्रयोग गरेर, नियमित कार्यहरूलाई कुशलतापूर्वक स्वचालित गर्न सकिन्छ। प्रणाली ब्याकअप, डाटाको सिंक्रोनाइजेसन, रिपोर्ट उत्पन्न गर्ने जस्ता विभिन्न प्रक्रियाहरूलाई स्वचालित गरेर प्रणाली व्यवस्थापनको झन्झट घटाउन सकिन्छ।

स्वचालित ब्याकअप स्क्रिप्ट

दैनिक डाटा संरक्षणको लागि, निम्न स्क्रिप्टले निर्दिष्ट डाइरेक्टरीलाई नियमित रूपमा ब्याकअप गर्दछ।
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)

# यदि ब्याकअप डाइरेक्टरी अस्तित्वमा छैन भने, यसलाई सिर्जना गर्नुहोस्
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

# डाइरेक्टरीको सामग्रीलाई संकुचित गरेर ब्याकअप गर्नुहोस्
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "Backup completed successfully."

क्रोन जॉब प्रयोग गरेर स्क्रिप्टको स्वचालित निष्पादन

क्रोन प्रयोग गरेर, माथिको ब्याकअप स्क्रिप्टलाई दैनिक बिहान २ बजे निष्पादन हुने गरी सेट गर्दछ।
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. समस्या निवारण र सामान्य त्रुटिहरू

बाश त्रुटिहरूको समझ र समाधान

बाश स्क्रिप्ट चलाउँदा त्रुटि हुनु सामान्य हो। यहाँ, सामान्य त्रुटिहरू र तिनको समाधानहरूको बारेमा व्याख्या गरिएको छ।

कमाण्ड फेला नपर्ने त्रुटि

यसलाई चलाउने प्रयास गरिएको कमाण्ड प्रणालीमा स्थापित नभएको वा पथ सही रूपमा सेट नभएको अवस्थामा हुन्छ।
command not found
  • समाधान: कमाण्डको स्थापना जाँच गर्नुहोस्, $PATH वातावरण चर सही रूपमा सेट भएको छ कि जाँच गर्नुहोस्।

अधिकार त्रुटि

फाइल वा निर्देशिकामा पहुँच अधिकार अपर्याप्त भएको अवस्थामा हुन्छ।
Permission denied
  • समाधान: आवश्यक अधिकार भएको प्रयोगकर्ताद्वारा सञ्चालन गर्नुहोस् वा chmod वा chown कमाण्डले अधिकार परिवर्तन गर्नुहोस्।

संरचना त्रुटि

स्क्रिप्ट भित्रको कोड सही फर्म्याटमा लेखिएको नभएको अवस्थामा हुन्छ।
syntax error: unexpected end of file
  • समाधान: स्क्रिप्टलाई ध्यानपूर्वक जाँच गर्नुहोस् र संरचना त्रुटि सुधार्नुहोस्।

फाइल फेला नपर्ने त्रुटि

निर्दिष्ट फाइल अस्तित्व नभएको अवस्थामा हुन्छ।
No such file or directory
  • समाधान: फाइलको पथ सही छ कि जाँच गर्नुहोस् र अस्तित्व पुष्टि गर्नुहोस्।

डिबग उपकरणको प्रयोग

बाश स्क्रिप्टको डिबगका लागि, set -x प्रयोग गर्दा प्रभावकारी हुन्छ। यसले स्क्रिप्टका प्रत्येक चरणहरू सञ्चालन समयमा देखाउँछ, जसले त्रुटिको कारण पहिचान गर्न सजिलो बनाउँछ।
set -x  # स्क्रिप्टको डिबगलाई सक्रिय गर्नुहोस्

6. बाश प्रयोग गरेर कार्य स्वचालन

कार्य स्वचालनको अवलोकन

बाश स्क्रिप्ट प्रयोग गरेर, नियमित कार्यहरूलाई कुशलतापूर्वक स्वचालित गर्न सकिन्छ। प्रणाली ब्याकअप, डाटाको सिंक्रोनाइजेसन, रिपोर्ट उत्पन्न गर्ने जस्ता विभिन्न प्रक्रियाहरूलाई स्वचालित गरेर प्रणाली व्यवस्थापनको झन्झट कम गर्न सकिन्छ।

स्वचालित ब्याकअप स्क्रिप्ट

दैनिक डाटा संरक्षणको लागि, निम्न स्क्रिप्टले निर्दिष्ट डाइरेक्टरीलाई नियमित रूपमा ब्याकअप गर्दछ।
#!/bin/bash
SRC_DIR="/home/user/documents"
DST_DIR="/backup/documents"
DATE=$(date +%Y%m%d)

# यदि ब्याकअप डाइरेक्टरी अस्तित्वमा छैन भने सिर्जना गर्नुहोस्
if [ ! -d "$DST_DIR" ]; then
  mkdir -p "$DST_DIR"
fi

# डाइरेक्टरीको सामग्रीलाई संकुचित गरेर ब्याकअप गर्नुहोस्
tar -czf "$DST_DIR/backup_$DATE.tar.gz" -C "$SRC_DIR" .
echo "ब्याकअप सफलतापूर्वक सम्पन्न भयो।"

cron जॉब द्वारा स्क्रिप्टको स्वचालित निष्पादन

cron प्रयोग गरेर, माथिको ब्याकअप स्क्रिप्टलाई दैनिक बिहान २ बजे निष्पादन गर्ने गरी सेटअप गर्दछ।
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 "ब्याकअप $DATE मा सफल भयो" >> $LOG_FILE
else
  echo "ब्याकअप $DATE मा असफल भयो" | mail -s "ब्याकअप असफल" admin@example.com
fi