Tampilkan postingan dengan label Linux. Tampilkan semua postingan
Tampilkan postingan dengan label Linux. Tampilkan semua postingan

[Belajar] BASH Script #1: Untuk Pemula



Bash untuk pemula
Logo bash script


Belajar BASH Script #1:
1. Perkenalan
2. Basic: Print "Stdout"
3. Basic: Variable

1. Perkenalan

Apa itu BASH Script?
BASH Script adalah sebuah skrip yang mengkompilasi command-command di dalam shell dan biasa digunakan di dalam Linux Shell. BASH sendiri adalah singkatan dari "Bourne Again Shell" yaitu perkembangan dari "Bourne Shell (.sh)". Pemrograman bash shell itu sendiri adalah pemrograman kumpulan perintah menggunakan script yang ditulis ke dalam bash shell, sehingga nantinya dapat dieksekusi oleh sistem operasi. Selain bash shell, ada banyak shell lainnya yang bisa digunakan untuk programming, namun penggunaan bash lebih fleksibel karena script yang ditulis lebih kompatibel untuk dibaca dari mesin yang berbeda, distro linux yang berbeda , atau bahkan sistem operasi yang berbeda. Pemrograman menggunakan shell terutama bash shell berkembang terus sampai sekarang karena penggunaannya di kalangan system administrator sangat dibutuhkan.

2. Print "Stdout"
#!/bin/bash
echo "Hello Dweeb!";
Pada Script di atas, bila dijalankan kita maka akan mengeluarkan output sebuah kata `Hello Dweeb!`.

3. Basic: Variable
#!/bin/bash
aku=Suhada;
echo "Hello nama saya $aku";
Pada Script di atas, variable dibuat dengan nama `aku` yang isi variable tersebut adalah `Suhada` jika ingin memanggil variable tersebut menggunakan `$` dan nama variable. Script diatas bila dijalankan maka akan mengeluarkan output `Hello nama saya Suhada`.

Sekian penjelasan dasar untuk mengenal BASH Script #1

Perintah Perintah Dasar Editor VIM

Logo VIM

Vim adalah program komputer yang dipakai untuk menulis teks (text editor/editor teks) sama seperti program-program di atas. Vim merupakan singkatan dari Vi iMproved yang dirilis pertama kali tahun 1991.

Perintah Edit file Editor VI
 vi : Masuk ke editor vi tanpa membuka/membuat file apapun.
 vi [namafile] : Membuka file pada bari pertama
 vi+n [namafile]  : Membuka file pada baris ke – n
 vi + [namafile]  : Membuka file pada baris terakhir
 vi [namafile1] & [namafile2] : Membaca bebrapa file sekaligus

Perintah Keluar dari Editor VI
* Perintah di bawah di awali dengan menekan esc
 :w : Menyinpam file tanpa keluar
 :w! : Menyinpam file tanpa keluar
 :q : Keluar dari editor vi tanpa menyimpan
 :q! : Keluar dari editor vi tanpa menyimpan
 :wq : Menyimpan file dan keluar

Perintah untuk menulis text (inserting text)
 i : Menulis text (Lanjutkan text)
 o : Menulis text (Baris Baru)
 a : Menulis text

Perintah mengapus text
 x : Menghapus text
 dd : Menghapus text berbaris

Perintah untuk undo
 u : Undo text dengan 1 per 1
 uu : Undo text berbaris

Perintah cursor
 h : cursor kiri
 j : Cursor bawah
 k : Cursor atas
 l : Cursor kanan

Apa itu FHS (Filesystem Hierarchy Standard) ?

Apa itu FHS
Struktur FHS
FHS adalah Sebuah struktur atau tata letak untuk menempatkan file atau direktori pada system operasi LINUX yang mirip UNIX. FHS juga menjadi acuan atau pedoman standar direktori dalam meracik distribusi LINUX yang operasional.

Dibawah ini adalah penjelasan dari masing – masing direktori pada gambar diatas :

1. /bin/ : direktori yang berisi file-file binary standar yang dapat digunakan oleh seluruh user baik user biasa maupun super user (perintah dasar dalam linux).

