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