我如何做一个shell脚本来知道我的连接是否在ubuntu上
我对shell脚本非常不熟悉 如果我的连接断开了,我需要使用cron(这没有问题)。如果不是,我想调用一些脚本来重新连接 我正在考虑对某个站点(或ip)使用grep和ping,然后检查返回的字符串 然后调用我的命令:我如何做一个shell脚本来知道我的连接是否在ubuntu上,shell,grep,Shell,Grep,我对shell脚本非常不熟悉 如果我的连接断开了,我需要使用cron(这没有问题)。如果不是,我想调用一些脚本来重新连接 我正在考虑对某个站点(或ip)使用grep和ping,然后检查返回的字符串 然后调用我的命令: sudo pppd call speedtch 我需要线索谢谢!还是有更好的方法 由于我的呼叫需要sudo,因此有一种无需输入密码即可批量呼叫的方法?ping工作正常,请使用以下命令行: if ping -W 5 -c 1 google.com >/dev/null; th
sudo pppd call speedtch
我需要线索谢谢!还是有更好的方法
由于我的呼叫需要sudo,因此有一种无需输入密码即可批量呼叫的方法?ping工作正常,请使用以下命令行:
if ping -W 5 -c 1 google.com >/dev/null; then
echo "Internet is up."
fi
这将使用以下命令行参数进行ping:
- -W 5:等待五秒钟后的响应超时
- -C1:只发送一个ping请求。大多数ping实现的默认设置是发送不受限制的包
- 此外,ping的输出被重定向到/dev/null,以避免来自cron的无用邮件
fromuser ALL=(root) NOPASSWD: /usr/bin/mycommand
您需要替换以下字符串:
- fromuser:替换为运行cronjob的用户
- /usr/bin/mycommand:替换为要执行的命令的路径
通过此配置,用户“fromuser”将始终能够执行/usr/bin/mycommand,而无需输入密码。当然,出于安全原因,您需要小心操作。ping工作正常,请使用以下命令行:
if ping -W 5 -c 1 google.com >/dev/null; then
echo "Internet is up."
fi
这将使用以下命令行参数进行ping:
- -W 5:等待五秒钟后的响应超时
- -C1:只发送一个ping请求。大多数ping实现的默认设置是发送不受限制的包
- 此外,ping的输出被重定向到/dev/null,以避免来自cron的无用邮件
fromuser ALL=(root) NOPASSWD: /usr/bin/mycommand
您需要替换以下字符串:
- fromuser:替换为运行cronjob的用户
- /usr/bin/mycommand:替换为要执行的命令的路径
你能给我解释一下吗?ping-w5-c1 google.com>/dev/null谢谢!我编辑了答案以包含使用的命令行选项。希望能有帮助。好的,再次感谢。。另一个问题:如果我的连接没有打开,那么
ping-w5-c1 google.com>/dev/null代码>返回false?如果将所有输出发送到/dev/null,我不会向我解释如何检查“if”:(每个Unix命令都有一个退出状态。如果成功,则为0,否则为任何其他值。该退出状态是我们上面检查的,与标准输出无关。您的shell通常不显示命令的退出状态。有关详细信息,请参阅。您能解释一下吗?ping-W 5-c 1 google.com>/dev/null谢谢!I edited将答案包含在使用的命令行选项中。希望有帮助。再次感谢。另一个问题:如果我的连接没有打开,那么ping-w5-c1 google.com>/dev/null;
返回false?如果将所有输出发送到/dev/null,我不会向我解释如何检查“if”:(每个Unix命令都有一个退出状态。如果成功,则为0,否则为任何其他值。该退出状态是我们上面检查的,与标准输出无关。shell通常不显示命令的退出状态。有关详细信息,请参阅。