Loopback Yang Hilang Dan Pengaruhnya

Friday, July 11th, 2008

Akhirnya saya memutuskan untuk menggunakan Ubuntu 8.04 di PC kantor yang selama ini menggunakan Ubuntu 6.10 yang sudah hampir 2 tahun berjalan di PC tersebut, dan faktor ini juga yang mendukung saya untuk upgrade ke Ubuntu 8.04

Setelah beberapa hari menggunakan Ubuntu 8.04 ada masalah yang timbul, yaitu pada saat setelah login, gnome lama sekali loadingnya. Dan kalaupun berhasil maka akan menampilkan pesan kesalahan seperti ini.

Bukan cuma itu saja, theme ubuntu yang warna coklat itu juga berubah menjadi warna biru. Jika dilihat dari pesan kesalahannya, saya menduga bahwa ini masalah di konfigurasi loopback. Jadi darimana tahu kalau masalahnya di loopback?

Setelah membiarkan masalah ini berlarut - larut selama beberapa hari (walaupun jengkel juga harus menunggu lama pada saat loading desktop setelah login) sampailah saya diharuskan menggunakan MySQL Server di PC tersebut. Dan disinilah misteri ini mulai terungkap. Karena MySQL Server tidak dijalankan pada saat boot, maka saya jalankan secara manual.

dolly@pc:~$ sudo /etc/init.d/mysql start
 
* Starting MySQL database server mysqld           [fail]

Kemudian saya cek errornya, untuk mengetahui kenapa tidak MySQL Server tidak mau jalan.

dolly@pc:~$ sudo tail /var/log/syslog  /etc/init.d/mysql[8394]: 0 processes alive and '
 
/usr/bin/mysqladmin --defaults-file=/etc/mysql/debian.cnf ping' resulted in
 
/usr/bin/mysqladmin: connect to server at 'localhost' failed
 
/etc/init.d/mysql[8394]: error: 'Can't connect to local MySQL server through socket '
 
/var/run/mysqld/mysqld.sock' (2)'
 
/etc/init.d/mysql[8394]: Check that mysqld is running and that the socket: '
/var/run/mysqld/mysqld.sock' exists! 

Menurut google, masalah error seperti ini biasa terjadi jika parameter bind-address di konfigurasi MySQL tidak di set ke localhost. Kemudian saya cek konfigurasi MySQL dan bind-address sudah di set ke localhost. Loh jadi masalahnya dimana?

Saya coba untuk menenangkan diri sejenak :D . Kemudian saya coba ping ke localhost, dan hasilnya tidak ada respon. Lalu saya periksa dokumen /etc/network/interfaces untuk melihat konfigurasi network di PC tersebut, dan mendapatkan temuan bahwa tidak adanya loopback untuk PC tersebut. Untuk mengaktifkan loopback, saya tambahkan baris berikut pada dokumen /etc/network/interfaces

auto lo iface lo inet loopback

Setelah itu restart network

dolly@pc:~$ sudo /etc/init.d/networking restart

Saya coba ping ke localhost, dan hasilnya reply. Kemudian saya jalankan MySQL Servernya.

dolly@pc:~$ sudo /etc/init.d/mysql start
 
* Starting MySQL database server mysqld [ OK ]
* Checking for corrupt, not cleanly closed and upgrade needing tables.

MySQL Server sudah jalan, dan siap digunakan :) Keesokan harinya pada saat menghidupkan PC, pesan kesalahan dari gnome yang seperti biasanya muncul sudah tidak ada lagi. Dan theme ubuntu juga sudah kembali seperti semula. Dari sini saya langsung menganalisa bahwa kesalahannya ada di loopback, karena konfigurasi yang saya update terakhir kali adalah loopback ini. Untuk membuktikannya saya hapus lagi konfigurasi loopback yang ada di dokumen /etc/network/interfaces kemudian logout dan login kembali. Dan ternyata pesan kesalahan dari gnome itu muncul lagi. Jadi bisa dipastikan 68% penyebab dari masalah ini adalah konfigurasi loopback :D

Mungkin ini yang disebut pepatah Sekali mendayung 13 pulau terlewati :D

