首先感谢大佬的开源项目https://github.com/Cats-Team/AdRules

脚本

#!/bin/bash
cd script/dns/src
# 下载广告规则源
wget -O i1.txt https://anti-ad.net/easylist.txt
wget -O i2.txt https://gitee.com/halflife/list/raw/master/ad.txt
wget -O i3.txt https://www.kbsml.com/wp-content/uploads/adblock/adguard/adg-kall-dns.txt
wget -O i4.txt https://banbendalao.coding.net/p/adgk/d/ADgk/git/raw/master/ADgk.txt
wget -O i5.txt https://cats-team.coding.net/p/adguard/d/AdRules/git/raw/main/dns.txt
wget -O i6.txt https://neodev.team/adblocker
wget -O i7.txt https://hblock.molinero.dev/hosts_adblock.txt
wget -O i8.txt https://abp.oisd.nl/
# 合并与删除重复项
cat i*.txt > mergd.txt
cat mergd.txt | grep '^|' > block.txt
cat mergd.txt | grep '^@' > allow.txt
cat mergd.txt | grep '^/' > test1.txt
cat test1.txt block.txt allow.txt > tmpp.txt
sort -n tmpp.txt | uniq > tmp.txt
# 计数规则
num=`cat tmp.txt | wc -l`
# 添加标题与日期
echo "! Version: `date +"%Y-%m-%d %H:%M:%S"`" >> tpdate.txt
echo "! Total count: $num" >> tpdate.txt
cat title.dd tpdate.txt tmp.txt > final.txt
mv final.txt ../../dns.txt
rm *.txt
cd ../../
exit

title.dd

[Adblock Plus 2.0]
! Title: xlxbj_dns
! Powerd by xlxbj
! Expires: 12 Hours

注意事项

  • 必须在脚本同目录下生成文件夹(名为src)文件夹内必须有title.dd
  • 脚本开头cd 需修改为脚本所在目录的绝对路径
  • 广告源可自行添加,添加新的广告源时要把i后面的数字改一下
  • 以上title.dd为合并后规则的头部信息,自行修改

使用方法

  • 将脚本存储到一个文件里面重命名为 demo.sh
  • 将文件上传到宝塔站点文件夹里面
  • 新建一个文件夹名为dns
  • 进入到dns文件夹里面再新建一个文件夹叫src
  • 在src里面建立title.dd并且把上面的那个复制到文件里面来
  • 回到宝塔站点目录,把 demo.sh 放到dns这个文件夹里面
  • 把cd script/dns/src改为cd 宝塔站点目录绝对路径/dns/src
  • 宝塔站点目录绝对路径(/www/wwwroot/这里为新建站点自定义的名字(默认为域名(以本站域名为例:www_xlxbk_cn)))
  • 然后到宝塔面板计划任务新建shell脚本,名称和时间自己取,里面内容如下
#!/bin/bash
cd /www/wwwroot/(这里填站点目录)/dns
./demo.sh