Menggunakan script otomatis untuk mengatur settingan network di notebook untuk lokasi berbeda
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.7
nameserver 202.157.48.8
[fajar@centrino fajar]$ cat /etc/sysconfig/network
HOSTNAME=centrino.linux.home
NETWORKING=yes
GATEWAY=192.168.7.25
[fajar@centrino fajar]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.4.29
NETMASK=255.255.255.248
NETWORK=192.168.4.24
BROADCAST=192.168.4.31
ONBOOT=yes
HWADDR=00:c1:9e:28:01:65
MII_NOT_SUPPORTED=no
Ketiga 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.6
IP 192.168.0.5
Netmask 255.255.255.0
Network 192.168.0.0
Broadcast 192.168.0.255
Sedangkan di kantor kita memakai settingan sebagai berikut:
Nameserver 192.168.4.100
IP 192.168.4.29
Netmask 255.255.255.248
Network 192.168.4.24
Broadcast 192.168.4.31
Maka 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-kantor
Bila 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/bash
cp -v /etc/resolv.conf-rumah /etc/resolv.conf
cp -v /etc/sysconfig/network-rumah /etc/sysconfig/network
cp -v /etc/sysconfig/network-scripts/ifcfg-eth0-rumah /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
Save file ini di /root/.netrumah
Lalu chmod 755 agar dapat diexecute.
2b. Script untuk jaringan kantor.
#!/bin/bash
cp -v /etc/resolv.conf-kantor /etc/resolv.conf
cp -v /etc/sysconfig/network-kantor /etc/sysconfig/network
cp -v /etc/sysconfig/network-scripts/ifcfg-eth0-kantor /etc/sysconfig/network-scripts/ifcfg-eth0
service network restart
Save 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:
ifconfig
Contohnya 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/messages
tail -f /var/log/squid/access.loh
tail -f /var/log/httpd/access_log
tail -f /var/log/httpd/error_log
Memang 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