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.