Apakah Anda Menggunakan Sistem Operasi Terbaru?

Saturday, May 3rd, 2008

Dalam dunia open source siklus rilis dari sebuah sistem operasi bisa dibilang sangat cepat. Seperti Ubuntu sudah melakukan rilis terjadwal walaupun kadang bisa lewat dari jadwal yang dijanjikan. Ubuntu sendiri menjadwalkan rilis setiap 6 bulan sekali.

Menggunakan sistem operasi yang terbaru (dalam artian sistem operasi tersebut masih baru beberapa hari dirilis) memang membawa kebahagiaan sekaligus bencana. Menemukan error dan bugs bahkan google juga belum bisa menjawabnya, itulah yang membuat pusing. Lihat keluhan Okto Silaban dalam migrasinya ke Ubuntu 8.04 dan juga ada teman saya yang ingin kembali lagi ke sistem operasi yang lama karena tidak tahan dengan sistem operasi yang baru.

Mereka ini hanya sebagian kecil dari orang - orang yang kecewa dengan sistem operasi yang baru. Saya yakin masih banyak orang yang juga mengalami hal yang sama. Saya juga pernah mengalaminya, pada saat update dari Ubuntu 6.06 ke Ubuntu 6.10 yang mengakibatkan xorg saya rusak, dan akhirnya saya melakukkan instalasi ulang dan harus mengkonfigurasi ulang sistem operasi yang baru.

Tentu saja ini membuat saya tidak produktif, karena harus menghabiskan waktu untuk mengatasi masalah dan konfigurasi ulang sistem. Sejak saat itu saya tidak mau lagi untuk terburu - buru mengupdate sistem operasi. Kalau memang lagi santai sih tidak masalah, tapi kalau lagi dikejar pekerjaan jangan coba - coba untuk mengupdate sistem operasi. Saya sendiri sekarang ini masih menggunakan Ubuntu 6.10 untuk pekerjaan di kantor, dan menggunakan Debian Etch untuk pekerjaan di rumah.

Akun debian-sys-maint pada MySQL di Debian

Tuesday, April 1st, 2008

Kemarin ada teman yang mempunyai masalah pada MySQL Server di mesin Ubuntu miliknya. Setiap MySQL Server dijalankan selalu memberikan pesan kesalahan ERROR 1045 (28000): Access Denied For user ‘debian-sys-maint’@'localhost’. Pesan kesalahan ini didapat setelah mengimpor semua data dari MySQL Server yang ada di Windows termasuk database MySQL. Pesan ini menunjukkan bahwa akun debian-sys-maint mencoba menggunakan MySQL tetapi gagal dalam melakukan autentikasi.

Ada perlu apa debian-system-maint menggunakan MySQL?

Akun debian-sys-maint digunakan oleh sistem operasi Debian dan anak cucunya untuk melakukan maintenance terhadap MySQL. Yang mana setiap menjalankan MySQL Server maka sistem akan melakukan pengecekan apakah ada database ataupun tabel yang crash apa tidak. Jika ada yang crash maka mysql akan menampilkan proses apa saja yang ada pada MySQL dan juga statusnya. Pengecekan ini diatur pada file /etc/mysql/debian-start yang memanfaatkan tools dari mysql, yaitu mysqlcheck dan mysqladmin.

Kenapa bisa mendapat pesan kesalahan seperti ini?

Seperti sebelumnya yang saya katakan, pesan ini didapat karena akun debian-sys-maint gagal melakukan autentikasi. Hal ini disebabkan beberapa hal, yaitu:

  • Tidak adanya akun debian-sys-maint di MySQL disebabkan oleh impor data yang dilakukan. Karena pada data yang sebelumnya (MySQL versi Windows ataupun Sistem Operasi lain) tidak memiliki akun debian-sys-main.
  • Tidak cocoknya password debian-sys-maint pada file konfigurasi dengan password MySQL
    Konfigurasi dari akun debian-sys-maint sendiri bisa dilihat pada file /etc/mysql/debian.cnf

Bagaimana cara mengatasinya?

