Menggunakan script otomatis untuk mengatur settingan network di notebook untuk lokasi berbeda
Last Updated on Saturday, 12 March 2005 17:01
Written by ari
Saturday, 12 March 2005 16:32


Memakai Linux di
notebook merupakan suatu kebanggaan tersendiri, sebab menginstallnya kadang memerlukan usaha lebih dibandingkan bila menginstall di PC desktop, sebab driver-driver Linux yang tersedia untuk hardware notebook masih relatif lebih sedikit dari PC desktop, terutama driver network card, modem, infrared port (irda), dan bluetoothnya. Ok, bila akhirnya Linux berhasil diinstall, muncul
kendala ketika kita menggunakan notebook ini di
lokasi yang berbeda...
...misalkan di kantor dan di rumah. Sebab kemungkinan besar settingan network di kantor dan di rumah berbeda, baik itu
IP address, Gateway, DNS, dll. Akan merepotkan sekali bila kita harus setiap kali mengubah settingan network notebook kita ketika berpindah dari kantor ke rumah, dan esoknya balik lagi kantor.
Artikel ini akan membahas sebuah trik efisien bagaimana menggunakan script untuk melakukan settingan network tersebut secara
otomatis dan cepat. Penulis menggunakan Mandrake 9.2, namun script ini dapat pula untuk distro yang lain dengan menyesuaikan letak file dan startup script di distro yang bersangkutan.
Baik, kita mulai yah. Settingan-settingan network ada di file-file berikut ini:
/etc/resolv.conf --> berisi settingan DNS.
/etc/sysconfig/network --> berisi settingan hostname, dan gateway.
/etc/sysconfig/network-scripts/ifcfg-eth0 --> berisi settingan kartu network kita, yaitu IP address, netmask, network address, broadcast address, dll.
Mungkin ada yang berkata, "Tapi saya tidak pernah menyentuh file-file konfigurasi itu, bagaimana nanti kalau salah?" Jangan khawatir, kamu hanya perlu mengubah informasi yang terkait saja. Untuk memberikan gambaran, file-file tersebut biasanya berisi sebagai berikut:
[fajar@centrino fajar]$ cat /etc/resolv.conf
search linux.home#nameserver 192.168.0.234#nameserver 202.158.3.7nameserver 202.157.48.8[fajar@centrino fajar]$ cat /etc/sysconfig/network
HOSTNAME=centrino.linux.homeNETWORKING=yesGATEWAY=192.168.7.25[fajar@centrino fajar]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0BOOTPROTO=staticIPADDR=192.168.4.29NETMASK=255.255.255.248NETWORK=192.168.4.24BROADCAST=192.168.4.31ONBOOT=yesHWADDR=00:c1:9e:28:01:65MII_NOT_SUPPORTED=noKetiga file itulah yang harus kita ubah mengikuti ketentuan yang ada di masing-masing lokasi. Misalkan di rumah kita memakai settingan jaringan sebagai berikut:
Nameserver 202.127.5.6IP 192.168.0.5Netmask 255.255.255.0Network 192.168.0.0Broadcast 192.168.0.255Sedangkan di kantor kita memakai settingan sebagai berikut:
Nameserver 192.168.4.100IP 192.168.4.29Netmask 255.255.255.248Network 192.168.4.24Broadcast 192.168.4.31Maka dapat kita bayangkan bahwa kita akan repot sekali bila setiap kali kita berada di lokasi yang berbeda itu kita harus mengubah settingan jaringan itu dengan mengedit file-file konfigurasi yang telah disebutkan di atas. Bila kita memakai menu konfigurasi dari distro pun tetap akan repot, bukan?
Lalu bagaimana? Nah, disinilah triknya:
Kita akan memanfaatkan shell environment yang telah disediakan di distro kita. Kali ini penulis menggunakan shell BASH.
Langkah 1. Buatlah file konfigurasi untuk masing-masing lokasi (nama file terserah kamu, yang penting bisa membedakan lokasi yang berbeda tersebut). Isi file-file konfigurasi tersebut disesuaikan dengan yang kita perlukan di masing-masing lokasi.
/etc/resolv.conf-rumah/etc/resolv.conf-kantor/etc/sysconfig/network-rumah/etc/sysconfig/network-kantor/etc/sysconfig/network-scripts/ifcfg-eth0-rumah/etc/sysconfig/network-scripts/ifcfg-eth0-kantorBila kamu kurang yakin atau khawatir salah, cara paling mudah adalah dengan mengcopy file-file konfigurasi original ke nama file yang kamu inginkan, kemudian kamu edit file copy-an tersebut dengan settigan yang diinginkan.
Langkah 2. Tulislah script ini menggunakan text editor favorit kamu:
2a. Script untuk jaringan rumah.
#!/bin/bashcp -v /etc/resolv.conf-rumah /etc/resolv.confcp -v /etc/sysconfig/network-rumah /etc/sysconfig/networkcp -v /etc/sysconfig/network-scripts/ifcfg-eth0-rumah /etc/sysconfig/network-scripts/ifcfg-eth0service network restartSave file ini di /root/.netrumah
Lalu chmod 755 agar dapat diexecute.2b. Script untuk jaringan kantor.
#!/bin/bashcp -v /etc/resolv.conf-kantor /etc/resolv.confcp -v /etc/sysconfig/network-kantor /etc/sysconfig/networkcp -v /etc/sysconfig/network-scripts/ifcfg-eth0-kantor /etc/sysconfig/network-scripts/ifcfg-eth0service network restartSave file ini di /root/.netkantor
chmod 755 juga.
3. Masukkan kedua script ini ke dalam shell environment kita, dalam hal ini adalah user root. Edit file
/root/.bashrc, dan masukkan ini:
alias netrumah="/root/.netrumah"alias netkantor="/root/.netkantor"Lalu sebagai root, jalankan ini agar kedua command tersebut tersimpan ke dalam shell environment:
bash
Ok, mudah bukan? Marilah kita test. Sebagai root, yang harus kita lakukan hanya mengetikkan:
netrumah <-- untuk menyetel jaringan ketika di rumah
netkantor <-- ketika berada di kantor
Ketika command tersebut dijalankan akan tampil seperti yang dapat dilihat pada gambar 1:

