Taxa upload Unix [RESOLVIDO]

Ola amigos,
Estou precisando pegar a taxa de upload e download de um iMac (Unix).
Ja consegui pegar pacotes perdidos e distancia atraves do comando ping.
Se alguem souber algum comando parecido ajudaria mto.

Rodrigo Cunha

Este resolvi da seguinte forma:
Seria uma Thread:
Esta funcionado tbem.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.Scanner;

import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.Timer;

public class timer_range_bandwith implements Runnable {

static String display_all_change = null;
static int pacotes_perdidos = 0;
static int count_limit = 0;
static String rate_down = null;
static String rate_up = null;
static int limit_go = 0;
static int contador = 0;
static int count_sum =0;
public static Timer t = null;
public static Timer t_count = null;
static int rate_up_1 = 0;
static int rate_up_2 = 0;
static String myvar1 = null;
static String myvar3 = null;
static String myvar2 = null;
static String myvar4 = null;
static boolean free_account=false;
public JLabel lbl_pic_s3 = new JLabel();

public timer_range_bandwith() {

}

public void run() {
	// TODO Auto-generated method stub

	System.out.println("**** START THREAD BANDWITH ****");

	/** Ping do medidor de internet e da tela de Estatisticas de Rede */
	ActionListener action = new ActionListener() {
		public void actionPerformed(ActionEvent actionEvent) {


			// TODO Auto-generated method stub
			
			String comando_1="netstat -ib | grep -e \"" + GraphicalUA.en_selected + "\" -m 1 | awk '{print $7}'";
			//String comando_2="netstat -ib | grep -e \"en1\" -m 1 | awk '{print $10}'";
			String down_rate = null;
			String up_rate = null;
			Scanner S_2 = null;
			String change_display_all = null;
			//Scanner S_3 = null;

			try {
				
				S_2 = new Scanner( Runtime.getRuntime().exec(comando_1).getInputStream());

				int line_en1 = 0;

				//While para pegar o valor
				while(S_2.hasNextLine()) {  

					down_rate = S_2.nextLine();
					//down_up_network=S_2.nextLine()+"\n";
		 
					int parse_start = down_rate.indexOf(GraphicalUA.en_selected);
					int parse_end = 99;

					if (parse_start > -1) {
						 change_display_all=down_rate.substring(parse_start,parse_end);
					}
					
				}

					if (contador==0) {

							myvar1 =  change_display_all.substring(59, 68);
							myvar3 = change_display_all.substring(83, 93);

					} else if (contador==1) {
						
							myvar2 =  change_display_all.substring(59, 68);
							myvar4 = change_display_all.substring(83, 93);
						

						System.out.println("**********************");

						System.out.println("myvar1: " + myvar1);
						System.out.println("myvar3: " + myvar3);
						System.out.println("myvar2: " + myvar2);
						System.out.println("myvar4: " + myvar4);

						System.out.println("**********************");

						//# find the difference between bytes in and out during that one second
						System.out.println("&&&&&&&&&&&&&");

						

						float subin=(Integer.parseInt(myvar2.trim()) - Integer.parseInt(myvar1.trim()));
						float subout=(Integer.parseInt(myvar4.trim()) - Integer.parseInt(myvar3.trim()));

					
							System.out.println("subin: " + subin);
							float subin_temp = subin  / 1024;
							
							
						try {	
							guiStatusInternet.guiStatusInternet.lbl_imagem_entrada.setText
							          (String.valueOf(subin_temp).substring(0,4) + " Kbp/s");
						} catch (Exception en) {
							System.out.println("Err changing message to kbps");
							//en.printStackTrace();
						}

							System.out.println("subout: " + subout);
							float subout_temp = subout / 1024;
						
							try {
							   guiStatusInternet.guiStatusInternet.lbl_imagem_saida.setText(String.valueOf(subout_temp).substring(0,4) + " Kbp/s");
							} catch (Exception e1) {
								// TODO Auto-generated catch block
								//e1.printStackTrace();
								System.out.println("Err parse bandwith message 001");
								
							}  

						
						contador=0;

						System.out.println("&&&&&&&&&&&&&");
						System.out.println("**********************");

						myvar1=null;
						myvar2=null;
						myvar3=null;
						myvar4=null;

						return;

				}
				
				contador++;

			

			} catch (IOException e1) {
				// TODO Auto-generated catch block
				e1.printStackTrace();
			}  



		}
	};


	if (t==null) {	
		t = new Timer(1000, action);
		t.start();

	}

}

public static void stop_bandwith() {
	t.stop();
}

}