May 282010
 

Ketika menggunakan koneksi internet yang dibatasi besarnya pemakaian per waktu tentu membuat kita suka bertanya-tanya berapa besar pemakaian yang sudah digunakan? Apalagi kalau kita menggunakan koneksi dengan GSM atau CDMA yang terkenal mahal per KB-nya, bisa tekor kalau sering kelebihan kuota πŸ˜€

Setelah sibuk berkeliling dengan om Google akhirnya mendapat informasi yang tepat dari situsnya forum opensuse. Dari situ saya coba adaptasi dengan kebutuhan saya. Berikut langkah-langkahnya.

  • Tentu kita memerlukan NetworkManager untuk koneksinya, versi 0.8.x adalah NM yang paling OK untuk koneksi menggunakan GSM atau CDMA. Untuk mengoleksi data pemakaian digunakan vnstat, aplikasi command line kecil yang sangat bermanfaat πŸ˜‰
  • Kita mulai konfigurasi, yang pertama kita perlu edit adalah file /etc/cron.d/vnstat, file ini digunakan untuk mengatur seberapa sering kita akan mengupdate data koneksi. Punya saya seperti ini:
    MAILTO=root
    # to enable interface monitoring via vnstat remove comment on next line
    */2 * * * *Β  vnstat /usr/sbin/vnstat.cron

    “*/2” berarti kita akan mengupdate data setiap 2 menit. vnstat kemudian memakai /usr/sbin/vnstat.cron, yang isinya

    #!/bin/bash
    # this script (/usr/sbin/vnstat.cron) reads /etc/sysconfig/vnstat
    # to start /usr/bin/vnstat.
    # example for /etc/sysconfig/vnstat:
    # VNSTAT_OPTIONS="-u -i eth0"
    # see also: vnstat(1)
    
    VNSTAT_CONF=/etc/sysconfig/vnstat
    
    if [ ! -fΒ  ]; then
     exit 0
    fi
    
    . $VNSTAT_CONF
    
    /usr/bin/vnstat $VNSTAT_OPTIONS

    Hmm…, file ini membaca /etc/sysconfig/vnstat, yg isinya

    # see also: vnstat(1)
    #
    # starting with vnstat-1.6 vnstat can also be
    # configured via /etc/vnstat.conf
    #
    # the following sets vnstat up to monitor ppp0
    VNSTAT_OPTIONS="-u -i ppp0"

    Perhatikan “ppp0”, itu interface yang dibuat NetwokManager ketika koneksi internet terhubung. Sesuaikan dengan interface dari distro anda. Oh ya, file-file setingan tersebut berdasarkan konfigurasi di Fedora, untuk distro lain bisa jadi berbeda, sesuaikan saja πŸ˜‰

  • Kemudian bagaimana menghubungkannya dengan NetworkManager? Pada prinsipnya kita hanya ingin menghitung manakali koneksi terjadi dan tidak perlu menghitung manakala tidak ada koneksi. Tetapi vnstat dijalankan dengan cron job dan data akan tidak akurat kalau koneksi tidak ada (ppp0 tidak ada). Ternyata vnstat ada option –disable dan –enable untuk menghindari penghitungan pada interface yang tidak ada. Nah, kita buat file script untuk menjalan vnstat dengan option tersebut dan taruh di /etc/NetworkManager/dispatcher.d/. File-file yang ada di folder tersebut akan dijalan ketika NM membuat atau memutus koneksi. File script saya adalah:
    #!/bin/sh
    
    case "$2" in
     up)
     /usr/bin/vnstat --enable -i ppp0
     ;;
     down)
     /usr/bin/vnstat -r --disable -i ppp0
     ;;
     *)
     exit 0
     ;;
    esac

    Ketika “up” (koneksi terhubung) vnstat dipanggil dengan option –enable yang akan membuat perhitungan untuk ppp0 dibuka. Ketika “down” vnstat dipanggil dengan option –disable yang membuat perhitungan untuk ppp0 ditutup/diabaikan.

Bereslah sudah dan ketika berinternet ria dengan GSM/CDMA kita bisa cek jumlah pemakain kita dengan mengetikkan “vnstat” dari terminal. Option untuk menampilkan data-nya banyak, silahkan baca dari “man vnstat” πŸ˜‰

Leave a Reply

%d bloggers like this: