有时,我的服务器上的 samba 共享网络完全失败(例如,我无法通过 ssh 连接到服务器,并且 samba 共享不可用)。由于没有可行的解决方案来修复它(完整描述这里)我编写了一个小脚本,它可以重新启动网络,我想这将有助于建立连接。万一如果我这样做systemctl 重新启动网络有用。所以我需要它自动重新启动网络。
其逻辑是,如果网关无法进行 ping (*1.121),它将检查 LAN 内的另一台主机。然后,如果它无法从第二台主机返回响应,它将执行systemctl 重新启动网络。可以进行审查并添加/删除某些内容或提出另一种处理方法吗?
#!/bin/bash
ADDR1="192.168.1.101";
ADDR2="192.168.1.5";
ACCS1=$(ping -c 1 -s 1 -w 1 $ADDR1 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');
ACCS2=$(ping -c 1 -s 1 -w 1 $ADDR2 | grep time | awk -F ',' '{print $2}' | awk '{print $1}');
if [[ $ACCS1 == 0* ]];
then
if [[ $ACCS2 == 0* ]];
echo "Host $ADDR2 is unavailable" >> $HOME/blackout_time.log
then
systemctl restart network
echo "Netwotk restart time by script1 - $(date +%Y-%m-%d_%k:%M:%S)" >> $HOME/blackout_time.log
sleep 20
fi
fi
提前致谢
答案1
简洁的一行代码:
ping 192.168.1.121 -c1 -s1 -w1 -q || ping 192.168.1.189 -c1 -s1 -w1 -q || systemctl restart network