5 Shell Scripts maka Linux Newbies ịmụta Shell Programming - Nkebi II


Iji mụta ihe ị ga-eme ya, n'atụghị egwu ị gaghị aga nke ọma. Ekwenyere m na ịdị irè na ya mere a ga-eso gị gaa na ụwa bara uru nke Asụsụ Ederede.

Edemede a bụ ndọtị nke edemede mbụ anyị Ghọta Linux Shell na Basic Shell Scripting - Nkebi nke Mbụ, ebe anyị nyere gị uto nke Scripting, na-aga n'ihu na anyị agaghị emechu gị ihu na edemede a.

Edemede 1: Ịse Ụkpụrụ Pụrụ Iche

#!/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, linux-console.net is always there"

Ọtụtụ n'ime 'okwu ndị dị n'elu' ga-amata gị na ọtụtụ n'ime ha na-akọwa onwe ha. Dịka ọmụmaatụ, MAX na-edobe uru kachasị nke mgbanwe ahụ, n'ihi na ọ bụ loop na ihe ọ bụla dị na akaghị aka na-eme ugboro ugboro ruo mgbe loop ahụ dị irè maka uru ntinye aka nyere.

 chmod 755 Special_Pattern.sh
 ./Special_Pattern.sh
Enter Number between (5 to 9) : 6
       .
      . .
     . . .
    . . . .
   . . . . .
  . . . . . .
  . . . . . .
   . . . . .
    . . . .
     . . .
      . .
       .

                         Whenever you need help, linux-console.net is always there

Ọ bụrụ na ị maara ntakịrị asụsụ mmemme ọ bụla, ịmụta edemede a dị n'elu adịghị esiri ike, ọbụlagodi na ị dị ọhụrụ na mgbakọ, mmemme na Linux ọ gaghị esi ike.

Edemede 2: Ime edemede mara mma

Onye na-ekwu, Linux enweghị agba na-agwụ ike, chekwaa koodu ndị dị n'okpuru ebe a na ihe ọ bụla [dot] sh, mee ka ọ rụọ ọrụ ma Gbaa ya, echefula ịgwa m otú ọ dị, Chee ihe ị ga-enweta, na-emejuputa ya ebe.

#!/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"

Mara: Echegbula banyere koodu agba ugbu a, Ndị dị gị mkpa ga-anọ n'ire gị, nke nta nke nta.

Ịdọ aka ná ntị: ọnụ ọnụ gị nwere ike ọ gaghị enwe ohere nke ihichapụ.

 chmod 755 Colorfull.sh
 ./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

Edemede 3: zoo faịlụ/akwụkwọ ndekọ aha

Edemede a ga-ezochi faịlụ (cheta? directory/driver/…. A na-ewere ihe niile dị ka faịlụ, na Linux). Mmachi dị ugbu a nke edemede dị n'elu bụ na ọ naghị akwado ịmecha aha na-akpaghị aka site na iji TAB. Ọzọkwa, ịkwesịrị idowe edemede na faịlụ ka ezoro ezo na otu nchekwa ahụ. Ị nwere ike ịwụnye \pinentry-gui, na-eji yum ma ọ bụ dabara ngwugwu ahụ, ọ bụrụ na achọrọ ya.

 yum install pinentry-gui
 apt-get install pinentry-gui

Mepụta faịlụ a na-akpọ Encrypt.sh wee tinye edemede a, mee ka ọ rụọ ọrụ ma mee ya dịka egosiri.

#!/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

Mmepụta sample

 chmod 755 Encrypt.sh
 ./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: Nke a ga-ezochi faịlụ gị, na-eji paswọọdụ aka paswọọdụ. N'ime usoro mmụta a, ị gaghị eche na usoro mmụta n'ezie nwere ike ịdị mfe otú ahụ. Ya mere, mgbe izochiri faịlụ ihe ị chọrọ? N'ụzọ doro anya! decrypting faịlụ. Ma achọrọ m gị - onye na-amụ ihe, onye na-agụ akwụkwọ ka ị dee ederede decryption n'onwe gị, echegbula na agaghị m ahapụ gị n'etiti, achọrọ m ka ị nweta ihe dị n'isiokwu a.

Mara: gpg -d filename.gpg> filename bụ ihe ị ga-eme n'ime n'edemede nkwubi okwu gị. Ị nwere ike biputere gị script na ikwu ma ọ bụrụ na ọ ga-aga nke ọma, ọ bụrụ na ọ bụghị, ị nwere ike ịrịọ m ka m detara gị ya.

Edemede 4: Nyochaa ojiji nkesa

Ịlele iji ihe nkesa na-arụ ọrụ bụ otu n'ime ọrụ dị mkpa nke onye nchịkwa, na ezigbo onye nchịkwa bụ onye maara otú e si arụ ọrụ ya kwa ụbọchị. N'okpuru ebe a bụ edemede nke ga-enye ọtụtụ ozi dị otú ahụ gbasara ihe nkesa gị. Lelee ya n'onwe gị.

#!/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
 chmod 755 Server-Health.sh
 ./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    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

Rịba ama: Enyere m gị edemede nke na-enye mmepụta na njedebe n'onwe ya, ka esi enweta mmepụta na faịlụ maka nrụtụ aka n'ọdịnihu. Mee ya site na iji onye ọrụ redirect.

  1. '>' : onye na-arụ ọrụ ntụgharị na-ebute imepụta faịlụ, ma ọ bụrụ na ọ dị, a ga-edegharị ọdịnaya ya.
  2. '>>' : mgbe ị na-eji >>, ị na-agbakwunye ozi kama dochie ya.
  3. '>>' dị mma, dịka atụnyere ''>>

Ederede 5: Lelee oghere diski wee zipu ọkwa email

Kedu maka ịnweta ozi-e mgbe ojiji diski na nkebi PART karịrị nke kacha ekwe, ọ bụ edemede nchekwa ndụ maka ndị nchịkwa weebụ na-enwe obere mgbanwe.

MAX=95
[email 
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

Mara: Wepu “USER” na aha njirimara gị. Ị nwere ike ịlele ozi site na iji iwu 'mail'.

Ederede na mmemme karịrị oke, enwere ike imejuputa ihe ọ bụla na ihe niile dịka achọrọ. Nke ahụ bụ naanị ugbu a, n'isiokwu m na-esote, m ga-enye gị ụfọdụ ụtọ edemede dị iche iche. Ruo mgbe ahụ nọrọ jụụ ma na-ege ntị, nwee obi ụtọ.