bash - redes - como saber si un servidor linux tiene salida a internet
Espere la interfaz de red antes de ejecutar el comando (1)
Este comando debe esperar hasta que pueda ponerse en contacto con google o lo haya intentado 50 veces:
for i in {1..50}; do ping -c1 www.google.com &> /dev/null && break; done
El for i in {1..50} 50 veces o hasta que se ejecuta un for i in {1..50} . El ping -c1 www.google.com envía 1 paquete de ping a google, y &> /dev/null redirige todo el resultado a nulo, por lo que no se supera nada. && break ejecuta break solo si el comando anterior finalizó correctamente, por lo que el ciclo finalizará cuando el ping sea exitoso.
Tengo un par de ideas sobre cómo lograr esto. No estoy seguro de cómo lo escribiría.
Método 1: (probablemente la mejor opción)
Cree un bucle que haga ping a un servidor hasta que se reciba la respuesta y luego ejecute el comando si no se recibe respuesta en X cantidad de tiempo / ejecución del script de continuación.
Método 2:
Compruebe si la interfaz de red tiene IP válida y luego continúe la secuencia de comandos
¿Cómo se puede agregar esta funcionalidad en un script? ¿Sería awk o grep de utilidad en una situación como esta? Gracias de antemano por CUALQUIER entrada.