
Mi máquina virtual a veces pierde la conexión a Internet en Linux y necesito estar conectado constantemente. Entonces escribí el siguiente guión:
#!/bin/bash
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -ne 0 ]]; then
service network-manager restart
fi
Cuando ejecuto este script en la consola funciona pero al usar un cron
obtengo:
network-manager: unrecognized service
¿Qué puedo hacer para que esto funcione o qué otro enfoque puede ayudarme?
---------------- SOLUCIÓN ----------------
Para saber por qué funciona, se inició en la consola pero no durante la tarea que cron
ejecuté en la consola:
echo $PATH
Entonces eso se muestra:
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
Entonces edito mi script para:
#!/bin/bash
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games
wget -q --tries=10 --timeout=20 --spider http://google.com
if [[ $? -ne 0 ]]; then
service network-manager restart
fi
¡Y eso funciona ahora!
Respuesta1
Suponiendo que estás usando algún tipo de distribución similar a Linux Mint...
Parece que el programa de "servicio" no puede encontrar un script de "administrador de red" para ejecutar. Busca en /etc/init o /etc/init.d para que puedas consultar allí y ver qué hay disponible.
O vea si la función de autocompletar le indicará (en mi opinión, más fácil). Abra una terminal y escriba:
service net
luego escriba TABvarias veces y debería obtener un nombre autocompletado como "networkign" e incluso ver algunas opciones que puede usar, como:
$ service networking
force-reload reload restart start stop
Entonces podrías intentar usar (puede ser necesario sudo
si el script aún no es root):
service networking restart
Además, podrías simplemente buscar en ping
un sitio como Google aproximadamente cada minuto para ver si la red aún está activa, en lugar de intentar descargarla.
Intente verificar si hay un error en la máquina virtual o configuraciones extrañas; normalmente no debería perder su conexión de red, a menos que la computadora host la pierda...