On-off-log modem pake shell script di Linux (Ubuntu)

Untuk menyiasati pemakaian koneksi telkomnetinstant yg lemot tapi mahal, saya coba menulis beberapa baris script untuk on-off modem dan melihat (daftar) lamanya online.

Untuk kontrol modem saya pake 'pon' dan 'poff' dg alasan perintah-2 ini tidak perlu 'sudo'. Modem / koneksi sebelumnya sudah saya konfigurasi pake 'pppconfig'. Gunakan 'man pon' untuk informasi lebih lanjut.

OK, tulis di Text Editor /gedit...
#!/bin/sh
# Sihabul Milah
# eshabe@gmail.com
# 21-April-2007
# 23-April-2007
# Tambah perhitungan menit + Rp


# direktori '/home/sharing' harus dimuat manual
# >cd /home
# >sudo mkdir sharing
# >sudo chmod 777 sharing
# atau dari GUI


# pastikan file/script ini mode executable
# >chmoad a+x ./mymodem.sh


# opsi perintah
# on = modem on
# off = medom off
# log [yyyymmdd] = lihat daftar/log pemakaian
# (kosong) [yyyymmdd] = lihat lama pemakaian


MYDIR='/home/sharing'
MYSTAT=''


function m_stat ()
{
awk -v s=$MYSTAT 'BEGIN {
t = 0;
m = 0;
print "Tanggal detik menit menit-tambah";
}
{
if ( index($1,s) == 1 )
{
t = t + $2;
n = int($2/60);
if ( ($2%60) != 0) { n++; }
m += n;
print $0, n, m;
}
}
END {
printf "***\n%d detik\n%d menit (Rp%d)\n",t,m,150*m;
}' < $MYDIR/mymodem.on.log
}


function m_log ()
{
awk -v s=$MYSTAT '{
t = $1
gsub (/-/,"",t)
if (index(t,s)==1) { print }
}' < $MYDIR/mymodem
}


function m_on ()
{
if pon
then
date '+%F %R:%S ON '$USER >> $MYDIR/mymodem
date +%s > $MYDIR/mymodem.on
chmod 777 $MYDIR/mymodem*
fi
}


function m_off ()
{
poff > /dev/null
date '+%F %R:%S OFF '$USER >> $MYDIR/mymodem
read m_on < $MYDIR/mymodem.on
if [ $m_on -gt 0 ]
then
date +%s > $MYDIR/mymodem.off
read m_off < $MYDIR/mymodem.off
let on_t=$m_off-$m_on
on_t=$(($m_off-$m_on))
date '+%Y%m%d '$on_t >> $MYDIR/mymodem.on.log
fi
echo 0 > $MYDIR/mymodem.on
chmod 777 $MYDIR/mymodem*
}


case $1 in
on) m_on;;
off) m_off;;
log)
MYSTAT=$2
m_log
;;
*)
MYSTAT=$1
m_stat
;;
esac

Simpan dg nama mymodem.sh (atau yg lain) lalu ganti permission-nya menjadi executable.
Di shell> chmod a+x mymodem.sh
Di GUI (nautilus?) klik kanan file, pilih Properties. Lalu klik tab Permissions, centang (check) semua pilihan 'Execute'

Untuk memudahkan penggunaan, saya buat shortcut di panel (atas):
Klik kanan pd panel - Add to Panel...
Klik Custom Application Launcher
Isi Name dg 'Modem ON'
Isi Command dg 'DIR/mymodem.sh on'
Klik OK.

Untuk off modem isi Command dg 'DIR/mymodem.sh off'
DIR adalah lokasi file mymodem.sh

Untuk melihat lama penggunaan> DIR/mymodem.sh yyyymmhh
yyyy = tahun mm = bulan hh = tgl. Contoh: 20070427 atau 200704

Untuk melihat log ON-OFF modem> DIR/mymodem.sh log yyyymmhh

Ada yg bisa bantu, bagaimana menjalankan script tapi shell / window terminal-nya tidak tertutup setelah script di jalankan?

0 Komentar