Cek apakah jaringan telah tersetel benar dengan command:
ifconfigContohnya di gambar 2.

Lalu test dengan mencoba browsing internet. Bila telah jalan, berarti kamu telah berhasil. Selamat :)
Pemanfaatan lain dari bash environment.
--------------------------------------
Seperti yang dapat kamu lihat di bagian awal dari tulisan ini, bahwa kita bisa membuat command kita sendiri di dalam bash, dimana hal ini dapat kita pergunakan untuk mempermudah hal-hal yang sering kita lakukan di server. Misalnya, sebagai sysadmin, tentu kita sering perlu untuk memonitor log-log file dari server kita. Tentunya kita sering mengetikkan command-command seperti:
tail -f /var/log/messagestail -f /var/log/squid/access.lohtail -f /var/log/httpd/access_logtail -f /var/log/httpd/error_logMemang sih, mengetikkan command-command tersebut tidak lama, apalagi kalau ada bash history. Tapi alangkah baiknya bila kita bisa memperpendek lagi command-command tersebut menjadi yang lebih singkat, bukan? Caranya mudah saja, sama seperti ketika memasukkan command netrumah/netkantor di atas. Masukkan baris-baris command yang kita inginkan ke dalam file
/root/.bashrc . Seperti berikut ini:
alias tailm="tail -f /var/log/messages"alias tails="tail -f /var/log/squid/access.log"alias tailhttpd="tail -f /var/log/httpd/access_log"alias tailhttpderr="tail -f /var/log/httpd/error_log"Setelah selesai, save file .bashrc tersebut dan jalankan ketikkan '
bash' di console untuk mengsave tambahan tersebut. Sekarang coba jalankan 'tailm' dan lihat hasilnya, memudahkan sekali, bukan? :) Seperti yang dapat dilihat pada gambar 3.

Demikianlah tulisan ini dibuat, kiranya dapat berguna bagi kita semua. Bila ada yang kurang jelas dapat menghubungi penulis di fajarpri (at) arinet (dot) org ataupun melalui website di http://linux2.arinet.org
Terima kasih.

v.1.0 by ari_stress a.k.a tiger74 a.k.a Fajar Priyanto Jakarta, 12 Maret 2005. fajarpri at arinet dot org. Penulis adalah Microsoft Certified Professional, yang jatuh cinta kepada Linux. Bekerja di sebuah lembaga pendidikan di Jakarta