Sabtu, 13 September 2014

“Bash script untuk meng-automatisasi hidup Anda”

Pada dasarnya, hampir semua perintah/aplikasi Linux/Ubuntu* dapat dijalankan melalui terminal. Perintah-perintah tersebut dapat di automatisasi dengan membuat aplikasi script yang dalam hal ini sedang dibahas adalah bash script.


Untuk memulai bash script, pada section pertama ini saya akan bahas mengenai perintah dasar pada Linux;
1. Asumsi Anda telah mengerti syntax dasar Linux sehingga saya tidak menuliskannya, seperti;
buat file,
buat direktori,
menghapus file,
menghapus direktori
mengganti owner file
mengganti mode file
dan perintah dasar lainnya

Jika Anda menguasai perintah diatas, lanjut pada perintah dibawah.


2. Membersihkan terminal
$ clear


3. Mendefinisikan variabel dan memanggil variabel dari terminal
$ bolang=”ini variabel bolang”
$ echo $bolang
ini variabel bolang


4. Membuat funcion langsung pada terminal
$ function kambiang { echo “ini memanggil kambiang”; }
$ kambiang
ini memanggil kambiang
$

$ function kambiangGadang() { echo “ini kambiang gadang”; }
$ kambiangGadang
ini kambiang gadang
$


5. List file berdasarkan ekstensi
Asumsi didalam folder ada 3 file, yaitu: file01.jpg, file02.txt, file03.zip

Untuk melihat file, pasti menggunakan
$ ls
file01.jpg
file02.txt
file03.zip

Melihat file berdasarkan ekstensi;
$ ls *.jpg
file01.jpg

Melihat file lengkap dengan atribut dan ditambahkan array esktensi;
$ ls -l *.{jpg,txt,zip}
file01.jpg
file02.txt
file03.zip


6. Menjalankan beberapa perintah dengan 'satu kali enter'
Disini saya menggunakan sebuah contoh kasus git yang perintahnya berulangkali dilakukan sampai koding selesai. Saya pikir ini sangat menjengkelkan.
Perintah tersebut dapat diserderhanakan cukup dengan operator &&
$ git add . && git commit . && git push origin master

Jika perintah diatas dijalankan, maka pertama kali akan membuka 'editor CLI' default Anda untuk membuat keterangan commit. Setelah Anda menyimpannya, perintah akan dilanjutkan kepada git push.


Setelah mengenal beberapa perintah dasar seperti diatas, berikut saya akan membuat beberpa bash script sebagai contoh aplikatif;

1. Cek path interpreter bash script
$ which bash
/bin/bash


2. Membuat bash script pertama
Langkah pada CLI berikut adalah; membuat folder, berpindah ke folder yang dibuat, membuat file
$ mkdir bash_tut
$ cd bash_tut
$ nano hello_kambing.sh

Ketikkan dalam nano script berikut dan simpan;
#!/bin/bash
echo "hello kambing"

Selanjutnya ganti menjadi executable dan jalankan
$ chmod +x hello_kambing.sh
$ ./hello_kambing.sh
hello kambing
$

Atau dengan perintah lain, Anda bisa memanggil seperti berikut;
$ sh hello_kambing.sh
hello kambing
$


3. Operator && untuk membuat beberapa command dijalankan dalam satu kali eksekusi
Disini kembali saya menggunakan contoh git.
Jika pada point diatas Anda tetap mengetik beberapa kata untuk menjalankannya, sekarang Anda dapat membuat lebih sederhana dengan membuat sebuah aplikasi script.
Ketik kode berikut, berikan nama, jadikan executable dan jalankan;

#!/bin/bash
git add . && git commit . && git push origin master


4. Membaca input dari user
#!/bin/bash
clear
echo "Nama"
read nama
echo "Password"
read password
echo "Nama Anda adalah $nama, password $password"


5. Logical dan comparison
#!/bin/bash
clear
echo "Nama"
read nama
echo "Password"
read password
if [ $nama = "Nitza" ] && [ $password = "ganteng" ]
then echo "Anda memang ganteng"
else
echo "Anda tidak ganteng"
fi


6. Checking file/folder
#!/bin/bash
if test -f /home/nitza/kambiang
then
echo "kambiang ada"
else
echo "kambiang tidak ada"
fi


Beberapa command line untuk 'test'
- d Mengetahui direktori
-e Mengetahui file exist
-f Check regular file
-g SGI permission
-r Check readable
-s Check if file size != 0
-u SUID permission
-w Check writable
-x Check executable


7. Mempersingkat copy log file pada server
Terkadang Anda tidak malas mengetik command, tetapi hanya lupa mengingat folder/file path tempat beberapa log yang Anda butuhkan. Sementara pekerjaan ini tiap hari harus Anda kerjakan. Yap...buatlah bash script-nya dan tentu saja ini menggunakan perintah scp. Berikut contohnya;

#!/bin/bash
scp root@server.com:/usr/share/webserver_app/logs/log_file.txt /your_local_computer/home && gedit log_file.txt


8. Menjalankan modem

Hampir semua modem dapat berjalan dengan cara ini. Beberapa modem CDMA dan GSM yang tidak disupport oleh Ubuntu, ketika saya jalankan perintah ini dapat berjalan dengan sangat baik.

Hal yang pertama Anda lakukan adalah melihat usb Anda, memberikan modprobe yang terkait
$ lsusb

Perintah diatas dapat memberikan Anda vendor dan product modem Anda. Ingat kodenya untuk diisikan pada aplikasi bash script.

Ganti beberapa konfigurasi untuk wvdial. Jika belum ada aplikasi wvdial, silahkan install terlebih dahulu.
$ nano /etc/wvdial.conf
Ganti username dan password sesuai dengan ISP Anda

Buat bash script berikut.

#!/bin/bash
#beberpa modem auto run sebagai cd, dan eject dengan perintah berikut
sudo eject /dev/sr1

sleep 3
#modprobe sesuai dengan kode yang didapat dari lsusb
sudo modprobe usbserial vendor=0x19d2 product=0xfffe
sleep 10
#konfigurasi akan dijalankan otomatis berkaitan dengan /dev/ttyUSB[n]
sudo wvdialconf

sleep 3
#menjalankan wvdial (menyambungkan dengan ISP)
sudo wvdial


Masih banyak fungsi bash script yang dapat Anda tulis. Silahkan buat bash script Anda sendiri untuk meng-automatisasi pekerjaan Anda.