如何修复 VM 中的连接丢失?

如何修复 VM 中的连接丢失?

我的虚拟机在 Linux 上有时会丢失互联网连接,而我需要一直保持连接。因此我编写了以下脚本:

#!/bin/bash 
wget -q --tries=10 --timeout=20 --spider http://google.com 
if [[ $? -ne 0 ]]; then 
    service network-manager restart
fi

当我在控制台中运行此脚本时它可以工作但使用时cron我得到:

network-manager: unrecognized service

我该怎么做才能使其发挥作用,或者还有哪些其他方法可以帮助我?

- - - - - - - - 解决方案 - - - - - - - -

要知道为什么它在控制台中启动时有效但在cron我在控制台中运行的任务期间无效:

echo $PATH

然后显示:

 /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

因此我将脚本编辑为:

#!/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

现在一切正常!

答案1

假设您正在使用某种类似 Linux Mint 的发行版……

听起来“服务”程序找不到要运行的“网络管理器”脚本。它会在 /etc/init 或 /etc/init.d 中查找,因此您可以检查那里是否有可用的文件。

或者看看自动完成功能是否会告诉你(在我看来更容易)。打开终端并输入:

service net

然后输入TAB几次,就会得到一个自动完成的名称,如“networkign”,甚至可以看到一些可以使用的选项,如:

$ service networking 
force-reload  reload        restart       start         stop   

因此,您可以尝试使用(sudo如果脚本还不是 root 则可能需要):

service networking restart

另外,您可以ping每隔一分钟左右访问一次像 Google 这样的网站来查看网络是否仍然畅通,而不必尝试下载它。


尝试检查 VM 错误或奇怪的设置,通常它不应该丢失网络连接,除非主机丢失它......

相关内容