On Mon, Sep 18, 2006 at 11:27:12AM +0700, LinuxDesktop wrote:

> Mas Yudi, saya coba buat skrip di atas, tp setelah dijalankan (via putty &
> console), muncul pesan "(standard_in) 1: parse error" berulang kali sehingga
> hrs di ctrl+c spy berhenti.

Error tsb muncul biasanya krn adanya input data yg salah untuk bc.
Oya, saya sudah buat update script ini pakai perl, pertimbangan saya
adalah krn efisiensi, cukup pembacaan satu kali script trafik.pl, beda
dg script bash yg pertama tadi, karena setiap beberapa periode/durasi
script tsb akan meng-access tool grep, awk, bc dll. Bisa diamati dg 
perintah ini:

  $ stat /bin/grep
  File: `/bin/grep'
  Size: 75668           Blocks: 150        IO Block: 4096   Regular File
Device: 302h/770d       Inode: 46393       Links: 1    
Access: (0755/-rwxr-xr-x)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2006-09-18 16:42:52.000000000 +0700
Modify: 2003-01-25 09:59:44.000000000 +0700
Change: 2005-01-25 17:34:10.000000000 +0700


> Saya sdh double check skrip di atas, yakin tdk ada yg salah. Hanya ada
> penambahan pd varible PATH (PATH=/usr/bin:/bin). Penambahan ini dikarenakan
> command sleep & grep ada di /bin. Kalau tdk ditambah, muncul pesan "sleep:
> command not found".

Memang script bash tsb awalnya saya buat di slackware.
Sekarang ini sdh saya update scripnya pakai perl.

> System saya menggunakan RH9 (2.4.20-8). Bisa tolong dibantu, Mas ? Terima
> kasih.

Di sini juga pakai redhat 9 kok :-).

--- awal skrip trafik.pl ---
#!/usr/bin/perl

$DUR=2;
$FIN="/proc/net/dev";
$FOUT="/dev/shm/trafik";
# device yg trafiknya mau dimonitor
$DEVICE="eth1";

sub cektrafik {
  open (IN, " < $FIN");
  while (<IN>) {
    if (/$DEVICE/) {
       @a = split(/:\s*/);
       @b = split(/\s+/, $a[1]);
       $RX = $b[0];
       $TX = $b[8];
    }
  }
}

cektrafik();
$RXold=$RX;
$TXold=$TX;

for (;;) {
  sleep $DUR;
  cektrafik();
  open (OUT,"> $FOUT");
  $format = sprintf("RX: %7.3f kbps -- TX: %7.3f kbps\n", 
($RX-$RXold)*8/1024/$DUR, ($TX-$TXold)*8
/1024/$DUR);
  print OUT $format;
  close(OUT);
  $RXold=$RX;
  $TXold=$TX;
}
close(IN);
--- akhir skrip trafik.pl ---

Cara men-jalankan:
  1. copy dan paste file trafik.pl
  2. edit device mana yg mau dimonitor
  3. eksekusi sbg root:
       # chmod 755 trafik.pl
       # ./trafik.pl > /dev/shm/ERROR 2>&1 &
     Maksudnya jika ada error/warning, kita bisa melihatnya di
     file temporary /dev/shm/ERROR.
  4. Untuk membaca trafik - sebagai client - sdh saya tulis di email
     sebelumya.

Oya, sambil belajar socket programming dg perl, saya sdh berhasil
membuat service udp khusus untuk trafik ini, jadi trafiknya nanti
bisa di monitor dr sembarang client, entah itu pakai windows
atau linux, asalkan ada yg mau buat interface visual untuk 
menampilkan informasi trafik ini :-) jadi ndak perlu akses ke
shell dulu. Service udp trafik kerjanya cuma baca /dev/shm/trafik
yg digenerate oleh script trafik.pl, idealnya sih cukup satu
script saja untuk semuanya, namanya juga masih belajar.

Kalau ada rekan yg mau buat aplikasi visual udp client - mungkin dg 
php+gtk - untuk menampilkan realtime trafik monitoring di server
silahkan sumbang ilmu :-) ... 

-- 

Salam,

~~ Arief Yudhawarman ~~


-- 
FAQ milis di http://wiki.linux.or.id/FAQ_milis_tanya-jawab
Unsubscribe: kirim email ke [EMAIL PROTECTED]
Arsip dan info milis selengkapnya di http://linux.or.id/milis

Kirim email ke