macOS系统定时关闭和开启Wi-Fi
1. 引言
macOS 系统,需要定时关闭和定时开启 Wi-Fi 1。
搜索了一下,发现 macOS 系统终端实现定时任务有两个工具: Launchd(或launchctl)
和 crontab
2。
crontab
更通用一点,兼容适合更多的 Linux 系统。故而,选择 crontab
3。
2. 步骤
2.1 开启 crontab
- 查看 crontab 是否启动:
sudo launchctl list | grep cron
显示:
- 0 com.vix.cron
- 检查需要的文件:
ls -al /etc/crontab
显示:
ls: /etc/crontab: No such file or directory
如果 crontab 文件不存在则创建:
sudo touch /etc/crontab
2.2 crontab 创建任务
- 编辑定时任务:
crontab -e
一般是进入 vi 编辑模式,点击 i
开始编辑,复制并黏贴指定的定时任务:
# 每天9点关闭Wi-Fi
0 9 * * * /usr/sbin/networksetup -setairportpower en0 off
# 每天12点开启Wi-Fi
0 12 * * * /usr/sbin/networksetup -setairportpower en0 on
:wq
退出并保存文件。
- 查看定时任务
crontab -l
显示:
# 每天9点关闭Wi-Fi
0 9 * * * /usr/sbin/networksetup -setairportpower en0 off
# 每天12点开启Wi-Fi
0 12 * * * /usr/sbin/networksetup -setairportpower en0 on
这里, en0
是Wi-Fi端口,可以用以下命令查看:
/usr/sbin/networksetup -listnetworkserviceorder
3. 注意
$ sudo touch /etc/crontab
touch: /etc/crontab: Operation not permitted
如果出现了文件权限问题,touch: /etc/crontab: Operation not permitted
,可以按照如下操作关闭 macOS 系统的 Rootless 机制(对于一些特殊路径增加了保护,即使 root 权限也不可以操作)4。
关闭 macOS 系统的 Rootless 机制5:
-
重启 macOS 系统,按住 Command + R,先看到 Apple 标志或旋转的地球,进入 macOS 恢复模式(Recovery Mode)
-
点击左上角菜单栏的
实用工具
,进入终端,键入:
# 关闭 Rootless
csrutil disable
# 开启 Rootless
csrutil enable
# 查看开启状态
csrutil status
- 重启电脑,再在终端输入:
sudo touch /etc/crontab