2. /boot/ : direktori yang berisi file-file untuk booting Linux.

3. /dev/ : direktori yang berisi file system khusus yang merupakan refleksi device hard-ware yang dikenali dan digunakan sistem seperti Hard Disk, Floppy Disk, Flash Disk, dll.

4. /etc/ : direktori yang berisi file-file konfigurasi sistem, dan hanya boleh diubah oleh super user.

5. /home/ : direktori yang berisi yang merupakan direktori home untuk semua user.

6. /lib/ : direktori yang berisi file-file library yang digunakan untuk mendukung kerja kernel Linux.

7. /media/ : direktori point pengaitan pada media yang dapat dibongkar pasang.

8. /mnt/ : merupakan direktori khusus yang disediakan untuk mounting (mengaitkan) device disk
storage ke sistem dalam bentuk direktori.

9. /opt/ : Berisi paket aplikasi tambahan(add-on), biasanya berupa aplikasi biner/propietar.

10. /sbin/ : direktori yang sama seperti direktori /bin, tetapi hanya super user yang se-baiknya menggunakan binary- binary tersebut mengingat fungsi-fungsi binary yang terdapat di direktori ini untuk maintenance system.

11. /srv/ : direktori yang berisi data untuk semua layanan system yang bersangkutan.

12. /tmp/ : berisi file-file sementara yang dibutuhkan sebuah aplikasi yang sedang berjalan.

13. /usr/ : direktori yang berisi library, binary, dokumentasi dan file lainnya hasil instalasi user.

14. /var/ : direktori yang berisi file-file log, mailbox dan data-data aplikasi

