我正在尝试编写一个 bash 脚本来配置应用程序(无人值守安装)。我需要做的就是这个。我需要获取服务器的 IP 地址并将其设置为变量。我编写此脚本是为了简化此过程。我注意到,当我在 vps 中测试它时,虽然列出了 eth0,但它不是默认值,而是类似于 venet0:0。有没有办法将此 ip 设置为变量(如果我知道接口名称,我知道如何操作,我试图在不知道的情况下执行此操作,因为很难为每个可能的设备命名进行规划)。如果没有,那么我将在用户运行脚本时为其添加一个 ip 地址提示。
这不是重复的问题,因为我要的是服务器的 IP,而不仅仅是服务器的公共 IP。尽管这是为了构建一个公共邮件服务器,但我也在构建它以在内部服务器上工作。
答案1
‘那个’ IP地址...服务器有那么多,默认管理,应用程序,DB监听器?
这对你有用吗?
IP_ADDR=$(getent hosts `hostname` | awk '{print $1}')
答案2
如果您有一个接口:
ip addr show | grep "inet " | grep -v "127.0.0.1/8" | awk '{print $2}'
10.10.1.254/16