Untuk mengatasi masalah ini cukup dengan menset ulang password akun debian-sys-maint diganti dengan password yang ada pada file konfigurasi. Jika akun debian-sys-maint ternyata tidak ada di MySQL maka kita harus membuatnya terlebih dahulu. Untuk melakukannya cukup dengan cara berikut:

$ mysql -u root -p

mysql> GRANT ALL PRIVILEGES ON *.* TO ‘debian-sys-maint’@'localhost’ IDENTIFIED BY ‘password yg ada di file konfigurasi’ WITH GRANT OPTION;

mysql> \q

$ sudo /etc/init.d/mysql restart

Keterangan:

  • Pertama - tama kita masuk ke MySQL dengan menggunakan akun root.
  • Setelah masuk maka kita menjalankan perintah GRANT ALL … untuk menambahkan akun ataupun menset ulang password debian-sys-maint.
  • Keluar dari mysql
  • Restart MySQL Server untuk melihat apakah masih ada pesan kesalahan seperti sebelumnya.

Lasix
Instant approval credit cards applications
Client dns openVPN
Buy Diclofenac
Credit card application
Sleepwell
Buying life insurance
Credit card reward offers
Credit reports com
Canada credit card online application
Low fixed interest apr credit cards balance transfers
Order credit reports
Online Viagra Cialis
Tramadol Online
Cozaar
Home insurance uk
Credit score interest rate
Phentermine Online
Secured credit card applications
Free credit report service
VPN download
Popular press article on college credit card debt
Cheap Cipro
Free credit report online no membership
Credit report and scores
Credit score of
Zovirax
Affect credit score
Get credit score
Ansaid
Credit report bureau
Burial insuranceCreditcard debt elimination
Cheap Lisinopril
Voltaren
Avapro
Best credit score
Tylenol
Health care insurance
Credit card debt consolidation
Credit card application bad
Online capital one 0 interest credit card application
Loans credit score
Levitra
Credit rating report
Correcting credit reports
Buy Viagra
Card credit debt option reduction
Cheap Protonix
Boost your credit score
Torn up credit card application
No credit card application
Allegra
Buy Flomax
Xenical
Credit scores online
Purchase auto insurance online
Plendil
Cheap Capoten
Application bad card credit credit unsecured
Coreg
Free Sprint Ringtones
To increase credit score
Cephalexin
Free online credit report no trial offer
Credit score loan
Card credit debt grant help pay
Credit card applications with
Instant free credit report
Chase manhattan credit card application
Free credit report. Com
Credit report gov
Online Nexium
Propecia
Homeowners insurance quotes
Increasing credit scores
Levaquin

Apa Sih Sudo Itu?

Saturday, March 15th, 2008

Sewaktu pertama kali menggunakan Ubuntu ada hal yang aneh, yaitu tidak bisa menggunakan akun root. Bagaimana bisa menggunakan akun root, pada waktu proses instalasi saja tidak ada set password untuk akun root. Ini sangat berbeda dengan distro yang sebelumnya pernah saya gunakan yaitu Fedora. Secara default memang Ubuntu tidak menginzinkan untuk menggunakan akun root. Sebagai alternatifnya bisa menggunakan sudo.

Sudo adalah program yang terdapat di keluarga UNIX yang digunakan untuk menjalankan perintah yang membutuhkan akses dari akun root [1]. Sudo hanya dapat digunakan oleh user yang sudah terdaftar di file /etc/sudoers. Pada saat dijalankan sudo akan meminta password user yang menjalankan sudo tersebut, tetapi bisa juga dibuat untuk meminta password root atau tanpa password sama sekali. Secara default password yang dimasukkan tadi akan disimpan selama 15 menit agar dalam waktu 15 menit kedepan anda tidak perlu lagi memasukkan password jika menggunakan sudo[2].

Kenapa Harus Menggunakan Sudo?
Di keluarga Unix ada super user yang namanya root. Super user ini dapat melakukan apapun terhadap sistem. Melakukan pekerjaan umum dengan menggunakan akun root ini mempunyai resiko yang berbahaya karena jika salah mengetikkan maka akan dapat merusak sistem. Baiknya untuk pekerjaan umum kita menggunakan akun biasa dan menggunakan akun root jika memang sangat diperlukan. Untuk itu sudo diciptakan agar akun biasa dapat menjalankan perintah yang membutuhkan akses dari akun root tanpa harus login lagi dengan akun root. Sudo juga mencatat setiap perintah yang dijalankan dengan menggunakan sudo dan menyimpannya di file /var/log/auth.log. Ini memudahkan kita untuk melakukan track back suatu saat nanti.