15. /root/ : direktori home untuk user root (user khusus dengan priviledges hampir tak terbatas.

16. /proc/ : berisi file system khusus yang menunjukkan data-data kernel setiap saat.


FHS diatas ini berlaku untuk semua distro Linux (Ubuntu, Red Hat, Fedora, etc.).

[Server] Tutorial Failover Menggunakan UCARP

Failover
Konsep Failover

Sebelum masuk ke tutorial mengenai UCARP, saya akan membahas sedikit tentang failover. Failover adalah suatu teknik jaringan dengan memberikan dua jalur koneksi atau lebih dimana ketika salah satu jalur mati, maka koneksi masih tetap berjalan dengan disokong oleh jalur lainnya. Teknik failover ini cukup penting ketika kalian menginginkan adanya koneksi jaringan internet yang handal.
Read more : https://mikrotikindo.blogspot.com/2014/05/tutorial-failover-2-koneksi-internet-di.html


UCARP merupakan protokol yang mengizinkan beberapa hosts di jaringan lokal yang sama untuk berbagi IP Address yang sama. Tujuan utama CARP adalah untuk menyediakan failover secara redudant, terutama ketika digunakan dengan firewall dan router.

Contoh untuk DNS :
IP : 192.168.1.231 [www.dipakai.com] (MASTER) [SERVER1]
IP : 192.168.1.234 [www.backupdipakai.com] (SLAVE) [SERVER2]
IP : 192.168.1.250 [www.dipakai.com] (UCARP) [Virtual Address]

Konfigurasi :
* Lakukan pada kedua server [Master dan Slave]
1. Installah UCARP
suhada@coretan:~$ sudo apt-get install ucarp -y
2. Tambahkan IP address [Virtual Address]
suhada@Server-MASTER:~$ sudo nano /etc/network/interfaces
Setting ip address server master
* Jika kalian "malas" mengetik seperti gambar diatas. kalian dapat mengambil source disini  

suhada@Server-SLAVE:~$ sudo nano /etc/network/interfaces
Failover menggunakan UCARP
Setting ip address server slave
* Jika kalian "malas" mengetik seperti gambar diatas. kalian dapat mengambil source disini  

3. Restart service network
suhada@Server-MASTER:~$ sudo /etc/init.d/networking restart
suhada@Server-SLAVE:~$ sudo /etc/init.d/networking restart

4. Melihat hasil ip address yang telah di setting
* MASTER
Ip address MASTER
* SLAVE
Ip address SLAVE
* PENGUJIAN * 

* Note : Kedua server [MASTER,SLAVE] sudah terinstall webserver apache

* Halaman utama server MASTER
Failover dengan UCARP
Halaman webserver MASTER

* Halaman utama server SLAVE
Halaman webserver SLAVE

* Pada pengujian saya coba untuk mematikan Server MASTER.

Iya tampilan pada domain www.dipakai.com berubah menjadi tampilan yang ada pada www.backupdipakai.com [SLAVE]. Seperti konsep FAILOVER jika MASTER down atau mati akan di gantikan oleh SLAVE.

Jika kalian melihat ip address pada SLAVE akan ada perubahan :

eth0:ucarp yang awalnya ada pada server MASTER akan berpindah ke Server SLAVE


[Tools] Jadwal Shalat Seluruh Dunia

Tools Jadwal Shalat Seluruh Dunia
Logo masjid
Tools ini memudahkan kita untuk melihat jadwal shalat pada umat muslim didunia, tools ini menggunakan API yang disediakan oleh http://muslimsalat.com/ , Example : http://muslimsalat.com/Bekasi.json?key=bd099c5825cbedb9aa934e255a81a5fc

Tools Jadwal Shalat Seluruh Dunia
Contoh tools

Untuk kalian yang ingin mencobanya bisa mendapatkan pada github saya
source code: https://github.com/suhada99/JadwalShalat


[Server] Mengenal IPTABLES

Mengenal IPTABLES
Iptables

Iptables adalah suatu tools dalam sistem operation linux yang berfungsi untuk melakukan filter terhadap trafic atau yang bisa disebut juga dengan firewall. Dengan iptables ini kita bisa mengatur setiap komputer, baik dari paket yang masuk ke komputer, paket yang keluar dari komputer ataupun packet yang hanya melewati komputer.

Fungsi yang digunakan table pada iptables
1. NAT = Network address translation suatu motede untuk menghubungkan lebih dari satu komputer ke jaringan internet.
2. MANGLE = Suatu cara yang digunakan untuk menandai suatu paket data, seperti TTL, TOS dan MARK
3. FILTER = Digunakan untuk pemfilteran paket, yang nantinya akan di apakan (DROP,LOG,ACCEPT,REJET)

Contoh :

suhada@coretan:~$ sudo iptables -A INPUT -p TCP --dport 22 -s 192.168.1.0/24 -j DROP

* Setiap ip address (NETWORK) 192.168.1.0/24 mengakses port 22 akan di drop /
tolak

suhada@coretan:~$ sudo iptables -A INPUT -p ICMP –s 192.168.1.0/24 -j DROP

* Setiap ip address (NETWORK) 192.168.1.0/24 mencoba ping pada server makan
akan time out, tetapi masih bisa akses internet


Perintah perintah dasar yang biasanya digunakan untuk iptables

* Melihat list iptables
suhada@coretan:~$ sudo iptables -L INPUT -n --line-numbers

* Menghapus iptables
suhada@coretan:~$ sudo iptables -D INPUT

* Melihat paket yang mencoba
suhada@coretan:~$ sudo iptables -L -v

Untuk melihat lebih banyak lagi perintah bisa menggunakan perintah
suhada@coretan:~$ man iptables


[Server] Mengenal Dan Menginstall Webserver Apache2

Mengenal Apache2 Dan Installasi
Logo Apache

Apache
adalah server web yang dapat dijalankan di banyak sistem operasi (Unix, BSD, Linux, Microsoft Windows dan Novell Netware serta platform lainnya) yang berguna untuk melayani dan memfungsikan situs web. Protokol yang digunakan untuk melayani fasilitas web/www ini menggunakan HTTP. Read more wikipedia

Bagaimana caranya kita installasi webserver apache tersebut? Sungguh mudah kalian hanya memasukan perintah berikut

Ubuntu :
suhada@coretan:~$ sudo apt-get install apache2 -y

CentOs :
suhada@coretan:~$ sudo yum install httpd -y

Tunggu hingga proses installasi selesai, jika installasi selesai maka bukalah pada browser anda http://localhost/ atau http://ipaddressanda/.
Mudah bukan untuk kalian menginstallasi sebuah webserver apache ?

[Tools] Serunya Bermain Game Ular Pada Terminal Linux

Game Ular Pada Terminal Linux
Gambar Ular 

Banyak sekali orang yang belum mengetahui bahwa kalian dapat bermain game seru pada Terminal Linux, contohnya seperti tools game menebak angka yang saya buat pada artikel sebelumnya. Dan disini saya ingin memberitahukan kepada kalian semua bahwa ada game yang lebih seru lagi, yaitu SNAKE jika diartikan dalam bahasa indonesia adalah ULAR. Game ini menggunakan bahasa pemograman python.

Source Code : https://gist.github.com/sanchitgangwar/2158089
Ambil code pada link yang diatas dan simpan dengan file berekstensikan .py

$ python snake.py
Permainan Ular Di Linux
Gambar Permainan Ular

Permainan ular pada terminal linux ini dibuat oleh sanchitgangwar , memang banyak tools yang telah dia buat dengan bahasa pemograman python bukan hanya permainan ular masih ada yang lainnya.

[Tools] Pemantauan Gempa Terkini

Gambar Gempa
Belakang ini negeri kita tercinta Indonesia sedang dilanda bencana alam, ditahun 2018 ini telah terjadi dua kali Gempa Bumi. Pertama yaitu gempa bumi yang terjadi di Lombok pada Juli 2018 hingga berkuatan 6,4 Mw , Hingga memakan korban lebih dari 20 tewas, 401 luka-luka, 10,062 rumah rusak. Kedua yaitu gempa bumi + tsunami yang terjadi di Sulawesi Tengah pada Semtember 2018 hingga berkuatan 7.7SR, Hingga korban tewas dan luka luka kurang lebih dari 1234 orang.
Tools Pemantauan Gempa Terkini  ini mungkin berguna untuk melihat pemberitahuan dari BMKG [Badan Meteorologi, Klimatologi, dan Geofisika] http://data.bmkg.go.id/autogempa.xml, Tools ini sudah telah saya buat pada 3 bulan yang lalu.

Tools ini dibuat 3 bahasa, yaitu :
  • Python
  • PHP
  • Bash
Source code : https://github.com/suhada99/GempaTerikini
Tools Gempa Terkini
Gambar Gempa Terkini

Untuk cara menggunakannya sudah di jelaskan pada github yang saya beri link nya di atas.

[Docker] Membuat Image Dengan Dockerfile

Membuat image dengan Dockerfile
Logo Docker

Secara default container pada Docker tidak akan menyimpan segala sesuatu software yang kalian install dalam suatu Operasi Sistem didalam container, jadi saat kalian membuat suatu container dengan OS Ubuntu dan kalian mengkonfigurasi dengan menginstall beberapa software, lalu kalian merestart container tersebut atau service docker mati dan kalian menghidupkannya kembali, apapun yang sudah di konfigurasi atau diinstall software akan terhapus.

LALU BAGAIMANA AGAR SOFTWARE TERSEBUT TIDAK TERHAPUS?

Kalian dapat menggunakan Dockerfile dengan memasukan script dan perintah untuk menginstall suatu software yang nantinya akan menjadi sebuah image.
Contoh :
suhada@coretan:~$ cat Dockerfile
FROM ubuntu:16.04

RUN apt-get update 
RUN apt-get install nano -y
RUN apt-get install apache2 -y

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

EXPOSE 80

suhada@coretan:~$ docker build -t namaimage .
Sending build context to Docker daemon 2.048 kB
Step 1/7 : FROM ubuntu:16.04
 ---> b9e15a5d1e1a
Step 2/7 : RUN apt-get update
 ---> Using cache
 ---> d544fad27afd
Step 3/7 : RUN apt-get upgrade -y
 ---> Using cache
 ---> f9f4733462f9
Step 4/7 : RUN apt-get install nano -y
 ---> Using cache
 ---> e66ca8893ae4
Step 5/7 : RUN apt-get install apache2 -y
 ---> Using cache
 ---> f9a37df8f18e
Step 6/7 : CMD /usr/sbin/apache2ctl -D FOREGROUND
 ---> Running in c9ad40c28571
 ---> 754d28b5b8ca
Removing intermediate container c9ad40c28571
Step 7/7 : EXPOSE 80
 ---> Running in c1aeb80d7fce
 ---> 3fcdfc6700d8
Removing intermediate container c1aeb80d7fce
Successfully built 3fcdfc6700d8

Setelah dibuild lalu kalian membuat suatu container dengan menggunakan image tersebut.
suhada@coretan:~$ docker run -dit --name namacontainer -p 81:80 namaimage 
381a8466b55b98146aa1b5ddxxxxxxxxxxf8b352a24cf50a44031129c889b62

Container sudah berjalan, bukalah pada browser anda dengan alamat http://localhost:81/ jika software apache2 berjalan silahkan kalian merestart container atau service Docker, dan software apache2 tersebut masih tetap berjalan.
Dengan kalian menggunakan Dockerfile untuk membuat suatu image, kalian tidak perlu cape cape masuk kedalam container untuk menginstall suatu software dan disaat container ke restart dengan sendirinya atau service docker mati, kalian tidak perlu menginstall lagi software tersebut.

Tambahan :
Kalian dapat mempelajari script pada Dockerfile di => https://medium.com/ade-sadikin/mengenal-docker-bagian-2-dockerfile-ddb65f6573c4


[Tools] Permainan Menebak Angka

gTebakangKa adalah Game tebak angka yang dimana kalian hanya menebak angka yang keluar secara acak. Angka yang akan keluar secara acak tersebut mulai dari 1 - 10, game tebak angka ini berjalan via command line (CLI) / terminal (tested on linux) dan aplikasi(tools) game tebak angka ini saya membuatnya menjadi 3 bahasa pemograman, yaitu :
  1. Python
  2. PHP
  3. Bash Shell
Tools Game Tebak Angka
Game Tebak Angka Via CLI
Untuk kalian yang ingin mencoba keseruan game tebak angka tersebut bisa mendapatkannya digithub saya.


Bagaimana cara menggunakannya ? 
Python
 suhada@coretan:~$ python gTangka.py
PHP :
 suhada@coretan:~$ php gTangka.php
Bash :
 suhada@coretan:~$ chmod +x gTangka.sh
 suhada@coretan:~$ ./gTangka.sh

Selamat mencoba.

[Docker] Mengenal Dan Menggunakannya

Logo Docker
Logo Docker

Docker
adalah salah satu platform yang dibangun berdasarkan teknologi container. Docker merupakan sebuah project open-source yang menyediakan platform terbuka untuk developer maupun sysadmin untuk dapat membangun, mengemas, dan menjalankan aplikasi dimanapun sebagai sebuah wadah (container) yang ringan. Dengan sangat populernya docker, sebagian orang sering menganggap docker adalah sebutan lain untuk container.

[Tools] Mengenal Dan Menggunakan Metagoofil

Metagoofil adalah tools yang digunakan untuk mencari atau mengumpulkan informasi berdasarkan tipe dokument dari situs tertentu yang telah di indexing oleh google.
Bagaimana cara menggunakannya?
Untuk yang menggunakan OS kali linux / backtrack sudah ada tinggal memasukan perintahnya saja, namun yang menggunakan OS backbox harus mendownloadnya.

Pengertian Linux Kernel

Pengertian Linux Kernel

Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari sebuah sistem operasi.
Tugasnya melayani bermacam program aplikasi untuk mengakses perangkat keras komputer secara aman. Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi.
Sebuah program dapat saja langsung diload dan dijalankan di atas mesin komputer, yaitu bilamana pembuat program ingin melakukan pekerjaannya tanpa bantuan abstraksi perangkat keras.
Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin berpindah dari satu program ke program lain, kita harus mereset dan meload kembali program-program tersebut.