5 Skrip Shell untuk Pemula Linux untuk Mempelajari Pemrograman Shell - Bagian II


Untuk mempelajari sesuatu, Anda perlu melakukannya, tanpa takut gagal. Saya percaya pada kepraktisan dan karenanya akan menemani Anda ke dunia praktis Bahasa Scripting.

Artikel ini merupakan perpanjangan dari artikel Pertama kami Memahami Linux Shell dan Basic Shell Scripting – Bagian I, di mana kami memberi Anda gambaran tentang Scripting, melanjutkan bahwa kami tidak akan mengecewakan Anda dalam artikel ini.

Skrip 1: Menggambar Pola Khusus

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

Sebagian besar 'kata kunci' di atas sudah Anda ketahui dan sebagian besar sudah cukup jelas. misalnya, MAX menetapkan nilai maksimum variabel, for adalah perulangan dan apa pun di dalam perulangan akan dieksekusi berulang kali hingga perulangan tersebut valid untuk nilai masukan tertentu.

Contoh Keluaran
[root@tecmint ~]# chmod 755 Special_Pattern.sh
[root@tecmint ~]# ./Special_Pattern.sh
Enter Number between (5 to 9) : 6
       .
      . .
     . . .
    . . . .
   . . . . .
  . . . . . .
  . . . . . .
   . . . . .
    . . . .
     . . .
      . .
       .

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

Jika Anda sedikit paham tentang bahasa pemrograman apa pun, mempelajari skrip di atas tidaklah sulit, bahkan jika Anda baru mengenal komputasi, pemrograman, dan Linux, itu tidak akan terlalu sulit.

Unduh Special_Pattern.sh

Skrip 2: Membuat Skrip Berwarna-warni

Siapa bilang, Linux tidak berwarna dan membosankan, simpan kode di bawah ini ke [titik] sh apa pun, buat agar dapat dieksekusi dan Jalankan, jangan' Jangan lupa beritahu saya bagaimana hal itu, Pikirkan apa yang dapat Anda capai, dengan menerapkannya di suatu tempat.

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

Catatan: Jangan khawatir tentang kode warna sekarang, Hal-hal penting bagi Anda akan ada di lidah Anda, secara bertahap.

Peringatan: Terminal Anda mungkin tidak memiliki fasilitas berkedip.

Contoh Keluaran
[root@tecmint ~]# chmod 755 Colorfull.sh
[root@tecmint ~]# ./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

Unduh Colourfull.sh

Skrip 3: Enkripsi File/Direktori

Skrip ini akan mengenkripsi file (ingat? direktori/driver/…. semuanya diperlakukan sebagai file, di Linux ). Batasan skrip di atas saat ini adalah skrip tersebut tidak mendukung pelengkapan nama secara otomatis menggunakan TAB. Selain itu, Anda perlu menempatkan skrip dan file yang akan dienkripsi di folder yang sama. Anda mungkin perlu menginstal “pinentry-gui ”, menggunakan yum atau apt paket, jika diperlukan.

[root@midstage ~]# yum install pinentry-gui
[root@midstage ~]# apt-get install pinentry-gui

Buat file bernama “Encrypt.sh” dan tempatkan skrip berikut, buat agar dapat dieksekusi dan jalankan seperti yang ditunjukkan.

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

Contoh Keluaran

[root@tecmint ~]# chmod 755 Encrypt.sh
[root@tecmint ~]# ./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 : Ini akan mengenkripsi file Anda, menggunakan kunci sandi alias kata sandi. Dalam proses belajar ini Anda tidak akan pernah menyangka bahwa sebenarnya proses belajar bisa semudah itu. Jadi setelah mengenkripsi file, apa yang Anda butuhkan? Jelas sekali! mendekripsi file. Dan saya ingin Anda – pembelajar, pembaca menulis skrip dekripsi sendiri, jangan khawatir saya tidak akan meninggalkan Anda di tengah-tengah, saya hanya ingin Anda mendapatkan sesuatu dari artikel ini.

Catatan: gpg -d filename.gpg > filename adalah apa yang perlu Anda terapkan dalam skrip dekripsi Anda. Anda dapat memposting skrip Anda di komentar jika berhasil, jika tidak Anda dapat meminta saya menuliskannya untuk Anda.

Unduh Enkripsi.sh

Skrip 4: Memeriksa Utilisasi Server

Memeriksa pemanfaatan server adalah salah satu tugas penting seorang administrator, dan administrator yang baik adalah orang yang tahu cara mengotomatiskan tugasnya sehari-hari. Di bawah ini adalah skrip yang akan memberikan banyak informasi tentang server Anda. Periksa sendiri.

#!/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
Contoh Keluaran
[root@tecmint ~]# chmod 755 Server-Health.sh
[root@tecmint ~]# ./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              LOGIN@   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

Catatan: Saya telah memberi Anda skrip yang memberikan keluaran di terminal itu sendiri, bagaimana kalau mendapatkan keluaran dalam file untuk referensi di masa mendatang. Terapkan menggunakan operator pengalihan.

  1. >‘ : operator pengalihan menyebabkan pembuatan file, dan jika memang ada, kontennya akan ditimpa.
  2. >>‘ : saat Anda menggunakan >>, Anda menambahkan informasi, bukan menggantinya.
  3. >>‘ aman, dibandingkan dengan ‘>

Unduh Server-Health.sh

Skrip 5: Periksa Ruang Disk dan Kirim Peringatan Email

Bagaimana jika menerima email ketika penggunaan disk di partisi PART lebih besar dari Maksimum yang diizinkan, ini adalah skrip penyelamat hidup untuk administrator web dengan sedikit modifikasi.

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

Catatan: Hapus “USER” dengan nama pengguna Anda. Anda dapat memeriksa email menggunakan perintah 'mail'.

Unduh Periksa-Disk-Space.sh

Penulisan skrip dan pemrograman melampaui batas, apa pun dapat diimplementasikan sesuai kebutuhan. Itu saja untuk saat ini, Dalam artikel saya berikutnya, saya akan memberikan beberapa jenis skrip yang berbeda. Sampai saat itu tetap tenang dan selaras, selamat menikmati.