Catatan:
Untuk menggunakan sudo, gunakan sudo di depan perintah. Contoh:

sudo apt-get install

Untuk menjalankan aplikasi graphis yang membutuhkan hak akses root di Gnome gunakan gksudo dan untuk KDE gunakan kdesu.

Referensi:
1. http://en.wikipedia.org/wiki/Sudo
2. https://help.ubuntu.com/community/RootSudo

Mengubah Zona Waktu di Ubuntu Server 7.10

Tuesday, March 4th, 2008

Kemarin pagi saya mendapat tugas untuk menginstal LINUX di salah satu PC customer yang akan dijadikan server aplikasi berbasis LAMP. Tentu saja distro yang saya gunakan adalah distro favorit saya yaitu Ubuntu, dan kali ini saya menggunakan Ubuntu Server 7.10.

Karena proses instalasi yang sambilan dan saya juga ada kerjaan lain pada saat itu, saya lupa untuk menset zona waktu dari Ubuntu Server tersebut dan hanya memilih zona waktu default pada saat instalasi.

Karena zona waktu yang tidak sesuai dengan zona waktu yang biasa digunakan yaitu (Asia/Jakarta) maka setelah proses instalasi selesai saya ingin mengganti zona waktu di Ubuntu Server tersebut. Awalnya bingung juga bagaimana cara mengganti zona waktu tersebut menggunakan command line, karena Ubuntu Server tidak menginstal paket Desktop. Berkat bantuan google maka masalah ini dapat diatasi dengan perintah dpkg-reconfigure tzdata

$ sudo dpkg-reconfigure tzdata

 

 

Untuk pengaturan zona waktu melalui Desktop dapat dilakukan dengan mudah. Cukup dengan:

  • Klik kanan pada jam yang ada di panel.
  • Pilih “Adjust Date & Time”
  • Kemudian pilih zona waktu dengan mengklik tombol “Select Time Zone”. Pemilihan zona waktu dapat dilakukan dengan mengklik peta ataupun memilih list zona waktu yang ada dibawah.
  • Jika sudah memilih zona waktu, maka klik tombol “Close” kemudian klik tombol “OK”.
Untuk lebih jelasnya bisa melihat tautan berikut ini.
Catatan:
dpkg-reconfigure tzdata ini sepertinya hanya berlaku di Ubuntu 7.10 saja. Saya sudah mencoba di Ubuntu 6.10 dan Debian 4.0, tapi tidak bisa menggunakan cara tersebut. Sebagai alternatif dapat menggunakan tzconfig.

Aktifkan Modul PHP 5 Untuk Apache 2 di Ubuntu

Monday, March 3rd, 2008

Pada sistem operasi debian dan turunannya, instalasi Apache 2 dan PHP 5 sangat mudah dilakukan. Cukup dengan

sudo apt-get install apache2 php5

Dengan perintah ditas maka Apache 2 dan PHP 5 akan diinstall ke dalam sistem operasi dan juga langsung dikonfigurasi agar bisa bekerja sama.

Masalah yang sering terjadi adalah Apache tetap saja tidak mengenali PHP dan setiap mengakses file php lewat http maka Apache akan mengkonfirmasi apakah file PHP tersebut ingin diunduh apa tidak. Hal ini bisa disebabkan terjadinya error pada saat instalasi, ataupun paket libapache2-mod-php5 yang diunduh sebelumnya rusak.

Agar PHP 5 yang sudah diinstall tadi bisa bekerja sama dengan Apache 2 maka PHP 5 harus dikonfigurasi ulang dan paket libapache2-mod-php5 dibuang terlebih dahulu. Untuk melakukannya bisa mengikuti langkah - langkah berikut:

sudo a2dismod php5

