我的操作系统是Linux Centos 6
. ping 丢失后重新启动网络服务
基本上,我需要一个观察器或脚本来检测是否对另一个 IP 地址进行 ping 操作,并且service network restart
每隔一分钟左右运行一次。
由于各种原因我需要重新启动网络。
答案1
将此脚本保存到文件并使其可执行。然后在 cronjob 中运行它。
打开您最喜欢的编辑器并复制此脚本:
#!/bin/bash
# cron script for checking lan connectivity
# Ping count is set aggressively to 1, increase depending what you want.
PING_COUNT=1
#I'm assuming ping is installed.
PING="/bin/ping"
#Find the gateway IP address
GATEWAY_IP=`ip route | grep default | cut -d " " -f 3`
# ping test
$PING -n -c "$PING_COUNT" "$GATEWAY_IP" &>/dev/null
if [ "$?" -ge 1 ]
then
# This will log a message in system log (see manpage).
logger "Network access DOWN"
service network restart
else
logger "Network access OK"
fi
保存文件并命名切克兰例如。通过在 cmdline 中键入使其可执行:
chmod +x checklan
以 root 身份或使用 sudo,将文件移动到 /usr/local/bin :
mv checklan /usr/local/bin
使用 sudo 或 root 在 /etc/cron.d 中打开一个新文件
vi /etc/cron.d/netcheck
按我 复制以下行:
*/10 * * * * root /usr/local/bin/checklan
通过键入保存更改:X
以 root 身份或使用 sudo 重新启动 cron:
service crond restart
然后脚本应该每 10 分钟运行一次。注意:请在互联网上阅读有关 cron 的内容以了解语法。您可以将速率提高到每分钟。
检查 /var/log/messages 或 /var/log/syslog 以查看其是否正常工作:
tail -f /var/log/messages
如果它有效,你会看到类似这样的内容:
Apr 1 20:04:01 <hostname> logger: checklan OK