我有一个无线中继器,不知为何,它总是喜欢进入睡眠模式,即使它不应该这样。制造商发誓这不是缺陷,而且当它工作时,效果很好。
我注意到,当我连续 ping 它时,只要 ping 继续,它就会保持唤醒状态,如果 2-3 分钟内没有 ping,它就会进入睡眠状态并且不会唤醒。
长话短说,我在办公室有一台 Linux 服务器,我想知道我是否可以设置一个命令,在服务器启动后立即连续 ping ip 地址,并且在我关闭服务器之前永不停止。
我需要做什么来设置它?
谢谢!
答案1
这可以通过使用 cron 和一些特定的 ping 参数轻松实现。
创建一个名为 /etc/cron.d/ping-my-repeater 的文件。对于内容,请选择以下之一。
如果每分钟一次就足够了,请尝试以下操作:
* * * * * root ping -n -c 1 -W 1 $REPEATER_IP_ADDRESS
如果需要每分钟两次,请尝试以下操作:
* * * * * root ping -n -c 2 -i 30 -W 1 $REPEATER_IP_ADDRESS
如果需要每 15 秒一次,请尝试以下操作:
* * * * * root ping -n -c 4 -i 15 -W 1 $REPEATER_IP_ADDRESS
指定计数-c
,-i
指定回显请求之间的间隔(以秒为单位),并-W
指定等待每个答复的时间(以秒为单位)。-n
表示仅数字输出,并且特别抑制远程 IP 地址反向名称解析。* * * * *
表示每分钟执行一次命令,并且root
是用户以何种身份执行该命令。
未经远程主机所有者的同意,请不要将此类内容指向不在您物理控制范围内的 IP 地址。
一旦您对它的工作感到满意,您可以通过添加如下行来抑制生成的电子邮件输出
MAILTO=""
在文件顶部。
其工作方式是,ping 发送一个 ICMP 回显请求并等待-W
数秒以获得响应,然后如果需要发送更多回显请求,则等待-i
数秒再发送另一个。因此,第一个请求会立即发送,第二个请求(例如)在收到第一个请求的响应或超时后 15 秒发送,第三个请求再等 15 秒发送,第四个请求再等 15 秒发送,总运行时间约为 45 秒。在下一分钟的开始,ping 会再次启动并重复该过程。
您还可以通过例如 /etc/rc.local(您的系统上可能有不同的名称)启动 ping,跳过该-c N
选项并让 ping 无限期运行;但是,这有时会对启动顺序产生不良影响,并且如果某些原因导致 ping 终止,除非您采取特定步骤检查它,否则它不会自动重新启动。