Non aktifkan modul PHP5 yang sudah diaktifkan sebelumnya.

sudo /etc/init.d/apache2 force-reload

Reload Apache 2, untuk membuang modul PHP5 dari konfigurasinya.

sudo apt-get remove libapache2-mod-php5

Buang paket libapache2-mod-php5 dari sistem operasi

sudo apt-get clean

Perintah ini akan membuang paket - paket yang sudah didownload sebelumnya dari cache apt-get. Jadi untuk instalasi berikutnya tidak mengambil paket dari cache tapi akan langsung dari repository.

sudo apt-get install libapache2-mod-php5

Perintah ini akan menginstalasi kembali paket libapache2-mod-php5

sudo a2enmod php5

Aktifkan kembali modul php5 untuk Apache 2

sudo /etc/init.d/apache2 force-reload

Reload Apache 2, untuk mengaktifkan konfigurasi modul Apache 2

Dengan menjalankan perintah - perintah diatas maka Apache 2 akan mengenali PHP, dan mengeksekusi PHP jika ada request ke file PHP dari http.

Catatan:
a2enmod adalah aplikasi yang digunakan untuk mengaktifkan modul - modul di Apache 2 dan bisa digunakan untuk mengaktifkan modul - modul lainnya seperti mod_rewrite, mod_proxy dan lain - lain. Aplikasi ini hanya ada di sistem operasi Debian dan turunannya.

a2dismod adalah aplikasi yang digunakan untuk menonaktifkan modul - modul yang sudah aktif di Apache 2. Sama sperti a2enmod aplikasi ini dapat digunakan untuk menonaktifkan modul - modul yang lain dan juga hanya tersedia untuk sistem operasi Debian dan turunannya

Tautan Terkait:
Apache MySQL PHP

Remote ke Mesin Lain Tanpa Password Dengan Menggunakan Ssh-keygen

Friday, February 22nd, 2008

Password adalah hal yang sangat penting dalam melakukan autentikasi. Password ini digunakan untuk meyakinkan mesin/komputer bahwa yang memberikan password dengan benar adalah yang berhak mengakses aplikasi/sistem yang dilindungi oleh autentikasi tadi. Begitu juga jika kita melakukan remote ke mesin lain. Mesin yang diakses akan meminta password, dan jika password yang kita berikan salah maka kita tidak diizinkan melakukan remote ke mesin tersebut.

Jika mesin yang anda remote jumlahnya sedikit, memasukkan password bukan merupakan suatu masalah. Tapi jika mesin yang anda remote jumlahnya banyak, dan ini dilakukan secara berulang - ulang, maka memasukkan password bisa menjadi masalah baru dan juga hal yang sangat membosankan. Ditambah lagi kita harus mengigat password yang berbeda untuk setiap mesin.

Untuk mengatasi masalah tersebut kita bisa menggunakan aplikasi ssh-keygen. Dengan aplikasi ini kita bisa melakukan remote ke mesin lain melalui ssh tanpa harus memasukkan password. Aplikasi ini bukanlah hal yang baru bagi sistem administrator. Saya sendiri sudah lama menggunakan aplikasi ini (walaupun saya bukan seorang sistem administrator). Kebetulan kemarin saya harus menggunakan aplikasi ini kembali dan mengingatkan saya untuk menuliskannya di blog ini. Mudah - mudahan bisa menjadi petunjuk buat orang yang belum mengetahuinya. Berikut contoh penggunaan sederhana dari aplikasi ssh-keygen.

dolly@dolly:~$ ssh-keygen -t dsa

Maka akan menghasilkan keluaran berikut

Generating public/priva$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/dolly/.ssh/id_dsa):

Tekan enter lagi

Your identification has been saved in /home/dolly/.ssh/id_dsa.
Your public key has been saved in /home/dolly/.ssh/id_dsa.pub.
The key fingerprint is:
ee:48:13:ed:1f:49:45:14:10:a2:31:91:d5:d0:19:61 dolly@dolly

Sesuai dengan informasi di atas, ssh-keygen telah membuat file id_dsa dan id_dsa.pub di ~/.ssh. Salin file id_dsa.pub ke mesin tujuan dan ubah nama filenya menjadi authorized_keys.

