使用clash的时候经常使用订阅功能来订阅节点,一个订阅地址订阅成功之后就会在本地生成一个yml后缀的配置文件,这里面的配置有一些地方我们需要修改,但是每次更新订阅的时候,这个文件又会被覆盖,所以只能更新后再一次修改该文件,这么繁琐且固定的工作当然要交给定时任务来做了,所以写了这一篇博客。
ps:本教程针对mac系统,如果是windows或者linux的话,只能参考一下思路。
博主的需求
激活pd18后,配置了host防止访问pd官方网址,不过启动pd之后,host又被pd程序篡改,注释掉了我们加上的配置。后面结果排查发现原来开启clash代理后,host配置完全不生效了,通过host屏蔽网址完全没效果。
后面发现只需要在clash的yml配置文件中修改dns: enable: true选项,改成false即可正常使用系统配置的host。
dns:
enable: false
自动化修改配置文件
设置了自动更新订阅的话,每次订阅更新了之后都会要手动再去修改文件,很麻烦,所以这边写了个修改文件的脚本,然后使用系统自带的定时任务来定时执行。
- 创建定时任务脚本,博主这边把脚本放在了用户目录下的
scripts
文件夹内,脚本命名为changeClash.sh
#bin/sh
isenable=`cat ~/.config/clash/小强Cloud.yaml |grep 'enable: true' |wc -l`
isenable=`echo $isenable`
if [ "$isenable" = "1" ];then
sed -i '' 's/enable: true/enable: false/' ~/.config/clash/小强Cloud.yaml
fi
ps:脚本中~/.config/clash/小强Cloud.yaml
为yml配置文件的路径,替换为你自己的配置文件路径。
ps2:脚本名称,存放路径随便你自己定义,只要创建定时任务的时候你自己知道路径就行。
- 创建cron定时任务自动执行脚本
- 执行
crontab -e
命令 - 输入法英文模式下按i按键进入编辑模式
- 移动光标到最后,在文件最后面添加一行
* * * * * sh ~/scripts/changeClash.sh
- 按esc按钮之后输入:wq保存编辑
第三步的脚本路径不能输错,改成你自己创建的脚本的路径。第三步的cron表达式为每分钟检测更新一次,如果觉得太频繁了的话也可以自己修改cron表达式。
其他
上文只是给了个思路而已,其实能修改的东西多了,比如订阅的节点里面有一些高倍率的节点,比如五倍十倍流量的节点,在clash里面使用自动选择模式的情况下,经常会用到这些高倍率节点,要是从yml文件里面删掉这些节点,那自动选择就不会用到这些高倍率节点了。这样的逻辑也是能够通过定时脚本实现的。
评论区