Minggu, 26 Oktober 2014

Inter Process Communication Menggunakan Named Pipes(FIFO) pada Linux

Named Pipe atau biasa disebut special file FIFO(First In First Out) karena data akan di read berurutan dari data yang pertama di write ke pipe. Perbedaan named pipe dengan unnamed pipe adalah :

  • Named pipe eksis sebagai bagian dari filesystem.
  • Named pipe dapat diakses oleh berbagai proses untuk sharing data(reading dan writing).
  • Ketika semua I/O telah selesai dilakukan ketika proses komunikasi, named pipe tetap berada di filesystem sehingga dapat digunakan di lain waktu.
  • Bersifat bidirectional, file FIFO yang sama dapat di read from dan write into.


Ketika proses melakukan pertukaran data via named pipes, kernel melewatkan semua data secara internal tanpa melakukan write ke filesystem. Maka, special file FIFO tidak mempunyai isi di filesystem, file tersebut hanya digunakan sebagai reference point sehingga proses dapat meng-akses pipe menggunakan nama pipe tersebut di filesystem.

Berikut merupakan contoh implementasi FIFO yaitu komunikasi antar server dan client :

server.cpp




















































































































client.cpp































  • Named pipe atau FIFO dibuat menggunakan fungsi mkfifo() yang mempunyai 2 argumen, argumen ke-1 adalah nama FIFO yang akan dibuat dan argumen ke-2 adalah hak akses untuk file tersebut. Jika program ingin dijalankan lebih dari sekali, sebaiknya pembuatan named pipe/FIFO dilakukan di program lain yang khusus untuk membuat file FIFO tersebut. Ada baiknya jika return value sebuah fungsi seperti yang berhubungan dengan create dan open file diletakkan di sebuah variabel untuk mengecek apakah fungsi tersebut sukses dijalankan atau tidak. 

  • Setelah file FIFO dibuat(pada contoh di atas menggunakan nama server dan client), file tersebut dapat dibuka menggunakan system call open(). Argumen ke-2 pada system call open() menandakan apakah file tersebut hanya dapat di read(O_RDONLY) atau hanya dapat di write(O_WRONLY) atau bisa kedua-duanya(O_RDWR). 

 

  • Sebuah file FIFO harus dibuka kedua sisinya(reading dan writing) sebelum data dapat masuk. Contohnya jika server di execute, ketika file server di open untuk di read, terminal akan menunggu(wait state) hingga file server di open untuk di write suatu data oleh client.



  • Alur dari contoh program di atas adalah setelah client selesai menuliskan(write) data melalui file server, server akan membaca(read) data yang disampaikan melalui file server dan menampilkan data tersebut ke layar. Kemudian server akan membuka file client untuk menuliskan kembali data yang didapatkan tadi, dan client akan membaca data yang disampaikan melalui file client dan menempatkannya di string baru untuk ditampilkan ke layar. 

  • Hasilnya kedua proses tersebut dapat berkomunikasi melalui file FIFOs/named pipes.




  • Intinya agar dapat melakukan IPC menggunakan named pipes pada Linux dilakukan langkah-langkah seperti berikut :
  1. Buat named pipes/file FIFOs yang akan digunakan untuk berkomunikasi antar proses menggunakan fungsi mkfifo()
  2. File FIFO yang telah dibuat dibuka menggunakan system call open()
  3. File FIFO tersebut harus dibuka kedua sisinya(read dan write)(baik oleh dirinya sendiri atau melalui proses lain) agar dapat digunakan untuk berkomunikasi.
  4. Gunakan system call write() jika ingin menulis/mengirim data ke proses lain melalui file FIFO(bisa ke dirinya sendiri).
  5. Gunakan system call read() jika ingin membaca/menerima data dari proses lain melalui file FIFO(bisa dari dirinya sendiri).






Sekian postingan dari saya, semoga bermanfaat :)

Senin, 20 Oktober 2014

Cara Menggunakan Command "date" pada Terminal Linux

Command date pada Linux berguna untuk menampilkan date(tanggal, bulan, tahun) atau time(jam, menit, detik) dalam berbagai format. Command date juga dapat digunakan untuk mengatur date dan time sistem.

Syntax


date [OPTION]... [+FORMAT]