dolly@dolly:~$ scp ~/.ssh/id_dsa.pub dolly@remote:~/.ssh/authorized_keys

Mesin tujuan akan meminta password untuk menerima file yang dikirim melalui scp. Karena kita sudah mempunyai file id_dsa.pub, maka untuk login ke mesin lain kita tinggal menyalin file tersebut ke mesin - mesin lainnya. Jika file sudah berhasil disalin ke mesin tujuan, maka anda sudah bisa melakukan remote ke mesin tujuan tanpa memasukkan password.

dolly@dolly:~$ ssh dolly@remote

Koq bisa login tanpa password?

Sewaktu kita mengirimkan request untuk melakukan remote ke mesin tujuan, maka ssh akan melakukan pengecekan antara data key yang ada di mesin lokal (~/.ssh/id_dsa) dengan key yang ada di mesin tujuan (~/.ssh/authorized_keys)

Anda bisa melakukan remote tanpa password ke mesin tujuan hanya terbatas pada mesin yang sudah anda buat file id_dsa nya saja. Jika anda melakukan remote ke mesin tujuan dari mesin lain, maka mesin tujuan akan tetap meminta password. Untuk itu anda harus membuat file id_dsa di setiap mesin yang anda gunakan untuk remote ke mesin tujuan. Untuk membuat file id_dsa, caranya sama dengan sebelumnya. Hanya saja cara menyalain file id_dsa.pub yang berbeda.

Untuk menyalin file id_dsa.pub ke mesin tujuan tidak bisa lagi menggunakan cara sebelumnya, karena cara itu akan mereplace/mengganti file authorized_keys yang sudah ada. Untuk menyalin file tersebut bisa menggunakan cara berikut:

dolly@office:~$ scp id_dsa.pub dolly@remote:~/.ssh/id_dsa.pub

dolly@office:~$ ssh dolly@remote

Mesin tujuan akan meminta password. Masukkan password, dan jika benar maka kita akan bisa masuk ke server tujuan

dolly@office:~$ echo ” ” >> ~/.ssh/authorized_keys
dolly@office:~$ cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

Logout dari mesin tujuan (ctrl + d), kemudian remote lagi ke mesin tujuan maka mesin tujuan tidak akan meminta password lagi.

dolly@office:~$ ssh dolly@remote

Dengan mengikuti petunjuk - petunjuk diatas, anda sudah bisa melakukan remote ke mesin lain tanpa password dengan menggunakan ssh. Untuk penggunaan yang lebih lanjut/advance, anda bisa membaca manual dari ssh-keygen.

Catatan:
Saya asumsikan di komputer anda sudah terinstall aplikasi ini, jika belum ada anda harus menginstallnya terlebih dahulu.

Tidak Bisa Mengakses MySQL Server di Ubuntu

Wednesday, January 30th, 2008

Kemarin ada teman yang tanya kepada saya, kenapa dia tidak bisa mengakses MySQL Server di mesin Ubuntu dari komputer lain. Dan kasus ini cuma terjadi pada mesin Ubuntu saja, karena dia sudah mencoba mengakses MySQL Server ke mesin Fedora dan ternyata bisa. Biasanya ada beberapa point yang bisa menyebabkan hal ini, diantaranya:

  • Belum ditambahkan host “%” untuk user tersebut, pada tabel user di database mysql.
  • Adanya firewall pada network yang memblok port MySQL (default 3306)

Dari kedua point diatas, tidak ada satu pun yang menjadi jawaban atas permasalahan teman saya tersebut. Untuk point pertama, dia sudah menambahkan host “%” untuk user tersebut sebelumnya. Dan untuk point kedua, dia bisa mengakses MySQL Server di mesin Fedora, berarti tidak ada firewall yang memblok port MySQL.

Kemudian saya mencoba mencari di google, dan menemukan jawaban yang sebenarnya. Untuk sistem operasi Debian dan turunannya secara default parameter bind-address di set ke 127.0.0.1 pada file my.cnf yang menyebabkan MySQL Server tidak bisa diakses dari komputer lain. Hal ini dibuat untuk alasan keamanan.

