报错代码
connect: Network is unreachable
分析
当配置的 IP 地址和子网掩码不包含配置的网关 IP 地址时,检测网络联通性时就会报此类错误
解决方法
配置正确的 IP 地址、子网掩码或网关 IP 地址
(步骤略)
connect: Network is unreachable
当配置的 IP 地址和子网掩码不包含配置的网关 IP 地址时,检测网络联通性时就会报此类错误
配置正确的 IP 地址、子网掩码或网关 IP 地址
(步骤略)
# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic
valid_lft 563315sec preferred_lft 44695sec
inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr
valid_lft 2591846sec preferred_lft 604646sec
inet6 fe80::21c:42ff:fec9:3c81/64 scope link
valid_lft forever preferred_lft forever
或者:
# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic
valid_lft 563315sec preferred_lft 44695sec
inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr
valid_lft 2591846sec preferred_lft 604646sec
inet6 fe80::21c:42ff:fec9:3c81/64 scope link
valid_lft forever preferred_lft forever
或者:
# ip address show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:1c:42:c9:3c:81 brd ff:ff:ff:ff:ff:ff
inet 10.10.10.129/24 brd 10.10.10.255 scope global eth0
valid_lft forever preferred_lft forever
inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007/64 scope global temporary dynamic
valid_lft 563315sec preferred_lft 44695sec
inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81/64 scope global dynamic mngtmpaddr
valid_lft 2591846sec preferred_lft 604646sec
inet6 fe80::21c:42ff:fec9:3c81/64 scope link
valid_lft forever preferred_lft forever
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.129 netmask 255.255.255.0 broadcast 10.10.10.255
inet6 fdb2:2c26:f4e4:0:21c:42ff:fec9:3c81 prefixlen 64 scopeid 0x0<global>
inet6 fe80::21c:42ff:fec9:3c81 prefixlen 64 scopeid 0x20<link>
inet6 fdb2:2c26:f4e4:0:55da:1265:541f:8007 prefixlen 64 scopeid 0x0<global>
ether 00:1c:42:c9:3c:81 txqueuelen 1000 (Ethernet)
RX packets 698666 bytes 485434755 (462.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 372557 bytes 699406543 (667.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 73792 bytes 394285172 (376.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 73792 bytes 394285172 (376.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
# iwconfig
lo no wireless extensions.
eth0 no wireless extensions.
作者:朱明宇
名称:显示系统常用信息
作用:显示系统常用信息
1. 在此脚本的分割线内写入相应的内容
2. 给此脚本添加执行权限
3. 执行此脚本
1. times=5 #显示系统常用信息的次数
2. sleeptime=0.3 #大部分行与行之间显示的间隔时间
1. 需要安装 sysstat 软件
2. 执行此脚本的用户能够使用 sudo ip a s 命令
3. 执行此脚本的用户能够使用 sudo ss -ntulap 命令
4. 搭建了 KVM 虚拟化平台后执行此脚本的用户能够使用 sudo virsh list 命令后才能实现
#!/bin/bash
####################### Separator ########################
times=5
sleeptime=0.3
####################### Separator ########################
nowtime=1
while (( nowtime <= times))
do
echo -e "Start Monitoring: \c"
for i in {1..94}
do
echo -e "#\c"
sleep 0.01
done
echo
sleep $sleeptime
host=`hostname`
echo -e "Name:\t\t\t\t\t\t\t \033[1m$host\033[0m"
ip=`sudo ip a s | awk '/[1-2]?[0-9]{0,2}\.[1-2]?[0-9]{0,2}/&&!/127.0.0.1/{print $2}' | awk -F/ '{print $1}'`
for iip in $(echo $ip)
do
sleep $sleeptime
echo -e "IP Address:\t\t\t\t\t\t \033[1m$iip\033[0m"
done
sleep $sleeptime
cpu=`top -bn 1 | awk -F',' '/^%Cpu/{print $4 }' | awk '{print $1}' | awk '{print 100-$1}'`
echo -e "CPU Usage (Total):\t\t\t\t\t \033[1m$cpu%\033[0m"
sleep $sleeptime
mem=`free | grep Mem | awk '{print $3/$2 * 100.0}' | egrep -o "[1]?[0-9]{0,2}\.[0-9]"`
echo -e "Memory Usage (Total):\t\t\t\t\t \033[1m$mem%\033[0m"
directory=`df -h | grep -v run | grep -v boot | awk '$1~/\/dev/{print $6}'`
for idirectory in `echo $directory`
do
sleep $sleeptime
directoryusage=`df -h | grep -v run | grep -v boot | awk '$1~/\/dev/{print}' | grep $idirectory$ | awk '{print $5}'`
if [ $idirectory == / -o $idirectory == /sda -o $idirectory == /sdb ];then
echo -e "Directory Usage ($idirectory):\t\t\t\t\t \033[1m$directoryusage\033[0m"
else
echo -e "Directory Usage ($idirectory):\t\t\t\t \033[1m$directoryusage\033[0m"
fi
done
sudo -l | grep 'virsh list' &> /dev/null
if [ $? -eq 0 ];then
sleep $sleeptime
virtual=`sudo virsh list | egrep [0-9] | wc -l`
echo -e "Number of Virtual Machines (Total):\t\t\t \033[1m$virtual\033[0m"
fi
sleep $sleeptime
user=`who | wc -l`
echo -e "Number of User Logins (Total):\t\t\t\t \033[1m$user\033[0m"
soft=`rpm -qa | wc -l`
echo -e "Number of Softwares (Total):\t\t\t\t \033[1m$soft\033[0m"
sleep $sleeptime
port=`sudo ss -ntulap | wc -l`
echo -e "Number of Open Ports (Total):\t\t\t\t \033[1m$port\033[0m"
which sar &> /dev/null
if [ $? -eq 0 ];then
networkcard=`ifconfig | awk -F: '/flags/&&!/lo/{print $1}'`
for inetworkcard in `echo $networkcard`
do
networkread="`sar -n DEV 1 1 | grep $inetworkcard | awk '/[0-9][0-9]:[0-9][0-9]/{print $3/1000}'` m/s"
networkwrite="`sar -n DEV 1 1 | grep $inetworkcard | awk '/[0-9][0-9]:[0-9][0-9]/{print $4/1000}'` m/s"
echo $inetworkcard | grep eth &> /dev/null
if [ $? -ne 0 ];then
echo -e "Network Card IO ($inetworkcard):\t\t\t\t \033[1m$networkread\033[0m (Read)\t\033[1m$networkwrite\033[0m (Write)"
else
echo -e "Network Card IO ($inetworkcard):\t\t\t\t\t \033[1m$networkread\033[0m (Read)\t\033[1m$networkwrite\033[0m (Write)"
fi
done
fi
which iostat &> /dev/null
if [ $? -eq 0 ];then
disk=`iostat -d -k 1 1 | awk '!/^$/&&!/Device/&&!/Linux/{print $1}'`
for idisk in `echo $disk`
do
sleep $sleeptime
diskread="`iostat -d -k 1 1 | grep $idisk | awk '{print $3/1000}'` m/s"
diskwrite="`iostat -d -k 1 1 | grep $idisk | awk '{print $4/1000}'` m/s"
echo $idisk | grep 'nvme' &> /dev/null
if [ $? -eq 0 ];then
echo -e "Disk IO (/dev/$idisk):\t\t\t\t\t \033[1m$diskread\033[0m (Read)\t\033[1m$diskwrite\033[0m (Write)"
else
echo -e "Disk IO (/dev/$idisk):\t\t\t\t\t \033[1m$diskread\033[0m (Read)\t\033[1m$diskwrite\033[0m (Write)"
fi
done
fi
echo -e "Complete Monitoring: \c"
for i in {1..91}
do
echo -e "#\c"
sleep 0.01
done
echo
sleep $sleeptime
let nowtime++
done
echo -e "Terminal Monitoring: \c"
for i in {1..91}
do
echo -e "#\c"
sleep 0.01
done
exit
# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]
# iptables-save > /root/iptables_save
(补充:这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例)
# vim /etc/systemd/system/iptables_save.service
创建以下内容:
[Unit]
Description=iptables_save
After=default.target
[Service]
Type=oneshot
ExecStart=/usr/sbin/iptables-restore < /root/iptables_save
[Install]
WantedBy=default.target
(补充:这里以创建 systemctl 管理文件 /etc/systemd/system/iptables_save.service 将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例)
# systemctl daemon-reload
# chmod u+x /etc/systemd/system/iptables_save.service
(补充:这里以给 systemctl 管理文件 /etc/systemd/system/iptables_save.service 添加执行权限为例)
# systemctl enable iptables_save.service
(补充:这里以开机自启 iptables_save.service 服务为例)
# iptables-save > /root/iptables_save
(补充:这里以将 iptables 防火墙规则导出到 /root/iptables_save 文件为例)
# iptables-restore < /root/iptables_save
(补充:这里以将 /root/iptables_save 文件里的内容导入到 iptables 防火墙为例)