在上篇
中,由于**的list是会经常变动的,因此我写了个脚本放在 **list-autoupdate/blob/master/**list_autoupdate.sh 同时将该脚本设置为OpenWRT crontab entry,每天进行一次更新,这样就解决了这个问题。
-
#!/bin/sh
-
-
# Name: **list_autoupdate.sh
-
# Desription: A script is executed from a crontab entry every day to update dnsmasq rules.
-
# Version: 2018.09.29
-
# Author: chou.o.ning@gmail.com
-
# Website: **list-autoupdate
-
-
# wget output file
-
FILE1=dnsmasq_**list_ipset_org.conf
-
FILE2=dnsmasq_**list_ipset_add_by_ning.conf
-
FILE3=dnsmasq_**list_ipset.conf
-
-
# wget log file
-
LOGFILE=wget.log
-
-
# wget download url
-
URL1=**list2dnsmasq/dnsmasq_**list_ipset.conf
-
URL2=web/releases/download/latest/dnsmasq_**list_ipset_add_by_ning.conf
-
-
wget $URL1 --no-check-certificate -O $FILE1 -o $LOGFILE || exit 1
-
wget $URL2 --no-check-certificate -O $FILE2 -a $LOGFILE || exit 1
-
-
cat $FILE1 $FILE2 > $FILE3
-
-
cp $FILE3 /etc/$FILE3
-
/etc/init.d/dnsmasq restart
这个脚本中会从两个地方获取**list,一个是
**list2dnsmasq/dnsmasq_**list_ipset.conf 由Cokebar Chi维护
web/releases/download/latest/dnsmasq_**list_ipset_add_by_ning.conf 由本人维护
然后拼接起来拷贝到/etc/dnsmasq_**list_ipset.conf,dnsmasq重启服务即可。
注意事项:
1. OpenWRT需要安装wget组件
2. 需要将**list_autoupdate.sh上传到/root目录下(可以安装openssh-sftp-server,使用sftp命令完成上载)
3. 如果原先crontab为空,则OpenWRT的crond是不启动的,需要手动启动root@OpenWrt:~# /etc/init.d/cron start
4. crontab entry添加命令如下:
root@OpenWrt:~# crontab -e
# update **list at 4:30am every day
30 4 * * * sh /root/**list_autoupdate.sh
5. OpenWRT需要设置正确的时区,否则更新的时间会有8个小时的时差,可以用logread看日志crond是否在工作
阅读(1371) | 评论(1) | 转发(0) |