Berikut merupakan tabel beberapa format yang sering dipakai untuk command date :



Format optionsPurpose of OptionOutput
date +%aMenampilkan nama hari (pendek)Sen
date +%AMenampilkan nama hari (panjang)Senin
date +%bMenampilkan nama bulan (pendek)Feb
date +%BMenampilkan nama bulan (panjang)Februari
date +%dMenampilkan hari dalam bulan (01-31)07
date +%DMenampilkan bulan/tanggal/tahun sekarang02/07/13
date +%FMenampilkan tahun-bulan-tanggal sekarang2013-02-07
date +%HMenampilkan jam dengan jangkauan 00-2323
date +%IMenampilkan jam dengan jangkauan 01-1211
date +%jMenampilkan hari dalam tahun (001-366)038
date +%mMenampilkan bulan (01-12)02
date +%MMenampilkan menit (00-59)44
date +%SMenampilkan detik (00-60)17
date +%NMenampilkan nanoseconds (000000000-999999999)573587606
date +%TMenampilkan waktu dengan format HH:MM:SS
Note: Jam menggunakan format 24 jam
23:44:17
date +%uMenampilkan hari dalam minggu (1 = hari Senin)4
date +%UMenampilkan minggu dalam tahun, dengan hari Minggu sebagai awalnya (00-53)01
date +%YMenampilkan tahun (panjang)2014
date +%ZMenampilkan singkatan dari zona waktuWIB


Contoh Penggunaan :
  • date
Jika command date dijalankan tanpa option, akan menampilkan date dan time sistem/sekarang.





  • date +"%d-%m-%Y"
Beberapa format dapat dijalankan dalam 1 command date seperti berikut :





  • date -s "month/day/year HH:MM:SS"
Untuk mengatur/men-set date/time sistem digunakan option -s (jika perlu tambahkan sudo di depan date). Contoh di bawah ini mengubah waktu dari 17:51:17 ke 17:55:00.








  • date -r "nama_file"
Untuk mengetahui kapan terakhir kalinya suatu file dimodifikasi dapat menggunakan option -r





  • Menyimpan format date/time ke variabel pada shell script
Contoh di bawah ini menyimpan waktu sekarang(format HH:MM:SS) ke variabel bernama NOW, kemudian isi variabel NOW di echo(ditampilkan ke layar). Shell script tersebut disimpan dengan nama waktu.sh

 Outputnya ketika dijalankan :







Sekian postingan dari saya, semoga bermanfaat :)

Kamis, 16 Oktober 2014

Cara Download dan Upload File Menggunakan cURL pada Linux

cURL adalah paket software yang berisi command line tool dan library yang berguna untuk transfer data menggunakan sintaks URL Tujuan utama dari penggunaan cURL adalah mentransfer files dengan interface command line via protocols seperti DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet dan TFTP.


  • Cara Download File Menggunakan cURL via Terminal/Shell Script
Cara download file menggunakan cURL via terminal/shell script menggunakan perintah :

curl -o <nama_file> <alamat_download>

Fungsi -o pada option curl adalah untuk menuliskan/write output dalam bentuk file.
Intinya perintah di atas akan mengambil content dari alamat_download dan menyimpannya dalam bentuk file yang bernama nama_file.

Contoh penggunaanya:



Jika ingin menyimpan file yang di download di direktori yang berbeda, tinggal menuliskan path direktori yang diinginkan ditambah nama file yang ingin disimpan di akhir path seperti contoh di atas.


  • Cara Upload File Menggunakan cURL via Terminal/Shell Script
Cara upload file menggunakan cURL via terminal/shell script menggunakan perintah :

curl -F <form>=@<nama_file> <alamat_upload>

Fungsi -F pada option curl adalah agar curl meng-upload data dalam bentuk form.
Fungsi @ agar isi dari form adalah sebuah file.
Intinya perintah di atas akan mengisi form yang contentnya adalah sebuah file dan meng-upload form tersebut ke alamat_upload.

Contoh penggunaanya:



Hasilnya file password.txt akan ter-upload di http://bboynero.blogspot.com/uploader.php


Sekian postingan dari saya, semoga bermanfaat :)

Senin, 13 Oktober 2014

Tutorial Menggunakan Crontab di Linux

