我在数据中心托管的服务器上安装了 Ubuntu Xenial。我只有 SSH 访问权限 - 没有 iLO 卡。服务器有一个以太网连接。
我将其设置为 KVM 虚拟机管理程序。对于网络,我认为我应该使用 Public Bridge 方法(更多信息)。每个访客都会有一个公网IP地址。
我一直在尝试在本地虚拟机上设置网络,一切正常。我需要编辑/etc/network/interfaces
然后运行ifdown eth0; ifup br0
。
我最大的担心是,在托管服务器上运行这个可能会把我锁定。我想我可以联系支持人员让他们帮助我,但我宁愿避免这种情况。有没有办法在有某种安全备份的情况下做到这一点?
答案1
简单的解决方案可能是让您的命令在后台的脚本中运行。将它们关闭,如果失败则重新启动。
您需要扩展此脚本以根据条件移入或移出您编辑的 eth0 脚本。
#!/bin/bash
ifdown eth0; ifup br0
if curl https://google.com
then
echo "Test passed."
else
ifdown br0 ; ifup eth0
fi
显然,首先在本地环境中进行测试。您可能必须让脚本休眠,以便接口真正连接到 IP。
答案2
在这种情况下,我的做法是创建一个at
-job ( sudo apt install at
) 来恢复我的操作。这样,我就不依赖于系统检测某些故障了。
例如
$ at now +2 min
at> /sbin/ifdown br0; /sbin ifup eth0
CTRL以+结束输入D
回到 shell 中,您可以使用 检查队列atq
,可以使用 删除不必要的条目atrm
(参见man at
)。