Me encontré con esta pregunta cuando estaba tratando de obtener una salida mejor / registrada de du -sh $data_path
. Usé el patrón "mientras que el comando, duerme" que se encuentra aquí, pero usé algunos AWK complejos para dar la salida que quería.
while du -sh $data_path; do sleep 1; done | awk '
$1 != size {
size=$1;
path=$2;
time=systime();
seconds=time-prevtime;
if(seconds < 1000000000){
seconds=seconds" seconds"
}else{
seconds=""
}
print size, path, strftime("%m/%d/%Y@%H:%M:%S", time), seconds;
prevtime=time
}'
De hecho, hice esto como una línea, por eso hay puntos y comas. Pero para hacerlo legible, lo saqué. El resultado se ve así:
502G /var/lib/cassandra/dump/ 05/22/2018@04:46:17
503G /var/lib/cassandra/dump/ 05/22/2018@04:46:59 42 seconds
504G /var/lib/cassandra/dump/ 05/22/2018@04:47:57 58 seconds
505G /var/lib/cassandra/dump/ 05/22/2018@04:48:55 58 seconds
506G /var/lib/cassandra/dump/ 05/22/2018@04:49:53 58 seconds
507G /var/lib/cassandra/dump/ 05/22/2018@04:50:50 57 seconds
508G /var/lib/cassandra/dump/ 05/22/2018@04:51:46 56 seconds
509G /var/lib/cassandra/dump/ 05/22/2018@04:52:44 58 seconds
510G /var/lib/cassandra/dump/ 05/22/2018@04:53:41 57 seconds
wait
, solo inténtalowatch -n 1 "sleep 5"
.watch
era útil, pero ni siquiera te da eso, por lo que tu solución es tan buena como la basada en el reloj, pero ninguno de los dos responde a la pregunta "velocidad a la que crece un archivo de registro" con gran precisión.watch
tiene una-p
opción que lo hará bien, si es posible (obviamente, no puede hacer un comando que tome 5 segundos cada 1 segundo, si no se le permiten múltiples simultáneos). Lo sé, lo escribí