Crontab adalah aplikasi daemon (berjalan dibalik layar) yang digunakan untuk menjalankan tugas yang dijadwalkan pada suatu waktu di sistem operasi Linux. Misalnya jika kita membuat suatu shell script, dan shell script tersebut perlu dijalankan secara otomatis pada waktu-waktu tertentu, pada contoh kasus inilah penggunaan crontab dapat diimplementasikan.

Berikut merupakan perintah-perintah cron jobs yang dapat digunakan :

  • crontab -e
    • Berfungsi untuk memasukkan/menambah perintah cron jobs
  • crontab -l
    • Berfungsi untuk melihat aktifitas crontab yang sedang berjalan
  • crontab -r
    • Berfungsi untuk menghapus semua perintah cron jobs yang sudah di set


Jadi, untuk membuat crontab buka terminal kemudian ketikkan perintah :





Jika ini pertama kalinya kamu membuat crontab, maka akan muncul opsi berikut :






Di sini saya memilih editor nano[2] karena penggunaanya paling mudah.


Berikut ini adalah format penulisan crontab :

* * * * * /home/gian/contoh.sh

5 bintang (*) diatas merepresentasikan bagian-bagian format tanggal yang berbeda, urutannya sebagai berikut :
1. (* pertama) : menit (isian : 0 – 59)
2. (* kedua) : jam (isian : 0 – 23)
3. (* ketiga) : hari dari bulan / tanggal (isian : 1 – 31)
4. (* keempat) : bulan (isian : 1 – 12)
5. (* kelima) : hari dari minggu (isian : 0 – 6) 

Contoh beberapa crontab :

Eksekusi setiap menit :





Eksekusi setiap hari jam 22.00 :





Eksekusi setiap Jumat jam 15.00 :





Eksekusi setiap 2 jam sekali : (garis miring memiliki arti setiap (x) sekali)





Eksekusi setiap 10 menit sekali :





Eksekusi setiap hari Senin-Jumat jam 20.00 :







Selain itu crontab menyediakan short code atau sejenis shortcut untuk digunakan.

@reboot      Dieksekusi sekali, ketika startup
@yearly      Dieksekusi setaun sekali  "0 0 1 1 *"
@annually  Sama dengan @yearly
@monthly   Dieksekusi sebulan sekali  "0 0 1 * *"
@weekly     Dieksekusi seminggu sekali  "0 0 * * 0"
@daily        Dieksekusi sehari sekali  "0 0 * * *"
@midnight  Sama dengan @daily
@hourly      Dieksekusi setiap jam  "0 * * * *"

Cara memakainya adalah seperti ini :






Untuk mengetahui apakah crontab berjalan seperti seharusnya atau tidak, crontab dapat dibuat log nya menggunakan :




  • Perintah >> berarti isi file contoh.log akan ditambahkan dengan output dari crontab tersebut
  • Perintah 2>&1 berarti melewatkan setiap output dari stderr(2) ke stdout(1), jadi setiap error yang dikeluarkan akan diteruskan menuju standar output. Tanda > sendiri adalah redirection pada suatu file tetapi karena tanda & maka output tersebut diteruskan lagi ke stdout.


Sekian postingan dari saya, semoga bermanfaat :)

Minggu, 12 Oktober 2014

Tutorial Instalasi Fedora 20 di VirtualBox


  • Step 1
Download terlebih dahulu ISO Fedora 20(32 bit atau 64 bit)


  • Step 2
Buka VirtualBox, kemudian klik Baru(di kiri atas).























  • Step 3
Masukkan nama virtual machine yang diinginkan, kemudian pilih Linux sebagai tipe dan Fedora(32 bit atau 64 bit) sebagai versi. Klik Lanjut.























  • Step 4
Pilih jumlah memori(RAM) yang akan digunakan oleh virtual machine. Jumlah memori yang direkomendasikan untuk Fedora adalah 2048MB atau 4096MB. Setting RAM juga dapat diubah setelah instalasi selesai. Klik Lanjut.























  • Step 5
Pilih "Buat hard disk virtual sekarang". Klik Buat.
























  • Step 6
Pilih tipe file hard disk yang akan dibuat. Biarkan pilihan pada pilihan default yaitu VDI (kamu dapat memilih pilihan lain jika ingin mem-port hard disk ke sistem virtual lain). Klik Lanjut.























  • Step 7