bind-address = 127.0.0.1

Memang tidak baik memberikan akses ke database server dari komputer lain, tetapi ada kalanya kita membutuhkan hal tersebut. Agar MySQL Server bisa diakses dari komputer lain, ubah nilai dari parameter bind-address menjadi alamat network yang dizinkan untuk mengakses MySQL Server tersebut. Bisa juga dengan menghapus paramater tersebut atau menjadikannya komentar.

#bind-address = 127.0.0.1 

Penggunaan GNU Screen di UNIX Shell

Monday, October 1st, 2007

Beberapa waktu yang lalu saya harus menggunakan MS Windows dalam melakukan pekerjaan di kantor. Hal ini dikarenakan AC di ruangan saya rusak yang menyebabkan ruangan saya tidak nyaman sehingga saya harus pindah ke ruangan lain untuk dapat tetap bekerja.

Kebiasaan saya dalam bekerja adalah melakukan remote dengan ssh ke development server dan melakukan banyak proses seperti memanipulasi file, dan juga menjalankan banyak program secara interaktif. Karena saya sedang menggunakan MS Windows, saya menggunakan aplikasi putty sebagai ssh client untuk remote ke server. Nah, yang jadi masalah adalah saya harus menggunakan beberapa shell untuk bekerja. Sedangkan dengan aplikasi putty saya harus menjalankan aplikasi putty sebanyak shell yang saya gunakan, bisa - bisa desktop dipenuhi dengan aplikasi putty. Tidak seperti aplikasi Gnome Terminal yang biasa saya gunakan di GNU Linux, yang cukup dengan membuka tab baru untuk menjalankan shell lain, sehingga tidak memenuhi desktop.

Untuk mengatasi permasalahan ini, saya menggunakan GNU Screen di remote server. Sehingga cukup menjalankan satu aplikasi putty kemudian menggunakan GNU Screen untuk melakukan proses yang lain. GNU Screen adalah aplikasi yang digunakan untuk membuat virtual terminal. Jadi cukup menjalankan satu terminal, kemudian dengan GNU Screen ini kita menjalankan proses - proses yang lain di virtual terminal. Untuk menjalankan aplikasi GNU Screen, cukup dengan mengetikkan perintah screen di terminal. Untuk mengontrol aplikasi GNU Screen ini terdapat banyak perintah, dan berikut ini beberapa perintah yang sering digunakan.

Secara default, setiap perintah yang ada di GNU Screen ini diawali dengan Ctrl+a (tekan Ctrl dan a sekaligus) dan diikuti dengan keystroke yang lain.

  • Ctrl+a c

Digunakan untuk membuat virtual terminal yang baru.

  • Ctrl+a n

Digunakan untuk pindah ke virtual terminal berikutnya.

  • Ctrl+a p

Digunakan untuk pindah ke virtual terminal sebelumnya.

  • Ctrl+a (0-9)

Digunakan untuk pindah ke virtual terminal sesuai dengan nomor terminal (Contoh Ctrl+a 2).

  • Ctrl+a d

Digunakan untuk keluar dari aplikasi GNU Screen tanpa harus mematikan proses yang sedang berjalan.

  • Ctrl+a Ctrl+\

Digunakan untuk keluar dari aplikasi GNU Screen dan mematikan proses yang sedang berjalan.

Dengan perintah Ctrl+a d kita akan keluar dari aplikasi GNU Screen dan proses - proses yang ada masih terus berjalan. Dan untuk kembali lagi ke aplikasi GNU Screen dapat dilakukan dengan menjalankan perintah screen -r. Perintah ini akan berjalan jika sebelumnya kita hanya menjalankan satu aplikasi GNU Screen. Jika sebelumnya terdapat lebih dari satu aplikasi GNU Screen, maka kita harus melihat list dari session aplikasi GNU Screen yang dijalankan sebelumnya dengan perintah screen -ls. Perintah ini akan menampilkan session dari aplikasi GNU Screen yang ada dan juga statusnya. Untuk kembali ke salah satu session aplikasi GNU Screen dapat dilakukan dengan menjalankan perintah screen -r .

