ip addr show eth0 | grep inet | awk '{print $2}' | cut -d'/' -f1,这是服务器的IP,能看到连接的终端的IP吗
时间: 2024-03-20 15:38:34 浏览: 49
如果您想要获取连接到服务器的终端的IP地址,可以使用`who`命令来查看当前登录到服务器的用户以及他们的IP地址。您可以在终端中输入如下命令:
```
who
```
该命令将显示目前连接到服务器的用户信息,以及他们的IP地址。如果您想要只看某个特定用户的信息,可以使用以下命令:
```
who | grep username
```
将`username`替换为您要查看的用户名。
相关问题
#!/bin/sh # Set the name of the primary network interface primary_interface="eth0" # Set the name of the secondary network interface secondary_interface="wlan0" # Set the IP address range of the local network local_network="192.168.1.0/24" primary_interface_table="eth0_table" # Keep running the script indefinitely while true; do # Check if the primary interface is up and connected to the local network if ip addr show $primary_interface up | grep -q $local_network; then # Add a new routing table for the primary interface echo "200 $primary_interface_table" >> /etc/iproute2/rt_tables # Add default route for primary interface to the new routing table primary_gateway=$(ip route show | grep "default" | grep "$primary_interface" | awk '{print $3}') ip route add default via $primary_gateway dev $primary_interface table $primary_interface_table # Add a rule to route all traffic from primary interface through the new routing table primary_ip=$(ip addr show $primary_interface | grep "inet\b" | awk '{print $2}' | cut -d/ -f1) ip rule add from $primary_ip table $primary_interface_table # Remove any existing default route for the secondary interface ip route del default dev $secondary_interface else # Remove any existing routing table for the primary interface existing_table=$(grep -n " $primary_interface_table" /etc/iproute2/rt_tables | cut -f1 -d:) if [ ! -z "$existing_table" ]; then sed -i "${existing_table}d" /etc/iproute2/rt_tables ip route flush table $primary_interface_table ip rule del table $primary_interface_table fi # Add default route for the secondary interface secondary_gateway=$(ip route show | grep "default" | grep "$secondary_interface" | awk '{print $3}') ip route add default via $secondary_gateway dev $secondary_interface fi # Wait for 1 second before checking the network interfaces again sleep 1 done 运行上述脚本,提示ip: RTNETLINK answers: File exists
这个脚本的作用是检测主要网络接口是否连接到本地网络,如果连接上了,则将所有流量通过该接口发送,如果没有连接,则将所有流量通过备用接口发送。
关于你的问题,ip: RTNETLINK answers: File exists,是因为执行了添加路由的命令,但是该路由已经存在了。你可以先删除该路由,再执行添加路由的命令,或者使用`ip route replace`命令来替换原有的路由。
MYSQLIP='ifconfig eth0|grep "inet addr" | awk -F[:" "]+ '{print $4}''
这也是一个 Linux 系统下的命令,它的作用是获取当前系统的 IP 地址。具体来说,它通过 ifconfig 命令获取系统中所有的网络接口信息,然后使用 grep 命令过滤出 eth0 网络接口的信息,进一步使用 awk 命令提取出 IP 地址。
具体分析每个参数的含义如下:
1. `ifconfig eth0`:这个命令用于显示指定网络接口(这里是 eth0)的详细信息,包括 IP 地址、子网掩码、MAC 地址等。
2. `grep "inet addr"`:这个命令用于从 ifconfig 命令的输出中过滤出 IP 地址相关的信息。其中,`"inet addr"` 表示要匹配的字符串,这里是用双引号括起来的。
3. `awk -F[:" "]+ '{print $4}'`:这个命令用于从上一步过滤出的信息中提取出 IP 地址。其中,`-F` 参数指定了分隔符,这里是冒号和空格。`'{print $4}'` 表示输出第 4 个字段,即 IP 地址。
最终,整个命令的作用就是获取当前系统的 IP 地址,并将其赋值给 `MYSQLIP` 变量。需要注意的是,这个命令获取的是 eth0 接口的 IP 地址,如果你的系统中有多个网络接口,可能需要根据实际情况修改命令中的网络接口名称。
阅读全文