如何在仅SSH访问的树莓派Zero W上定时禁用WiFi数小时?
树莓派Zero W定时启停WiFi的可行方案
完全可行,核心思路是用系统级定时任务工具crontab搭配rfkill命令实现——crontab不受WiFi状态影响,只要树莓派处于开机状态就能按时执行预设任务。
具体实现步骤
1. 编写WiFi启停脚本
在树莓派上创建一个脚本文件,比如/home/pi/wifi_toggle.sh,内容如下:
#!/bin/bash # 禁用WiFi网卡 rfkill block wlan0 # 等待指定时长(示例为6小时,换算成秒是21600,可按需修改) sleep 21600 # 重新启用WiFi网卡 rfkill unblock wlan0
给脚本添加执行权限:
chmod +x /home/pi/wifi_toggle.sh
2. 设置每日定时触发
通过crontab配置每天固定时间执行该脚本:
- 打开crontab编辑界面:
crontab -e
- 在文件末尾添加一行(示例为每天凌晨2点执行任务,可调整时间参数):
0 2 * * * /home/pi/wifi_toggle.sh >> /home/pi/wifi_log.txt 2>&1
- 说明:
0 2 * * *代表每日凌晨2点触发任务;>> /home/pi/wifi_log.txt 2>&1用于记录脚本执行日志,方便后续排查问题。
3. 测试验证逻辑
可以先把脚本里的sleep时长改成1分钟(60秒),手动执行脚本测试:
./wifi_toggle.sh
观察WiFi是否会在1分钟后自动恢复,确认逻辑正常后再改回需要的时长。
注意事项
- 确保树莓派在定时任务执行期间保持开机状态,否则任务无法触发。
- 若树莓派断电重启,crontab会自动恢复任务,无需额外配置。
wlan0是树莓派默认WiFi网卡名称,若你修改过网卡名,需替换为实际名称(可通过ip link show命令查看)。
内容的提问来源于stack exchange,提问作者foradalovelace
相关产品推荐
相关产品推荐

