Quiero encontrar un comando de Terminal que proporcione un ping con marca de tiempo cada segundo durante un período de tiempo (digamos 5 minutos) y luego haga una pausa durante otro período de tiempo (digamos 30 minutos) y luego repita ese proceso hasta que lo detenga. Tendré que dejarlo funcionar durante días.
En otras palabras, lo que quiero es una especie de combinación de los 2 siguientes:
1) ping 8.8.8.8 | while read line; do echo `date` - $line; done
2) ping 8.8.8.8 | while read line; do echo `date` - $line; sleep 1800; done
(1) proporciona un listado de pings cada segundo con una marca de tiempo, mientras que (2) hace lo mismo pero cada 30 minutos en lugar de cada segundo. Puedo usar (1) pero genera muchos más datos de los que necesito. (2) proporciona las pausas que necesito pero no puede capturar los eventos que estoy buscando (que duran unos 4 segundos, ver más abajo).
Aunque no es necesario para responder a mi pregunta, la razón por la que quiero esto es para hacer frente a un problema de conectividad a Internet intermitente. Usando (1) he descubierto que la mayor parte del tiempo mi conexión a internet va bien, pero cada dos días más o menos hay periodos (que duran horas) durante los cuales recibo pings inusualmente altos durante unos 4 segundos, y esto se repite cada 15 segundos más o menos. Pero el uso de (1) para averiguar que significaba un montón de recopilación de datos innecesarios. Además, tengo un script separado que trazará los datos y hay demasiados puntos de datos para trazar convenientemente ya que necesito recoger durante días.
Estoy ejecutando OS 13.2 en un MacAir M1