Pilih "Dialokasikan secara dinamik" (pilih "Ukuran tetap" jika ingin waktu akses yang lebih cepat dengan konsekuensi hard disk diciptakan dengan ukuran maksimumnya). Klik Lanjut.






















  • Step 8
Masukkan nama hard disk atau pilih lokasi penyimpanannya. Kemudian pilih ukuran hard disk virtual, ukuran yang direkomendasikan untuk Fedora adalah 10GB atau lebih. Klik Buat.






















  • Step 9
Setelah proses pembuatan virtual hard disk selesai, kamu akan kembali di VirtualBox Manager.






















  • Step 10
Highlight Fedora kemudian klik Pengaturan(di kiri atas). Klik opsi Penyimpanan, kemudian klik opsi Kosong di bawah Pengendali IDE. Klik gambar CD/DVD(letaknya bisa dilihat di gambar), kemudian pilih opsi "Pilih sebuah berkas CD/DVD virtual...". Pilih ISO Fedora 20 yang di-download pada Step 1. Klik OK kemudian klik Mulai untuk booting Fedora.



















  • Step 11
Setelah proses booting selesai, akan keluar tampilan seperti di gambar. Kamu dapat mencoba Fedora dahulu sebelum meng-installnya dengan opsi "Try Fedora". Untuk meng-install langsung Fedora klik opsi "Install to Hard Drive".

























  • Step 12
Pilih bahasa yang digunakan selama proses instalasi. Klik Lanjutkan.
























  • Step 13
Pada window "Ringkasan Instalasi" terdapat 4 hal yang bisa dikonfigurasi. Hal yang paling penting untuk dikonfigurasi yaitu "Tujuan Instalasi".

























  • Step 14
Pada window "Tujuan Instalasi", pilih hard disk mana yang akan dijadikan destinasi instalasi Fedora. Pastikan hard disk yang dipilih memiliki kapasitas yang cukup untuk instalasi. Klik Selesai.

























  • Step 15
Kamu akan kembali di window "Ringkasan Instalasi". Ubah pengaturan lainnya seperti "Tanggal & Jam", "Keyboard" dan "Konfigurasi Jaringan" apabila merasa diperlukan. Klik Mulai Instalasi.


  • Step 16
Sambil menunggu proses instalasi, ada 2 hal lagi yang perlu dikonfigurasi. Klik "Kata Sandi Root".

























  • Step 17
Masukkan kata sandi untuk root. Jika sudah klik Selesai. Kembali lagi pada window "Konfigurasi", klik "Pembuatan Pengguna".

























  • Step 18
Masukkan nama pengguna dan kata sandi. Check pilihan "Jadikan ini administrator pengguna". Jika sudah klik Selesai.

























  • Step 19
Setelah proses instalasi selesai, klik Keluar. Shutdown dahulu Fedora mu.

























  • Step 20
Lakukan langkah-langkah pada Step 10 hingga memilih opsi pada gambar CD/DVD. Pilihlah opsi "Singkirkan disk dari drive virtual". Klik OK kemudian boot lagi Fedora mu.



















  • Step 21
Jika step-step diatas dijalankan dengan benar maka akan keluar tampilan login screen.

























  • Step 22
Proses berikutnya yaitu Gnome-initial-setup. Pilih bahasa yang akan digunakan. Klik Selanjutnya.

























  • Step 23
Tentukan keyboard layout yang ingin digunakan. Klik Selanjutnya.
























  • Step 24
Menambahkan Cloud Storage jika diperlukan. Klik Selanjutnya.

























  • Step 25
Klik Mulai memakai Fedora.

























  • Step 26
Sebelum menggunakan Fedora, ada baiknya kita meng-update sistemnya terlebih dahulu.
Buka terminal di Fedora kemudian ketikkan command berikut untuk update system :

$ sudo yum update -y






















Setelah proses update selesai, restart virtual machine mu.


  • Final Step
Langkah terakhir yaitu meng-install VirtualBox Guest Additions agar kita dapat mengatur screen size virtual machine dan dapat sharing folders antara Fedora dan host nya. Pilih opsi seperti gambar di bawah ini untuk memulai instalasi.























Setelah proses instalasi selesai, restart virtual machine mu dan selamat menikmati Fedora barumu :)