Untuk daftar perintah yang lebih jelas bisa dilihat di Screen Manual Page atau bisa dilihat disini.

Penggunaan GNU find Dalam Mencari Dokumen

Saturday, July 14th, 2007

GNU find adalah program di Unix yang digunakan untuk mencari file di dalam hirarki direktori. Program ini memiliki banyak opsi penggunaan yang memudahkan kita dalam mencari dokumen. GNU find mengizinkan kita memberikan perintah/aksi terhadap hasil pencarian, misalnya menghapus, menyalin, melihat ukuran file ataupun aksi - aksi lainnya.

Pada tulisan ini saya tidak akan membahas semua opsi yang ada pada GNU find tapi hanya membahas penggunaan find yang sering saya gunakan, seperti : mencari file/direktori, mencari file/direktori kemudian menghapusnya dan mencari direktori kemudian melihat kapasitas dari direktori tersebut.

Mencari File/Direktori
Untuk mencari file dapat menggunakan perintah ini :

find . -type f -iname 'nama file yang dicari'
Untuk mencari direktori kita hanya perlu mengganti opsi -type f menjadi -type d

find . -type d -iname 'nama direktori yang dicari'

Mencari File/Direktori kemudian menghapusnya
Untuk mencari file dan kemudian menghapusnya dapat menggunakan perintah ini :

find . -type f -iname 'nama file yang dicari' -exec rm -f {} \;
Untuk mencari direktori dan kemudian menghapusnya kita hanya perlu mengganti opsi -type f menjadi -type d

find . -type d -iname 'nama direktori yang dicari' -exec rm -f {} \;
Untuk melakukan aksi lainnya terhadap file yang dicari, cukup dengan mengganti rm -fr dari perintah diatas.

Melihat ukuran folder didalam direktori
Saya belum menemukan perintah untuk melihat ukuran dari folder - folder pada suatu direktori di Unix. Untuk melakukan hal ini saya biasa menggunakan GNU find dengan opsi -iregex untuk memfilter hasil pencarian.

find . -type d -iregex '^\.\/[^\/]*$' -exec du -sh {} \;
Perintah diatas sama halnya dengan perintah mencari direktori dan kemudian menghapusnya, cuma bedanya disini kita menggunakan menggunakan du -sh untuk melihat ukuran folder dan opsi -iregex. Opsi ini digunakan untuk memfilter hasil pencarian dengan menggunakan regex, karena jika tidak difilter GNU find akan menampilkan semua folder atau dengan kata lain folder yang ada didalam folder yang kita cari juga ditampilkan. Berikut hasil pencarian folder jika tidak difilter :

./Aqil
./Aqil/26-06-2007
./Aqil/03-07-2007
./Dolly

Dari hasil pencarian diatas, terlihat folder yang ada didalam folder Aqil juga ditampilkan. Padahal yang ingin kita tampilkan hanyalah folder Dolly dan Aqil. Untuk memfilternya digunakan opsi -iregex dengan pattern ‘^\.\/[^\/]*$’. Jika anda belum memahami tentang regex bisa melihat tautan berikut.

Opsi - opsi yang digunakan
Sekarang kita akan membahas opsi - opsi dari GNU find yang kita gunakan.

-type

Opsi ini digunakan untuk menentukan tipe dari file yang dicari. Sebagai contoh -type d digunakan untuk mencari direktori, -type f digunakan untuk mencari file

-iname

Opsi ini sama dengan opsi -name yang mencari file berdasarkan nama filenya, cuma bedanya opsi ini tidak case sensitive terhadap hasil pencarian

-exec

Opsi ini sama digunakan untuk melakukan aksi terhadap hasil pencarian

-iregex

Opsi ini sama dengan opsi -regex yang mencari file berdasarkan pattern yang diberikan, cuma bedanya opsi ini tidak case sensitive terhadap hasil pencarian.

Contoh penggunanan GNU find diatas bisa anda kembangkan lagi sesuai dengan kebutuhan anda. Untuk penjelasan selanjutnya bisa anda lihat di manual GNU find dengan menjalankan perintah man find dari shell anda atau bisa melihat tautan berikut.