Tiempo

Extracto

Administrar un sistema Linux requiere de muchos conocimientos de técnicas variadas. Muchos de los procesos en Linux pueden tardar horas, si no más. Medir el tiempo que invierte un proceso es fundamental para la planificación de cargas de trabajo de un administrador.

Aunque Linux tiene varias herramientas que lo hacen, ninguna de ellas se ajusta a mis preferencias: me la he fabricado yo. Aquí os paso el código.

Código

  1. #!/usr/bin/env php
  2.  
  3. <?php
  4. $process = (isset($argv[1])) ? $argv[1] : NULL;
  5. $timer = (isset($argv[2])) ? $argv[2] : 60;
  6.  
  7. if($process)
  8. {
  9.  
  10. exec("pidof $process",$output,$retval);
  11.  
  12. $pid=$output[0];
  13.  
  14. echo "el número de proceso es $output[0]\n";
  15.  
  16. while (1)
  17. {
  18. unset($output);
  19. exec('ps -p '.$pid.' -o etime=',$output);
  20.  
  21. $time = (isset($output[0])) ? $output[0] : NULL;
  22.  
  23. if($time)
  24. {
  25. echo "$process, tiempo invertido: $time\n";
  26. } else {
  27. exit ("el proceso ha finalizado\n");
  28. }
  29.  
  30. sleep($timer);
  31. }
  32. } else {
  33. echo "timer process [sec=60]\n\nman timer\n\n";
  34. }
  35.  
  36.  

Funcionamiento

  1. $ timer ['nombreproceso']

Si no indicamos tiempo alguno nos dará la indicación del tiempo invertido cada sesenta segundos.

  1. $ timer ['nombreproceso'] 15

Indicando el tiempo la medición será según hayamos indicado, en nuestro ejemplo cada quince segundos.

Deja un comentario